bug #1617: Fix SolveTriangular.solveInPlace crashing for empty matrix.

This made FullPivLU.kernel() crash when used on the zero matrix.
Add unit test for FullPivLU.kernel() on the zero matrix.
(grafted from 8d7a73e48e
)
This commit is contained in:
Matthieu Vigne
2018-10-31 20:28:18 +01:00
parent d107a371c6
commit 0ee9dede55
2 changed files with 7 additions and 0 deletions

View File

@@ -57,6 +57,10 @@ template<typename MatrixType> void lu_non_invertible()
// The image of the zero matrix should consist of a single (zero) column vector
VERIFY((MatrixType::Zero(rows,cols).fullPivLu().image(MatrixType::Zero(rows,cols)).cols() == 1));
// The kernel of the zero matrix is the entire space, and thus is an invertible matrix of dimensions cols.
KernelMatrixType kernel = MatrixType::Zero(rows,cols).fullPivLu().kernel();
VERIFY((kernel.fullPivLu().isInvertible()));
MatrixType m1(rows, cols), m3(rows, cols2);
CMatrixType m2(cols, cols2);
createRandomPIMatrixOfRank(rank, rows, cols, m1);