diff liboctave/dbleLU.cc @ 4329:d53c33d93440

[project @ 2003-02-18 20:00:48 by jwe]
author jwe
date Tue, 18 Feb 2003 20:08:20 +0000
parents 5719210fff4c
children 6f3382e08a52
line wrap: on
line diff
--- a/liboctave/dbleLU.cc
+++ b/liboctave/dbleLU.cc
@@ -51,16 +51,9 @@
 {
   int a_nr = a.rows ();
   int a_nc = a.cols ();
+  int mn = (a_nr < a_nc ? a_nr : a_nc);
 
-  if (a_nr == 0 || a_nc == 0 || a_nr != a_nc)
-    {
-      (*current_liboctave_error_handler) ("LU requires square matrix");
-      return;
-    }
-
-  int n = a_nr;
-
-  ipvt.resize (n);
+  ipvt.resize (mn);
   int *pipvt = ipvt.fortran_vec ();
 
   a_fact = a;
@@ -68,10 +61,10 @@
 
   int info = 0;
 
-  F77_XFCN (dgetrf, DGETRF, (n, n, tmp_data, n, pipvt, info));
+  F77_XFCN (dgetrf, DGETRF, (a_nr, a_nc, tmp_data, a_nr, pipvt, info));
 
   if (f77_exception_encountered)
-    (*current_liboctave_error_handler) ("unrecoverable error in dgesv");
+    (*current_liboctave_error_handler) ("unrecoverable error in dgetrf");
   else
     ipvt -= 1;
 }