Mercurial > hg > octave-nkf
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; }