changeset 10813:2c2d4a2f1047

fix workspace bug workaround for xGELSD (since 7486:6a6d2abe51ff)
author Jaroslav Hajek <highegg@gmail.com>
date Thu, 22 Jul 2010 09:54:03 +0200
parents 5b68000faac1
children 83896a06adaf
files liboctave/CMatrix.cc liboctave/ChangeLog liboctave/dMatrix.cc liboctave/fCMatrix.cc liboctave/fMatrix.cc
diffstat 5 files changed, 11 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/CMatrix.cc
+++ b/liboctave/CMatrix.cc
@@ -2653,7 +2653,7 @@
       // through 3.1.1 when n >= mnthr.  The obtuse formula below
       // should provide sufficient workspace for ZGELSD to operate
       // efficiently.
-      if (n >= mnthr)
+      if (n > m && n >= mnthr)
         {
           octave_idx_type addend = m;
 
--- a/liboctave/ChangeLog
+++ b/liboctave/ChangeLog
@@ -1,3 +1,10 @@
+2010-07-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	* dMatrix.cc (Matrix::lssolve): Fix decision test for workaround.
+	* fMatrix.cc (FloatMatrix::lssolve): Ditto.
+	* CMatrix.cc (ComplexMatrix::lssolve): Ditto.
+	* fCMatrix.cc (FloatComplexMatrix::lssolve): Ditto.
+
 2010-07-20  Jaroslav Hajek  <highegg@gmail.com>
 
 	* dim-vector.cc (dim_vector::dim_max): New static const member.
--- a/liboctave/dMatrix.cc
+++ b/liboctave/dMatrix.cc
@@ -2294,7 +2294,7 @@
       // through 3.1.1 when n >= mnthr.  The obtuse formula below
       // should provide sufficient workspace for DGELSD to operate
       // efficiently.
-      if (n >= mnthr)
+      if (n > m && n >= mnthr)
         {
           const octave_idx_type wlalsd
             = 9*m + 2*m*smlsiz + 8*m*nlvl + m*nrhs + (smlsiz+1)*(smlsiz+1);
--- a/liboctave/fCMatrix.cc
+++ b/liboctave/fCMatrix.cc
@@ -2646,7 +2646,7 @@
       // through 3.1.1 when n >= mnthr.  The obtuse formula below
       // should provide sufficient workspace for ZGELSD to operate
       // efficiently.
-      if (n >= mnthr)
+      if (n > m && n >= mnthr)
         {
           octave_idx_type addend = m;
 
--- a/liboctave/fMatrix.cc
+++ b/liboctave/fMatrix.cc
@@ -2293,7 +2293,7 @@
       // through 3.1.1 when n >= mnthr.  The obtuse formula below
       // should provide sufficient workspace for DGELSD to operate
       // efficiently.
-      if (n >= mnthr)
+      if (n > m && n >= mnthr)
         {
           const octave_idx_type wlalsd
             = 9*m + 2*m*smlsiz + 8*m*nlvl + m*nrhs + (smlsiz+1)*(smlsiz+1);