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);
37 MatrixColMaj ref1(size, size), ref2(size, size), ref3(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>();
68 CHECK_MMTR(matc,
Lower, = (s*sqr).
template triangularView<Upper>()*sqc);
69 CHECK_MMTR(matc,
Upper, -= (s*sqc).
template triangularView<Upper>()*sqc);
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();
const mpreal sqr(const mpreal &x, mp_rnd_t r=mpreal::get_default_rnd())
#define CHECK_MMTR(DEST, TRI, OP)
#define VERIFY_IS_APPROX(a, b)
EIGEN_DEFAULT_DENSE_INDEX_TYPE DenseIndex
#define EIGEN_TEST_MAX_SIZE
A triangularView< Lower >().adjoint().solveInPlace(B)
The matrix class, also used for vectors and row-vectors.