diff liboctave/dbleQR.cc @ 7560:0ef0f9802a37

modify QR updating methods to use 0-based indexing
author Jaroslav Hajek <highegg@gmail.com>
date Wed, 05 Mar 2008 14:24:33 -0500
parents 07522d7dcdf8
children efccca5f2ad7
line wrap: on
line diff
--- a/liboctave/dbleQR.cc	Wed Mar 05 14:23:26 2008 -0500
+++ b/liboctave/dbleQR.cc	Wed Mar 05 14:24:33 2008 -0500
@@ -179,14 +179,14 @@
 
   if (u.length () != m)
     (*current_liboctave_error_handler) ("QR insert dimensions mismatch");
-  else if (j < 1 || j > n+1) 
+  else if (j < 0 || j > n) 
     (*current_liboctave_error_handler) ("QR insert index out of range");
   else
     {
       Matrix r1 (m, n+1);
 
       F77_XFCN (dqrinc, DQRINC, (m, n, k, q.fortran_vec (), r.data (),
-				 r1.fortran_vec (), j, u.data ()));
+				 r1.fortran_vec (), j+1, u.data ()));
 
       r = r1;
     }
@@ -201,14 +201,14 @@
 
   if (k < m && k < n) 
     (*current_liboctave_error_handler) ("QR delete dimensions mismatch");
-  else if (j < 1 || j > n) 
+  else if (j < 0 || j > n-1) 
     (*current_liboctave_error_handler) ("QR delete index out of range");
   else
     {
       Matrix r1 (k, n-1);
 
       F77_XFCN (dqrdec, DQRDEC, (m, n, k, q.fortran_vec (), r.data (),
-				 r1.fortran_vec (), j));
+				 r1.fortran_vec (), j+1));
 
       r = r1;
     }
@@ -222,7 +222,7 @@
 
   if (! q.is_square () || u.length () != n)
     (*current_liboctave_error_handler) ("QR insert dimensions mismatch");
-  else if (j < 1 || j > m+1) 
+  else if (j < 0 || j > m) 
     (*current_liboctave_error_handler) ("QR insert index out of range");
   else
     {
@@ -230,7 +230,7 @@
       Matrix r1 (m+1, n);
 
       F77_XFCN (dqrinr, DQRINR, (m, n, q.data (), q1.fortran_vec (), 
-				 r.data (), r1.fortran_vec (), j, u.data ()));
+				 r.data (), r1.fortran_vec (), j+1, u.data ()));
 
       q = q1;
       r = r1;
@@ -245,7 +245,7 @@
 
   if (! q.is_square ())
     (*current_liboctave_error_handler) ("QR insert dimensions mismatch");
-  else if (j < 1 || j > m) 
+  else if (j < 0 || j > m-1) 
     (*current_liboctave_error_handler) ("QR delete index out of range");
   else
     {
@@ -253,7 +253,7 @@
       Matrix r1 (m-1, n);
 
       F77_XFCN (dqrder, DQRDER, (m, n, q.data (), q1.fortran_vec (), 
-				 r.data (), r1.fortran_vec (), j ));
+				 r.data (), r1.fortran_vec (), j+1 ));
 
       q = q1;
       r = r1;