changeset 29769:fe06c183cc4e stable

logm.m: Allow tolerance in check for real negative values in complex vector (bug #60738). * scripts/linear-algebra/logm.m: Allow tolerance in check for real negative values in complex vector.
author Steven <steven.waldrip@gmail.com>
date Tue, 15 Jun 2021 11:41:27 +1000
parents 5113ae64136b
children 4778b21b1386
files scripts/linear-algebra/logm.m
diffstat 1 files changed, 2 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/linear-algebra/logm.m	Wed Jun 16 15:49:50 2021 +0900
+++ b/scripts/linear-algebra/logm.m	Tue Jun 15 11:41:27 2021 +1000
@@ -75,7 +75,8 @@
   endif
 
   eigv = diag (s);
-  real_neg_eigv = (real (eigv) < 0) & (imag (eigv) == 0);
+  tol = rows (A) * eps (max (abs (eigv)));
+  real_neg_eigv = (real (eigv) < -tol) & (imag (eigv) <= tol);
   if (any (real_neg_eigv))
     warning ("Octave:logm:non-principal",
              "logm: principal matrix logarithm is not defined for matrices with negative eigenvalues; computing non-principal logarithm");