mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
bug #1669: fix PartialPivLU/inverse with zero-sized matrices.
This commit is contained in:
@@ -105,6 +105,22 @@ template<typename MatrixType> void inverse(const MatrixType& m)
|
||||
}
|
||||
}
|
||||
|
||||
template<typename Scalar>
|
||||
void inverse_zerosized()
|
||||
{
|
||||
Matrix<Scalar,Dynamic,Dynamic> A(0,0);
|
||||
{
|
||||
Matrix<Scalar,0,1> b, x;
|
||||
x = A.inverse() * b;
|
||||
}
|
||||
{
|
||||
Matrix<Scalar,Dynamic,Dynamic> b(0,1), x;
|
||||
x = A.inverse() * b;
|
||||
VERIFY_IS_EQUAL(x.rows(), 0);
|
||||
VERIFY_IS_EQUAL(x.cols(), 1);
|
||||
}
|
||||
}
|
||||
|
||||
EIGEN_DECLARE_TEST(inverse)
|
||||
{
|
||||
int s = 0;
|
||||
@@ -118,6 +134,7 @@ EIGEN_DECLARE_TEST(inverse)
|
||||
s = internal::random<int>(50,320);
|
||||
CALL_SUBTEST_5( inverse(MatrixXf(s,s)) );
|
||||
TEST_SET_BUT_UNUSED_VARIABLE(s)
|
||||
CALL_SUBTEST_5( inverse_zerosized<float>() );
|
||||
|
||||
s = internal::random<int>(25,100);
|
||||
CALL_SUBTEST_6( inverse(MatrixXcd(s,s)) );
|
||||
|
||||
Reference in New Issue
Block a user