Inappropriate use of 'LAPACKE_dge_trans' instead of LAPACKE_dsy_trans in LAPACKE_dsyg...
authorJulien Langou <julien.langou@ucdenver.edu>
Mon, 26 Dec 2016 09:29:12 +0000 (10:29 +0100)
committerJulien Langou <julien.langou@ucdenver.edu>
Mon, 26 Dec 2016 09:29:12 +0000 (10:29 +0100)
Same for c,s,z

See http://icl.cs.utk.edu/lapack-forum/viewtopic.php?t=5018

Thanks to pysmile@lapack-forum for bug report

LAPACKE/src/lapacke_chegvx_work.c
LAPACKE/src/lapacke_dsygvx_work.c
LAPACKE/src/lapacke_ssygvx_work.c
LAPACKE/src/lapacke_zhegvx_work.c

index cd8c570..8251662 100644 (file)
@@ -110,7 +110,7 @@ lapack_int LAPACKE_chegvx_work( int matrix_layout, lapack_int itype, char jobz,
         }
         /* Transpose input matrices */
         LAPACKE_che_trans( matrix_layout, uplo, n, a, lda, a_t, lda_t );
-        LAPACKE_cge_trans( matrix_layout, n, n, b, ldb, b_t, ldb_t );
+        LAPACKE_che_trans( matrix_layout, uplo, n, b, ldb, b_t, ldb_t );
         /* Call LAPACK function and adjust info */
         LAPACK_chegvx( &itype, &jobz, &range, &uplo, &n, a_t, &lda_t, b_t,
                        &ldb_t, &vl, &vu, &il, &iu, &abstol, m, w, z_t, &ldz_t,
@@ -120,7 +120,7 @@ lapack_int LAPACKE_chegvx_work( int matrix_layout, lapack_int itype, char jobz,
         }
         /* Transpose output matrices */
         LAPACKE_che_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
-        LAPACKE_cge_trans( LAPACK_COL_MAJOR, n, n, b_t, ldb_t, b, ldb );
+        LAPACKE_che_trans( LAPACK_COL_MAJOR, uplo, n, b_t, ldb_t, b, ldb );
         if( LAPACKE_lsame( jobz, 'v' ) ) {
             LAPACKE_cge_trans( LAPACK_COL_MAJOR, n, ncols_z, z_t, ldz_t, z,
                                ldz );
index a53e8f7..b5f41c7 100644 (file)
@@ -105,7 +105,7 @@ lapack_int LAPACKE_dsygvx_work( int matrix_layout, lapack_int itype, char jobz,
         }
         /* Transpose input matrices */
         LAPACKE_dsy_trans( matrix_layout, uplo, n, a, lda, a_t, lda_t );
-        LAPACKE_dge_trans( matrix_layout, n, n, b, ldb, b_t, ldb_t );
+        LAPACKE_dsy_trans( matrix_layout, uplo, n, b, ldb, b_t, ldb_t );
         /* Call LAPACK function and adjust info */
         LAPACK_dsygvx( &itype, &jobz, &range, &uplo, &n, a_t, &lda_t, b_t,
                        &ldb_t, &vl, &vu, &il, &iu, &abstol, m, w, z_t, &ldz_t,
@@ -115,7 +115,7 @@ lapack_int LAPACKE_dsygvx_work( int matrix_layout, lapack_int itype, char jobz,
         }
         /* Transpose output matrices */
         LAPACKE_dsy_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
-        LAPACKE_dge_trans( LAPACK_COL_MAJOR, n, n, b_t, ldb_t, b, ldb );
+        LAPACKE_dsy_trans( LAPACK_COL_MAJOR, uplo, n, b_t, ldb_t, b, ldb );
         if( LAPACKE_lsame( jobz, 'v' ) ) {
             LAPACKE_dge_trans( LAPACK_COL_MAJOR, n, ncols_z, z_t, ldz_t, z,
                                ldz );
index 814eea3..9bc8781 100644 (file)
@@ -105,7 +105,7 @@ lapack_int LAPACKE_ssygvx_work( int matrix_layout, lapack_int itype, char jobz,
         }
         /* Transpose input matrices */
         LAPACKE_ssy_trans( matrix_layout, uplo, n, a, lda, a_t, lda_t );
-        LAPACKE_sge_trans( matrix_layout, n, n, b, ldb, b_t, ldb_t );
+        LAPACKE_ssy_trans( matrix_layout, uplo, n, b, ldb, b_t, ldb_t );
         /* Call LAPACK function and adjust info */
         LAPACK_ssygvx( &itype, &jobz, &range, &uplo, &n, a_t, &lda_t, b_t,
                        &ldb_t, &vl, &vu, &il, &iu, &abstol, m, w, z_t, &ldz_t,
@@ -115,7 +115,7 @@ lapack_int LAPACKE_ssygvx_work( int matrix_layout, lapack_int itype, char jobz,
         }
         /* Transpose output matrices */
         LAPACKE_ssy_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
-        LAPACKE_sge_trans( LAPACK_COL_MAJOR, n, n, b_t, ldb_t, b, ldb );
+        LAPACKE_ssy_trans( LAPACK_COL_MAJOR, uplo, n, b_t, ldb_t, b, ldb );
         if( LAPACKE_lsame( jobz, 'v' ) ) {
             LAPACKE_sge_trans( LAPACK_COL_MAJOR, n, ncols_z, z_t, ldz_t, z,
                                ldz );
index 5ebfb99..4da4f56 100644 (file)
@@ -110,7 +110,7 @@ lapack_int LAPACKE_zhegvx_work( int matrix_layout, lapack_int itype, char jobz,
         }
         /* Transpose input matrices */
         LAPACKE_zhe_trans( matrix_layout, uplo, n, a, lda, a_t, lda_t );
-        LAPACKE_zge_trans( matrix_layout, n, n, b, ldb, b_t, ldb_t );
+        LAPACKE_zhe_trans( matrix_layout, uplo, n, b, ldb, b_t, ldb_t );
         /* Call LAPACK function and adjust info */
         LAPACK_zhegvx( &itype, &jobz, &range, &uplo, &n, a_t, &lda_t, b_t,
                        &ldb_t, &vl, &vu, &il, &iu, &abstol, m, w, z_t, &ldz_t,
@@ -120,7 +120,7 @@ lapack_int LAPACKE_zhegvx_work( int matrix_layout, lapack_int itype, char jobz,
         }
         /* Transpose output matrices */
         LAPACKE_zhe_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
-        LAPACKE_zge_trans( LAPACK_COL_MAJOR, n, n, b_t, ldb_t, b, ldb );
+        LAPACKE_zhe_trans( LAPACK_COL_MAJOR, uplo, n, b_t, ldb_t, b, ldb );
         if( LAPACKE_lsame( jobz, 'v' ) ) {
             LAPACKE_zge_trans( LAPACK_COL_MAJOR, n, ncols_z, z_t, ldz_t, z,
                                ldz );