MCPcopy Create free account
hub / github.com/PX4/eigen / triangular_rect

Function triangular_rect

test/triangular.cpp:135–216  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

133
134
135template<typename MatrixType> void triangular_rect(const MatrixType& m)
136{
137 typedef const typename MatrixType::Index Index;
138 typedef typename MatrixType::Scalar Scalar;
139 typedef typename NumTraits<Scalar>::Real RealScalar;
140 enum { Rows = MatrixType::RowsAtCompileTime, Cols = MatrixType::ColsAtCompileTime };
141
142 Index rows = m.rows();
143 Index cols = m.cols();
144
145 MatrixType m1 = MatrixType::Random(rows, cols),
146 m2 = MatrixType::Random(rows, cols),
147 m3(rows, cols),
148 m4(rows, cols),
149 r1(rows, cols),
150 r2(rows, cols);
151
152 MatrixType m1up = m1.template triangularView<Upper>();
153 MatrixType m2up = m2.template triangularView<Upper>();
154
155 if (rows>1 && cols>1)
156 {
157 VERIFY(m1up.isUpperTriangular());
158 VERIFY(m2up.transpose().isLowerTriangular());
159 VERIFY(!m2.isLowerTriangular());
160 }
161
162 // test overloaded operator+=
163 r1.setZero();
164 r2.setZero();
165 r1.template triangularView<Upper>() += m1;
166 r2 += m1up;
167 VERIFY_IS_APPROX(r1,r2);
168
169 // test overloaded operator=
170 m1.setZero();
171 m1.template triangularView<Upper>() = 3 * m2;
172 m3 = 3 * m2;
173 VERIFY_IS_APPROX(m3.template triangularView<Upper>().toDenseMatrix(), m1);
174
175
176 m1.setZero();
177 m1.template triangularView<Lower>() = 3 * m2;
178 VERIFY_IS_APPROX(m3.template triangularView<Lower>().toDenseMatrix(), m1);
179
180 m1.setZero();
181 m1.template triangularView<StrictlyUpper>() = 3 * m2;
182 VERIFY_IS_APPROX(m3.template triangularView<StrictlyUpper>().toDenseMatrix(), m1);
183
184
185 m1.setZero();
186 m1.template triangularView<StrictlyLower>() = 3 * m2;
187 VERIFY_IS_APPROX(m3.template triangularView<StrictlyLower>().toDenseMatrix(), m1);
188 m1.setRandom();
189 m2 = m1.template triangularView<Upper>();
190 VERIFY(m2.isUpperTriangular());
191 VERIFY(!m2.isLowerTriangular());
192 m2 = m1.template triangularView<StrictlyUpper>();

Callers 1

test_triangularFunction · 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 1

test_triangularFunction · 0.68