From cac147ba10dc82927c95c9c70bb35a4afa66ac45 Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Mon, 19 Jul 2010 10:45:06 +0200 Subject: [PATCH] add support for determinant on empty matrix --- Eigen/src/LU/Determinant.h | 2 ++ test/determinant.cpp | 3 +++ 2 files changed, 5 insertions(+) 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::Scalar run(const Derived& m) { + if(Derived::ColsAtCompileTime==Dynamic && m.rows()==0) + return typename ei_traits::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 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()