12 #define CHECK_MMTR(DEST, TRI, OP) { \
15 DEST.template triangularView<TRI>() OP; \
17 ref2.template triangularView<TRI>() \
18 = ref1.template triangularView<TRI>(); \
19 VERIFY_IS_APPROX(DEST,ref2); \
23 ref3.diagonal() = DEST.diagonal(); \
24 DEST.template triangularView<TRI|ZeroDiag>() OP; \
25 VERIFY_IS_APPROX(DEST,ref3); \
33 DenseIndex othersize = internal::random<DenseIndex>(1,200);
35 MatrixColMaj matc = MatrixColMaj::Zero(
size,
size);
36 MatrixRowMaj matr = MatrixRowMaj::Zero(
size,
size);
39 MatrixColMaj soc(
size,othersize); soc.setRandom();
40 MatrixColMaj osc(othersize,
size); osc.setRandom();
41 MatrixRowMaj sor(
size,othersize); sor.setRandom();
42 MatrixRowMaj osr(othersize,
size); osr.setRandom();
43 MatrixColMaj sqc(
size,
size); sqc.setRandom();
44 MatrixRowMaj sqr(
size,
size); sqr.setRandom();
46 Scalar s = internal::random<Scalar>();
75 ref1 = sqc.adjoint() * matc * sqc;
76 ref2.template triangularView<Upper>() = ref1.template triangularView<Upper>();
77 matc.template triangularView<Upper>() = sqc.adjoint() * matc * sqc;
81 ref1 = sqc * matc * sqc.adjoint();