Skip to content

Commit c87050b

Browse files
committed
Got rid of zeroBelowDiagonal, as Eigen has it, and was used in only a single place
1 parent fa37ce7 commit c87050b

File tree

3 files changed

+2
-70
lines changed

3 files changed

+2
-70
lines changed

gtsam/base/Matrix.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,7 @@ void inplace_QR(Matrix& A){
639639
Eigen::internal::householder_qr_inplace_blocked<Matrix, HCoeffsType>::run(A, hCoeffs, 48, temp.data());
640640
#endif
641641

642-
zeroBelowDiagonal(A);
642+
A.triangularView<Eigen::StrictlyLower>().setZero();
643643
}
644644

645645
} // namespace gtsam

gtsam/base/Matrix.h

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -216,19 +216,6 @@ const typename MATRIX::ConstRowXpr row(const MATRIX& A, size_t j) {
216216
return A.row(j);
217217
}
218218

219-
/**
220-
* Zeros all of the elements below the diagonal of a matrix, in place
221-
* @param A is a matrix, to be modified in place
222-
* @param cols is the number of columns to zero, use zero for all columns
223-
*/
224-
template<class MATRIX>
225-
void zeroBelowDiagonal(MATRIX& A, size_t cols=0) {
226-
const size_t m = A.rows(), n = A.cols();
227-
const size_t k = (cols) ? std::min(cols, std::min(m,n)) : std::min(m,n);
228-
for (size_t j=0; j<k; ++j)
229-
A.col(j).segment(j+1, m-(j+1)).setZero();
230-
}
231-
232219
/**
233220
* static transpose function, just calls Eigen transpose member function
234221
*/

gtsam/base/tests/testMatrix.cpp

Lines changed: 1 addition & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -596,61 +596,6 @@ TEST(Matrix, scalar_divide )
596596
EQUALITY(B,A/10);
597597
}
598598

599-
/* ************************************************************************* */
600-
TEST(Matrix, zero_below_diagonal ) {
601-
Matrix A1 = (Matrix(3, 4) <<
602-
1.0, 2.0, 3.0, 4.0,
603-
1.0, 2.0, 3.0, 4.0,
604-
1.0, 2.0, 3.0, 4.0).finished();
605-
606-
Matrix expected1 = (Matrix(3, 4) <<
607-
1.0, 2.0, 3.0, 4.0,
608-
0.0, 2.0, 3.0, 4.0,
609-
0.0, 0.0, 3.0, 4.0).finished();
610-
Matrix actual1r = A1;
611-
zeroBelowDiagonal(actual1r);
612-
EXPECT(assert_equal(expected1, actual1r, 1e-10));
613-
614-
Matrix actual1c = A1;
615-
zeroBelowDiagonal(actual1c);
616-
EXPECT(assert_equal(Matrix(expected1), actual1c, 1e-10));
617-
618-
actual1c = A1;
619-
zeroBelowDiagonal(actual1c, 4);
620-
EXPECT(assert_equal(Matrix(expected1), actual1c, 1e-10));
621-
622-
Matrix A2 = (Matrix(5, 3) <<
623-
1.0, 2.0, 3.0,
624-
1.0, 2.0, 3.0,
625-
1.0, 2.0, 3.0,
626-
1.0, 2.0, 3.0,
627-
1.0, 2.0, 3.0).finished();
628-
Matrix expected2 = (Matrix(5, 3) <<
629-
1.0, 2.0, 3.0,
630-
0.0, 2.0, 3.0,
631-
0.0, 0.0, 3.0,
632-
0.0, 0.0, 0.0,
633-
0.0, 0.0, 0.0).finished();
634-
635-
Matrix actual2r = A2;
636-
zeroBelowDiagonal(actual2r);
637-
EXPECT(assert_equal(expected2, actual2r, 1e-10));
638-
639-
Matrix actual2c = A2;
640-
zeroBelowDiagonal(actual2c);
641-
EXPECT(assert_equal(Matrix(expected2), actual2c, 1e-10));
642-
643-
Matrix expected2_partial = (Matrix(5, 3) <<
644-
1.0, 2.0, 3.0,
645-
0.0, 2.0, 3.0,
646-
0.0, 2.0, 3.0,
647-
0.0, 2.0, 3.0,
648-
0.0, 2.0, 3.0).finished();
649-
actual2c = A2;
650-
zeroBelowDiagonal(actual2c, 1);
651-
EXPECT(assert_equal(Matrix(expected2_partial), actual2c, 1e-10));
652-
}
653-
654599
/* ************************************************************************* */
655600
TEST(Matrix, inverse )
656601
{
@@ -825,7 +770,7 @@ TEST(Matrix, eigen_QR )
825770
10, 0, 0, 0,-10,0, 2,
826771
00, 10,0, 0, 0, -10, -1).finished());
827772
Matrix actual = A.householderQr().matrixQR();
828-
zeroBelowDiagonal(actual);
773+
actual.triangularView<Eigen::StrictlyLower>().setZero();
829774

830775
EXPECT(assert_equal(expected, actual, 1e-3));
831776

0 commit comments

Comments
 (0)