diff options
author | Gael Guennebaud <g.gael@free.fr> | 2010-07-19 10:45:06 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2010-07-19 10:45:06 +0200 |
commit | cac147ba10dc82927c95c9c70bb35a4afa66ac45 (patch) | |
tree | 2b2572f2fe3833f4684c0c595fde79c3a3315ae8 | |
parent | 78d3c54631e0ca25cde3efab6ba0445f83ef3514 (diff) |
add support for determinant on empty matrix
-rw-r--r-- | Eigen/src/LU/Determinant.h | 2 | ||||
-rw-r--r-- | test/determinant.cpp | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/Eigen/src/LU/Determinant.h b/Eigen/src/LU/Determinant.h index d0b70a31c..ea7db9c0f 100644 --- a/Eigen/src/LU/Determinant.h +++ b/Eigen/src/LU/Determinant.h @@ -47,6 +47,8 @@ template<typename Derived, { static inline typename ei_traits<Derived>::Scalar run(const Derived& m) { + if(Derived::ColsAtCompileTime==Dynamic && m.rows()==0) + return typename ei_traits<Derived>::Scalar(1); return m.partialPivLu().determinant(); } }; diff --git a/test/determinant.cpp b/test/determinant.cpp index 494fa5eab..8112131b7 100644 --- a/test/determinant.cpp +++ b/test/determinant.cpp @@ -61,6 +61,9 @@ template<typename MatrixType> void determinant(const MatrixType& m) m2 = m1; m2.row(i) *= x; VERIFY_IS_APPROX(m2.determinant(), m1.determinant() * x); + + // check empty matrix + VERIFY_IS_APPROX(m2.block(0,0,0,0).determinant(), Scalar(1)); } void test_determinant() |