MCPcopy Create free account
hub / github.com/LucaFulchir/libRaptorQ / triangular_rect

Function triangular_rect

external/eigen3/test/triangular.cpp:120–201  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

118
119
120template<typename MatrixType> void triangular_rect(const MatrixType& m)
121{
122 typedef const typename MatrixType::Index Index;
123 typedef typename MatrixType::Scalar Scalar;
124 typedef typename NumTraits<Scalar>::Real RealScalar;
125 enum { Rows = MatrixType::RowsAtCompileTime, Cols = MatrixType::ColsAtCompileTime };
126
127 Index rows = m.rows();
128 Index cols = m.cols();
129
130 MatrixType m1 = MatrixType::Random(rows, cols),
131 m2 = MatrixType::Random(rows, cols),
132 m3(rows, cols),
133 m4(rows, cols),
134 r1(rows, cols),
135 r2(rows, cols);
136
137 MatrixType m1up = m1.template triangularView<Upper>();
138 MatrixType m2up = m2.template triangularView<Upper>();
139
140 if (rows>1 && cols>1)
141 {
142 VERIFY(m1up.isUpperTriangular());
143 VERIFY(m2up.transpose().isLowerTriangular());
144 VERIFY(!m2.isLowerTriangular());
145 }
146
147 // test overloaded operator+=
148 r1.setZero();
149 r2.setZero();
150 r1.template triangularView<Upper>() += m1;
151 r2 += m1up;
152 VERIFY_IS_APPROX(r1,r2);
153
154 // test overloaded operator=
155 m1.setZero();
156 m1.template triangularView<Upper>() = 3 * m2;
157 m3 = 3 * m2;
158 VERIFY_IS_APPROX(m3.template triangularView<Upper>().toDenseMatrix(), m1);
159
160
161 m1.setZero();
162 m1.template triangularView<Lower>() = 3 * m2;
163 VERIFY_IS_APPROX(m3.template triangularView<Lower>().toDenseMatrix(), m1);
164
165 m1.setZero();
166 m1.template triangularView<StrictlyUpper>() = 3 * m2;
167 VERIFY_IS_APPROX(m3.template triangularView<StrictlyUpper>().toDenseMatrix(), m1);
168
169
170 m1.setZero();
171 m1.template triangularView<StrictlyLower>() = 3 * m2;
172 VERIFY_IS_APPROX(m3.template triangularView<StrictlyLower>().toDenseMatrix(), m1);
173 m1.setRandom();
174 m2 = m1.template triangularView<Upper>();
175 VERIFY(m2.isUpperTriangular());
176 VERIFY(!m2.isLowerTriangular());
177 m2 = m1.template triangularView<StrictlyUpper>();

Callers 1

test_triangularFunction · 0.85

Calls 11

isUpperTriangularMethod · 0.80
isLowerTriangularMethod · 0.80
arrayMethod · 0.80
rowsMethod · 0.45
colsMethod · 0.45
transposeMethod · 0.45
setZeroMethod · 0.45
toDenseMatrixMethod · 0.45
isMuchSmallerThanMethod · 0.45
diagonalMethod · 0.45
swapMethod · 0.45

Tested by

no test coverage detected