MCPcopy Create free account
hub / github.com/Derious/cuMPC / triangular_square

Function triangular_square

dependence/eigen-3.4.0/test/triangular.cpp:40–175  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

38
39
40template<typename MatrixType> void triangular_square(const MatrixType& m)
41{
42 typedef typename MatrixType::Scalar Scalar;
43 typedef typename NumTraits<Scalar>::Real RealScalar;
44 typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> VectorType;
45
46 RealScalar largerEps = 10*test_precision<RealScalar>();
47
48 Index rows = m.rows();
49 Index cols = m.cols();
50
51 MatrixType m1 = MatrixType::Random(rows, cols),
52 m2 = MatrixType::Random(rows, cols),
53 m3(rows, cols),
54 m4(rows, cols),
55 r1(rows, cols),
56 r2(rows, cols);
57 VectorType v2 = VectorType::Random(rows);
58
59 MatrixType m1up = m1.template triangularView<Upper>();
60 MatrixType m2up = m2.template triangularView<Upper>();
61
62 if (rows*cols>1)
63 {
64 VERIFY(m1up.isUpperTriangular());
65 VERIFY(m2up.transpose().isLowerTriangular());
66 VERIFY(!m2.isLowerTriangular());
67 }
68
69// VERIFY_IS_APPROX(m1up.transpose() * m2, m1.upper().transpose().lower() * m2);
70
71 // test overloaded operator+=
72 r1.setZero();
73 r2.setZero();
74 r1.template triangularView<Upper>() += m1;
75 r2 += m1up;
76 VERIFY_IS_APPROX(r1,r2);
77
78 // test overloaded operator=
79 m1.setZero();
80 m1.template triangularView<Upper>() = m2.transpose() + m2;
81 m3 = m2.transpose() + m2;
82 VERIFY_IS_APPROX(m3.template triangularView<Lower>().transpose().toDenseMatrix(), m1);
83
84 // test overloaded operator=
85 m1.setZero();
86 m1.template triangularView<Lower>() = m2.transpose() + m2;
87 VERIFY_IS_APPROX(m3.template triangularView<Lower>().toDenseMatrix(), m1);
88
89 VERIFY_IS_APPROX(m3.template triangularView<Lower>().conjugate().toDenseMatrix(),
90 m3.conjugate().template triangularView<Lower>().toDenseMatrix());
91
92 m1 = MatrixType::Random(rows, cols);
93 for (int i=0; i<rows; ++i)
94 while (numext::abs2(m1(i,i))<RealScalar(1e-1)) m1(i,i) = internal::random<Scalar>();
95
96 Transpose<MatrixType> trm4(m4);
97 // test back and forward substitution with a vector as the rhs

Callers 1

EIGEN_DECLARE_TESTFunction · 0.85

Calls 15

is_same_typeFunction · 0.85
isUpperTriangularMethod · 0.80
isLowerTriangularMethod · 0.80
abs2Function · 0.50
rowsMethod · 0.45
colsMethod · 0.45
transposeMethod · 0.45
setZeroMethod · 0.45
toDenseMatrixMethod · 0.45
conjugateMethod · 0.45
isApproxMethod · 0.45
adjointMethod · 0.45

Tested by

no test coverage detected