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) {
|
||||
eigen_assert(matrix.rows() == dec.rows());
|
||||
eigen_assert(matrix.cols() == dec.cols());
|
||||
if (dec.rows() == 0) return typename Decomposition::RealScalar(1);
|
||||
return ReciprocalConditionNumberEstimate(MatrixL1Norm(matrix), dec);
|
||||
}
|
||||
|
||||
@ -89,15 +90,9 @@ typename Decomposition::RealScalar ReciprocalConditionNumberEstimate(
|
||||
typename Decomposition::RealScalar matrix_norm, const Decomposition& dec) {
|
||||
typedef typename Decomposition::RealScalar RealScalar;
|
||||
eigen_assert(dec.rows() == dec.cols());
|
||||
if (dec.rows() == 0) {
|
||||
return RealScalar(1);
|
||||
}
|
||||
if (matrix_norm == RealScalar(0)) {
|
||||
return RealScalar(0);
|
||||
}
|
||||
if (dec.rows() == 1) {
|
||||
return RealScalar(1);
|
||||
}
|
||||
if (dec.rows() == 0) 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 =
|
||||
InverseMatrixL1NormEstimate(dec);
|
||||
return (inverse_matrix_norm == RealScalar(0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user