Apply LAPACKE fix for eigenvector transposition in symmetric eigensolvers
from Reference-LAPACK PR 330
This commit is contained in:
parent
fbb894948c
commit
2ea2bd99c7
|
@ -78,7 +78,11 @@ lapack_int LAPACKE_cheev_work( int matrix_layout, char jobz, char uplo,
|
|||
info = info - 1;
|
||||
}
|
||||
/* Transpose output matrices */
|
||||
LAPACKE_che_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
if ( jobz == 'V') {
|
||||
LAPACKE_cge_trans( LAPACK_COL_MAJOR, n, n, a_t, lda_t, a, lda );
|
||||
} else {
|
||||
LAPACKE_che_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
}
|
||||
/* Release memory and exit */
|
||||
LAPACKE_free( a_t );
|
||||
exit_level_0:
|
||||
|
|
|
@ -79,7 +79,11 @@ lapack_int LAPACKE_cheevd_2stage_work( int matrix_layout, char jobz, char uplo,
|
|||
info = info - 1;
|
||||
}
|
||||
/* Transpose output matrices */
|
||||
LAPACKE_che_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
if ( jobz == 'V') {
|
||||
LAPACKE_cge_trans( LAPACK_COL_MAJOR, n, n, a_t, lda_t, a, lda );
|
||||
} else {
|
||||
LAPACKE_che_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
}
|
||||
/* Release memory and exit */
|
||||
LAPACKE_free( a_t );
|
||||
exit_level_0:
|
||||
|
|
|
@ -79,8 +79,11 @@ lapack_int LAPACKE_cheevd_work( int matrix_layout, char jobz, char uplo,
|
|||
info = info - 1;
|
||||
}
|
||||
/* Transpose output matrices */
|
||||
LAPACKE_che_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
|
||||
if ( jobz == 'V') {
|
||||
LAPACKE_cge_trans( LAPACK_COL_MAJOR, n, n, a_t, lda_t, a, lda );
|
||||
} else {
|
||||
LAPACKE_che_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
}
|
||||
/* Release memory and exit */
|
||||
LAPACKE_free( a_t );
|
||||
exit_level_0:
|
||||
|
|
|
@ -72,7 +72,11 @@ lapack_int LAPACKE_dsyev_work( int matrix_layout, char jobz, char uplo,
|
|||
info = info - 1;
|
||||
}
|
||||
/* Transpose output matrices */
|
||||
LAPACKE_dsy_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
if ( jobz == 'V') {
|
||||
LAPACKE_dge_trans( LAPACK_COL_MAJOR, n, n, a_t, lda_t, a, lda );
|
||||
} else {
|
||||
LAPACKE_dsy_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
}
|
||||
/* Release memory and exit */
|
||||
LAPACKE_free( a_t );
|
||||
exit_level_0:
|
||||
|
|
|
@ -76,7 +76,11 @@ lapack_int LAPACKE_dsyevd_2stage_work( int matrix_layout, char jobz, char uplo,
|
|||
info = info - 1;
|
||||
}
|
||||
/* Transpose output matrices */
|
||||
LAPACKE_dsy_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
if ( jobz == 'V') {
|
||||
LAPACKE_dge_trans( LAPACK_COL_MAJOR, n, n, a_t, lda_t, a, lda );
|
||||
} else {
|
||||
LAPACKE_dsy_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
}
|
||||
/* Release memory and exit */
|
||||
LAPACKE_free( a_t );
|
||||
exit_level_0:
|
||||
|
|
|
@ -76,7 +76,11 @@ lapack_int LAPACKE_dsyevd_work( int matrix_layout, char jobz, char uplo,
|
|||
info = info - 1;
|
||||
}
|
||||
/* Transpose output matrices */
|
||||
LAPACKE_dsy_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
if ( jobz == 'V') {
|
||||
LAPACKE_dge_trans( LAPACK_COL_MAJOR, n, n, a_t, lda_t, a, lda );
|
||||
} else {
|
||||
LAPACKE_dsy_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
}
|
||||
/* Release memory and exit */
|
||||
LAPACKE_free( a_t );
|
||||
exit_level_0:
|
||||
|
|
|
@ -72,7 +72,11 @@ lapack_int LAPACKE_ssyev_work( int matrix_layout, char jobz, char uplo,
|
|||
info = info - 1;
|
||||
}
|
||||
/* Transpose output matrices */
|
||||
LAPACKE_ssy_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
if ( jobz == 'V') {
|
||||
LAPACKE_sge_trans( LAPACK_COL_MAJOR, n, n, a_t, lda_t, a, lda );
|
||||
} else {
|
||||
LAPACKE_ssy_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
}
|
||||
/* Release memory and exit */
|
||||
LAPACKE_free( a_t );
|
||||
exit_level_0:
|
||||
|
|
|
@ -76,7 +76,11 @@ lapack_int LAPACKE_ssyevd_2stage_work( int matrix_layout, char jobz, char uplo,
|
|||
info = info - 1;
|
||||
}
|
||||
/* Transpose output matrices */
|
||||
LAPACKE_ssy_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
if ( jobz == 'V') {
|
||||
LAPACKE_sge_trans( LAPACK_COL_MAJOR, n, n, a_t, lda_t, a, lda );
|
||||
} else {
|
||||
LAPACKE_ssy_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
}
|
||||
/* Release memory and exit */
|
||||
LAPACKE_free( a_t );
|
||||
exit_level_0:
|
||||
|
|
|
@ -76,7 +76,11 @@ lapack_int LAPACKE_ssyevd_work( int matrix_layout, char jobz, char uplo,
|
|||
info = info - 1;
|
||||
}
|
||||
/* Transpose output matrices */
|
||||
LAPACKE_ssy_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
if ( jobz == 'V') {
|
||||
LAPACKE_sge_trans( LAPACK_COL_MAJOR, n, n, a_t, lda_t, a, lda );
|
||||
} else {
|
||||
LAPACKE_ssy_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
}
|
||||
/* Release memory and exit */
|
||||
LAPACKE_free( a_t );
|
||||
exit_level_0:
|
||||
|
|
|
@ -78,7 +78,11 @@ lapack_int LAPACKE_zheev_work( int matrix_layout, char jobz, char uplo,
|
|||
info = info - 1;
|
||||
}
|
||||
/* Transpose output matrices */
|
||||
LAPACKE_zhe_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
if ( jobz == 'V') {
|
||||
LAPACKE_zge_trans( LAPACK_COL_MAJOR, n, n, a_t, lda_t, a, lda );
|
||||
} else {
|
||||
LAPACKE_zhe_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
}
|
||||
/* Release memory and exit */
|
||||
LAPACKE_free( a_t );
|
||||
exit_level_0:
|
||||
|
|
|
@ -79,7 +79,11 @@ lapack_int LAPACKE_zheevd_2stage_work( int matrix_layout, char jobz, char uplo,
|
|||
info = info - 1;
|
||||
}
|
||||
/* Transpose output matrices */
|
||||
LAPACKE_zhe_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
if ( jobz == 'V') {
|
||||
LAPACKE_zge_trans( LAPACK_COL_MAJOR, n, n, a_t, lda_t, a, lda );
|
||||
} else {
|
||||
LAPACKE_zhe_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
}
|
||||
/* Release memory and exit */
|
||||
LAPACKE_free( a_t );
|
||||
exit_level_0:
|
||||
|
|
|
@ -79,7 +79,11 @@ lapack_int LAPACKE_zheevd_work( int matrix_layout, char jobz, char uplo,
|
|||
info = info - 1;
|
||||
}
|
||||
/* Transpose output matrices */
|
||||
LAPACKE_zhe_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
if ( jobz == 'V') {
|
||||
LAPACKE_zge_trans( LAPACK_COL_MAJOR, n, n, a_t, lda_t, a, lda );
|
||||
} else {
|
||||
LAPACKE_zhe_trans( LAPACK_COL_MAJOR, uplo, n, a_t, lda_t, a, lda );
|
||||
}
|
||||
/* Release memory and exit */
|
||||
LAPACKE_free( a_t );
|
||||
exit_level_0:
|
||||
|
|
Loading…
Reference in New Issue