diff liboctave/array/fDiagMatrix.cc @ 18494:1fa5bba16218

[mq]: pinv
author Rik <rik@octave.org>
date Tue, 18 Feb 2014 09:39:36 -0800
parents 16b0cd465ecd
children 80b8873c90ba
line wrap: on
line diff
--- a/liboctave/array/fDiagMatrix.cc	Tue Feb 18 02:51:48 2014 -0500
+++ b/liboctave/array/fDiagMatrix.cc	Tue Feb 18 09:39:36 2014 -0800
@@ -303,10 +303,10 @@
   for (octave_idx_type i = 0; i < len; i++)
     {
       float val = std::abs (elem (i, i));
-      if (val < tol || val == 0.0f)
+      if (val < tol)
         retval.elem (i, i) = 0.0f;
-      else
-        retval.elem (i, i) = 1.0f / val;
+      else if (val != 0.0f)
+        retval.elem (i, i) = 1.0f / elem (i, i);
     }
 
   return retval;