lapacke_*gesdd: missing MAX. Should be lrwork = MAX(1, ...)
authoreugene.chereshnev <eugenechereshnev@gmail.com>
Wed, 1 Feb 2017 02:38:45 +0000 (18:38 -0800)
committereugene.chereshnev <eugenechereshnev@gmail.com>
Sat, 4 Feb 2017 02:47:00 +0000 (18:47 -0800)
LAPACKE/src/lapacke_cgesdd.c
LAPACKE/src/lapacke_zgesdd.c

index 3ba34e1..26a04c1 100644 (file)
@@ -61,7 +61,7 @@ lapack_int LAPACKE_cgesdd( int matrix_layout, char jobz, lapack_int m,
     if( LAPACKE_lsame( jobz, 'n' ) ) {
         lrwork = MAX(1,7*MIN(m,n));
     } else {
-        lrwork = (size_t)MIN(m,n)*MAX(5*MIN(m,n)+7,2*MAX(m,n)+2*MIN(m,n)+1);
+        lrwork = (size_t)MAX(1,MIN(m,n)*MAX(5*MIN(m,n)+7,2*MAX(m,n)+2*MIN(m,n)+1));
     }
     /* Allocate memory for working array(s) */
     iwork = (lapack_int*)
index 18a53e4..30731c6 100644 (file)
@@ -61,7 +61,7 @@ lapack_int LAPACKE_zgesdd( int matrix_layout, char jobz, lapack_int m,
     if( LAPACKE_lsame( jobz, 'n' ) ) {
         lrwork = MAX(1,7*MIN(m,n));
     } else {
-        lrwork = (size_t)MIN(m,n)*MAX(5*MIN(m,n)+7,2*MAX(m,n)+2*MIN(m,n)+1);
+        lrwork = (size_t)MAX(1,MIN(m,n)*MAX(5*MIN(m,n)+7,2*MAX(m,n)+2*MIN(m,n)+1));
     }
     /* Allocate memory for working array(s) */
     iwork = (lapack_int*)