diff liboctave/fCmplxSVD.cc @ 10185:455759a5fcbe

fix norm and svd on empty matrices
author Jaroslav Hajek <highegg@gmail.com>
date Fri, 22 Jan 2010 12:37:03 +0100
parents 4c0cdbe0acca
children e317791645c4
line wrap: on
line diff
--- a/liboctave/fCmplxSVD.cc	Thu Jan 21 21:27:16 2010 +0100
+++ b/liboctave/fCmplxSVD.cc	Fri Jan 22 12:37:03 2010 +0100
@@ -141,10 +141,12 @@
 
   Array<FloatComplex> work (1);
 
+  octave_idx_type m1 = std::max (m, 1), nrow_vt1 = std::max (nrow_vt, 1);
+
   F77_XFCN (cgesvd, CGESVD, (F77_CONST_CHAR_ARG2 (&jobu, 1),
 			     F77_CONST_CHAR_ARG2 (&jobv, 1),
-			     m, n, tmp_data, m, s_vec, u, m, vt,
-			     nrow_vt, work.fortran_vec (), lwork,
+			     m, n, tmp_data, m1, s_vec, u, m1, vt,
+			     nrow_vt1, work.fortran_vec (), lwork,
 			     rwork.fortran_vec (), info
 			     F77_CHAR_ARG_LEN (1)
 			     F77_CHAR_ARG_LEN (1)));
@@ -154,8 +156,8 @@
 
   F77_XFCN (cgesvd, CGESVD, (F77_CONST_CHAR_ARG2 (&jobu, 1),
 			     F77_CONST_CHAR_ARG2 (&jobv, 1),
-			     m, n, tmp_data, m, s_vec, u, m, vt,
-			     nrow_vt, work.fortran_vec (), lwork,
+			     m, n, tmp_data, m1, s_vec, u, m1, vt,
+			     nrow_vt1, work.fortran_vec (), lwork,
 			     rwork.fortran_vec (), info
 			     F77_CHAR_ARG_LEN (1)
 			     F77_CHAR_ARG_LEN (1)));