# HG changeset patch # User Markus Mützel # Date 1626886314 -7200 # Node ID 3cb8519fed0f73c361291342586e0a90f8620fc4 # Parent ee84485289cecb300ec95c6470623bd86944e0af Use LU factorization to solve (close to) singular full matrices. * liboctave/array/CMatrix.cc (ComplexMatrix::fsolve), liboctave/array/dMatrix.cc (Matrix::fsolve), liboctave/array/fCMatrix.cc (FloatComplexMatrix::fsolve), liboctave/array/fMatrix.cc (FloatMatrix::fsolve): Continue with LU decomposition also for (close to) singular full matrices. See also: https://octave.discourse.group/t/1365 diff -r ee84485289ce -r 3cb8519fed0f liboctave/array/CMatrix.cc --- a/liboctave/array/CMatrix.cc Wed Jul 21 09:42:28 2021 -0700 +++ b/liboctave/array/CMatrix.cc Wed Jul 21 18:51:54 2021 +0200 @@ -1866,8 +1866,6 @@ if (rcond_plus_one == 1.0 || octave::math::isnan (rcon)) { - info = -2; - if (sing_handler) sing_handler (rcon); else diff -r ee84485289ce -r 3cb8519fed0f liboctave/array/dMatrix.cc --- a/liboctave/array/dMatrix.cc Wed Jul 21 09:42:28 2021 -0700 +++ b/liboctave/array/dMatrix.cc Wed Jul 21 18:51:54 2021 +0200 @@ -1535,8 +1535,6 @@ if (rcond_plus_one == 1.0 || octave::math::isnan (rcon)) { - info = -2; - if (sing_handler) sing_handler (rcon); else diff -r ee84485289ce -r 3cb8519fed0f liboctave/array/fCMatrix.cc --- a/liboctave/array/fCMatrix.cc Wed Jul 21 09:42:28 2021 -0700 +++ b/liboctave/array/fCMatrix.cc Wed Jul 21 18:51:54 2021 +0200 @@ -1876,8 +1876,6 @@ if (rcond_plus_one == 1.0 || octave::math::isnan (rcon)) { - info = -2; - if (sing_handler) sing_handler (rcon); else diff -r ee84485289ce -r 3cb8519fed0f liboctave/array/fMatrix.cc --- a/liboctave/array/fMatrix.cc Wed Jul 21 09:42:28 2021 -0700 +++ b/liboctave/array/fMatrix.cc Wed Jul 21 18:51:54 2021 +0200 @@ -1555,8 +1555,6 @@ if (rcond_plus_one == 1.0 || octave::math::isnan (rcon)) { - info = -2; - if (sing_handler) sing_handler (rcon); else