mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-11 19:29:02 +08:00
Add short-circuit to avoid calling matrix norm for empty matrix.
This commit is contained in:
parent
4a92b590a0
commit
096e355f8e
@ -65,6 +65,7 @@ typename Decomposition::RealScalar ReciprocalConditionNumberEstimate(
|
|||||||
const Decomposition& dec) {
|
const Decomposition& dec) {
|
||||||
eigen_assert(matrix.rows() == dec.rows());
|
eigen_assert(matrix.rows() == dec.rows());
|
||||||
eigen_assert(matrix.cols() == dec.cols());
|
eigen_assert(matrix.cols() == dec.cols());
|
||||||
|
if (dec.rows() == 0) return typename Decomposition::RealScalar(1);
|
||||||
return ReciprocalConditionNumberEstimate(MatrixL1Norm(matrix), dec);
|
return ReciprocalConditionNumberEstimate(MatrixL1Norm(matrix), dec);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,15 +90,9 @@ typename Decomposition::RealScalar ReciprocalConditionNumberEstimate(
|
|||||||
typename Decomposition::RealScalar matrix_norm, const Decomposition& dec) {
|
typename Decomposition::RealScalar matrix_norm, const Decomposition& dec) {
|
||||||
typedef typename Decomposition::RealScalar RealScalar;
|
typedef typename Decomposition::RealScalar RealScalar;
|
||||||
eigen_assert(dec.rows() == dec.cols());
|
eigen_assert(dec.rows() == dec.cols());
|
||||||
if (dec.rows() == 0) {
|
if (dec.rows() == 0) return RealScalar(1);
|
||||||
return RealScalar(1);
|
if (matrix_norm == RealScalar(0)) return RealScalar(0);
|
||||||
}
|
if (dec.rows() == 1) return RealScalar(1);
|
||||||
if (matrix_norm == RealScalar(0)) {
|
|
||||||
return RealScalar(0);
|
|
||||||
}
|
|
||||||
if (dec.rows() == 1) {
|
|
||||||
return RealScalar(1);
|
|
||||||
}
|
|
||||||
const typename Decomposition::RealScalar inverse_matrix_norm =
|
const typename Decomposition::RealScalar inverse_matrix_norm =
|
||||||
InverseMatrixL1NormEstimate(dec);
|
InverseMatrixL1NormEstimate(dec);
|
||||||
return (inverse_matrix_norm == RealScalar(0)
|
return (inverse_matrix_norm == RealScalar(0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user