MCPcopy Create free account
hub / github.com/avaxman/Directional / triangular_rect

Function triangular_rect

external/eigen/test/triangular.cpp:186–266  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

184
185
186template<typename MatrixType> void triangular_rect(const MatrixType& m)
187{
188 typedef typename MatrixType::Scalar Scalar;
189 typedef typename NumTraits<Scalar>::Real RealScalar;
190 enum { Rows = MatrixType::RowsAtCompileTime, Cols = MatrixType::ColsAtCompileTime };
191
192 Index rows = m.rows();
193 Index cols = m.cols();
194
195 MatrixType m1 = MatrixType::Random(rows, cols),
196 m2 = MatrixType::Random(rows, cols),
197 m3(rows, cols),
198 m4(rows, cols),
199 r1(rows, cols),
200 r2(rows, cols);
201
202 MatrixType m1up = m1.template triangularView<Upper>();
203 MatrixType m2up = m2.template triangularView<Upper>();
204
205 if (rows>1 && cols>1)
206 {
207 VERIFY(m1up.isUpperTriangular());
208 VERIFY(m2up.transpose().isLowerTriangular());
209 VERIFY(!m2.isLowerTriangular());
210 }
211
212 // test overloaded operator+=
213 r1.setZero();
214 r2.setZero();
215 r1.template triangularView<Upper>() += m1;
216 r2 += m1up;
217 VERIFY_IS_APPROX(r1,r2);
218
219 // test overloaded operator=
220 m1.setZero();
221 m1.template triangularView<Upper>() = 3 * m2;
222 m3 = 3 * m2;
223 VERIFY_IS_APPROX(m3.template triangularView<Upper>().toDenseMatrix(), m1);
224
225
226 m1.setZero();
227 m1.template triangularView<Lower>() = 3 * m2;
228 VERIFY_IS_APPROX(m3.template triangularView<Lower>().toDenseMatrix(), m1);
229
230 m1.setZero();
231 m1.template triangularView<StrictlyUpper>() = 3 * m2;
232 VERIFY_IS_APPROX(m3.template triangularView<StrictlyUpper>().toDenseMatrix(), m1);
233
234
235 m1.setZero();
236 m1.template triangularView<StrictlyLower>() = 3 * m2;
237 VERIFY_IS_APPROX(m3.template triangularView<StrictlyLower>().toDenseMatrix(), m1);
238 m1.setRandom();
239 m2 = m1.template triangularView<Upper>();
240 VERIFY(m2.isUpperTriangular());
241 VERIFY(!m2.isLowerTriangular());
242 m2 = m1.template triangularView<StrictlyUpper>();
243 VERIFY(m2.isUpperTriangular());

Callers 1

EIGEN_DECLARE_TESTFunction · 0.85

Calls 11

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

Tested by

no test coverage detected