diff options
author | Gael Guennebaud <g.gael@free.fr> | 2013-02-26 11:42:32 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2013-02-26 11:42:32 +0100 |
commit | 5dda7842ca66c7a81b703734bc7bd8cef11a6d7b (patch) | |
tree | 769a905d52c8cf3bcf498fcbdc87b97fe3bd7f2e /Eigen/src/LU | |
parent | b73baa1ea44d4a629478e5e6be2552c7fb8e691f (diff) |
Add assertion on the input matrix size in factorizations relying on permutations of 32bits int
Diffstat (limited to 'Eigen/src/LU')
-rw-r--r-- | Eigen/src/LU/FullPivLU.h | 3 | ||||
-rw-r--r-- | Eigen/src/LU/PartialPivLU.h | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/Eigen/src/LU/FullPivLU.h b/Eigen/src/LU/FullPivLU.h index 14a9c402d..dfe25f424 100644 --- a/Eigen/src/LU/FullPivLU.h +++ b/Eigen/src/LU/FullPivLU.h @@ -417,6 +417,9 @@ FullPivLU<MatrixType>::FullPivLU(const MatrixType& matrix) template<typename MatrixType> FullPivLU<MatrixType>& FullPivLU<MatrixType>::compute(const MatrixType& matrix) { + // the permutations are stored as int indices, so just to be sure: + eigen_assert(matrix.rows()<=NumTraits<int>::highest() && matrix.cols()<=NumTraits<int>::highest()); + m_isInitialized = true; m_lu = matrix; diff --git a/Eigen/src/LU/PartialPivLU.h b/Eigen/src/LU/PartialPivLU.h index c9ff9dd5a..4017b5699 100644 --- a/Eigen/src/LU/PartialPivLU.h +++ b/Eigen/src/LU/PartialPivLU.h @@ -386,6 +386,9 @@ void partial_lu_inplace(MatrixType& lu, TranspositionType& row_transpositions, t template<typename MatrixType> PartialPivLU<MatrixType>& PartialPivLU<MatrixType>::compute(const MatrixType& matrix) { + // the row permutation is stored as int indices, so just to be sure: + eigen_assert(matrix.rows()<NumTraits<int>::highest()); + m_lu = matrix; eigen_assert(matrix.rows() == matrix.cols() && "PartialPivLU is only for square (and moreover invertible) matrices"); |