10 #define TEST_ENABLE_TEMPORARY_TRACKING
14 template<
typename Dst,
typename Lhs,
typename Rhs>
25 template<
typename Dst,
typename Lhs,
typename Rhs,
typename S2>
35 template<
typename Dst,
typename Lhs,
typename Rhs,
typename S1,
typename S2>
59 ColMajorMatrixType
m1 = MatrixType::Random(
rows,
cols),
62 RowVectorType rv1 = RowVectorType::Random(
rows), rvres(
rows);
63 ColVectorType cv1 = ColVectorType::Random(
cols), cvres(
cols);
66 Scalar s1 = internal::random<Scalar>(),
67 s2 = internal::random<Scalar>(),
68 s3 = internal::random<Scalar>();
70 Index c0 = internal::random<Index>(4,
cols-8),
71 c1 = internal::random<Index>(8,
cols-c0),
72 r0 = internal::random<Index>(4,
cols-8),
73 r1 = internal::random<Index>(8,
rows-r0);
100 VERIFY_EVALUATION_COUNT((
m3.block(r0,r0,
r1,
r1).noalias() += -
m1.block(r0,c0,
r1,
c1) * (s2*
m2.block(r0,c0,
r1,
c1)).adjoint() ), 0);
101 VERIFY_EVALUATION_COUNT((
m3.block(r0,r0,
r1,
r1).noalias() -= s1 *
m1.block(r0,c0,
r1,
c1) *
m2.block(c0,r0,
c1,
r1) ), 0);
104 VERIFY_EVALUATION_COUNT((
m3.block(r0,r0,
r1,
r1).noalias() = s1 *
m1.block(r0,c0,
r1,
c1) * (s1*
m2).block(c0,r0,
c1,
r1) ), 1);
114 VERIFY_EVALUATION_COUNT( rm3.col(c0).noalias() = (s1 *
m1.adjoint()).template triangularView<UnitUpper>() * (s2*
m2.row(c0)).adjoint(), 1);
127 VERIFY_EVALUATION_COUNT(
m3.block(r0,c0,
r1,
c1).noalias() +=
m1.block(r0,r0,
r1,
r1).template selfadjointView<Upper>() * (s1*
m2.block(r0,c0,
r1,
c1)), 0);
128 VERIFY_EVALUATION_COUNT(
m3.block(r0,c0,
r1,
c1).noalias() =
m1.block(r0,r0,
r1,
r1).template selfadjointView<Upper>() *
m2.block(r0,c0,
r1,
c1), 0);
166 bool temp_via_alloca =
false;
191 check_scalar_multiple1(m3_blck,
m1.block(r0,c0,1,1),
m2.block(c0,r0,1,1), s1, s2);