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

Function triangular_rect

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

Source from the content-addressed store, hash-verified

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