LAPACKE: fix incorrect value of lda_t in lapacke_?laswp_worktags/v0.2.20^2
@@ -46,7 +46,11 @@ lapack_int LAPACKE_claswp_work( int matrix_layout, lapack_int n, | |||||
info = info - 1; | info = info - 1; | ||||
} | } | ||||
} else if( matrix_layout == LAPACK_ROW_MAJOR ) { | } else if( matrix_layout == LAPACK_ROW_MAJOR ) { | ||||
lapack_int lda_t = MAX(1,lda); | |||||
lapack_int lda_t = MAX(1,k2); | |||||
lapack_int i; | |||||
for( i = k1; i <= k2; i++ ) { | |||||
lda_t = MAX( lda_t, ipiv[k1 + ( i - k1 ) * ABS( incx ) - 1] ); | |||||
} | |||||
lapack_complex_float* a_t = NULL; | lapack_complex_float* a_t = NULL; | ||||
/* Check leading dimension(s) */ | /* Check leading dimension(s) */ | ||||
if( lda < n ) { | if( lda < n ) { | ||||
@@ -62,12 +66,12 @@ lapack_int LAPACKE_claswp_work( int matrix_layout, lapack_int n, | |||||
goto exit_level_0; | goto exit_level_0; | ||||
} | } | ||||
/* Transpose input matrices */ | /* Transpose input matrices */ | ||||
LAPACKE_cge_trans( matrix_layout, lda, n, a, lda, a_t, lda_t ); | |||||
LAPACKE_cge_trans( matrix_layout, lda_t, n, a, lda, a_t, lda_t ); | |||||
/* Call LAPACK function and adjust info */ | /* Call LAPACK function and adjust info */ | ||||
LAPACK_claswp( &n, a_t, &lda_t, &k1, &k2, ipiv, &incx ); | LAPACK_claswp( &n, a_t, &lda_t, &k1, &k2, ipiv, &incx ); | ||||
info = 0; /* LAPACK call is ok! */ | info = 0; /* LAPACK call is ok! */ | ||||
/* Transpose output matrices */ | /* Transpose output matrices */ | ||||
LAPACKE_cge_trans( LAPACK_COL_MAJOR, lda, n, a_t, lda_t, a, lda ); | |||||
LAPACKE_cge_trans( LAPACK_COL_MAJOR, lda_t, n, a_t, lda_t, a, lda ); | |||||
/* Release memory and exit */ | /* Release memory and exit */ | ||||
LAPACKE_free( a_t ); | LAPACKE_free( a_t ); | ||||
exit_level_0: | exit_level_0: | ||||
@@ -45,7 +45,11 @@ lapack_int LAPACKE_dlaswp_work( int matrix_layout, lapack_int n, double* a, | |||||
info = info - 1; | info = info - 1; | ||||
} | } | ||||
} else if( matrix_layout == LAPACK_ROW_MAJOR ) { | } else if( matrix_layout == LAPACK_ROW_MAJOR ) { | ||||
lapack_int lda_t = MAX(1,lda); | |||||
lapack_int lda_t = MAX(1,k2); | |||||
lapack_int i; | |||||
for( i = k1; i <= k2; i++ ) { | |||||
lda_t = MAX( lda_t, ipiv[k1 + ( i - k1 ) * ABS( incx ) - 1] ); | |||||
} | |||||
double* a_t = NULL; | double* a_t = NULL; | ||||
/* Check leading dimension(s) */ | /* Check leading dimension(s) */ | ||||
if( lda < n ) { | if( lda < n ) { | ||||
@@ -60,12 +64,12 @@ lapack_int LAPACKE_dlaswp_work( int matrix_layout, lapack_int n, double* a, | |||||
goto exit_level_0; | goto exit_level_0; | ||||
} | } | ||||
/* Transpose input matrices */ | /* Transpose input matrices */ | ||||
LAPACKE_dge_trans( matrix_layout, lda, n, a, lda, a_t, lda_t ); | |||||
LAPACKE_dge_trans( matrix_layout, lda_t, n, a, lda, a_t, lda_t ); | |||||
/* Call LAPACK function and adjust info */ | /* Call LAPACK function and adjust info */ | ||||
LAPACK_dlaswp( &n, a_t, &lda_t, &k1, &k2, ipiv, &incx ); | LAPACK_dlaswp( &n, a_t, &lda_t, &k1, &k2, ipiv, &incx ); | ||||
info = 0; /* LAPACK call is ok! */ | info = 0; /* LAPACK call is ok! */ | ||||
/* Transpose output matrices */ | /* Transpose output matrices */ | ||||
LAPACKE_dge_trans( LAPACK_COL_MAJOR, lda, n, a_t, lda_t, a, lda ); | |||||
LAPACKE_dge_trans( LAPACK_COL_MAJOR, lda_t, n, a_t, lda_t, a, lda ); | |||||
/* Release memory and exit */ | /* Release memory and exit */ | ||||
LAPACKE_free( a_t ); | LAPACKE_free( a_t ); | ||||
exit_level_0: | exit_level_0: | ||||
@@ -45,7 +45,11 @@ lapack_int LAPACKE_slaswp_work( int matrix_layout, lapack_int n, float* a, | |||||
info = info - 1; | info = info - 1; | ||||
} | } | ||||
} else if( matrix_layout == LAPACK_ROW_MAJOR ) { | } else if( matrix_layout == LAPACK_ROW_MAJOR ) { | ||||
lapack_int lda_t = MAX(1,lda); | |||||
lapack_int lda_t = MAX(1,k2); | |||||
lapack_int i; | |||||
for( i = k1; i <= k2; i++ ) { | |||||
lda_t = MAX( lda_t, ipiv[k1 + ( i - k1 ) * ABS( incx ) - 1] ); | |||||
} | |||||
float* a_t = NULL; | float* a_t = NULL; | ||||
/* Check leading dimension(s) */ | /* Check leading dimension(s) */ | ||||
if( lda < n ) { | if( lda < n ) { | ||||
@@ -60,12 +64,12 @@ lapack_int LAPACKE_slaswp_work( int matrix_layout, lapack_int n, float* a, | |||||
goto exit_level_0; | goto exit_level_0; | ||||
} | } | ||||
/* Transpose input matrices */ | /* Transpose input matrices */ | ||||
LAPACKE_sge_trans( matrix_layout, lda, n, a, lda, a_t, lda_t ); | |||||
LAPACKE_sge_trans( matrix_layout, lda_t, n, a, lda, a_t, lda_t ); | |||||
/* Call LAPACK function and adjust info */ | /* Call LAPACK function and adjust info */ | ||||
LAPACK_slaswp( &n, a_t, &lda_t, &k1, &k2, ipiv, &incx ); | LAPACK_slaswp( &n, a_t, &lda_t, &k1, &k2, ipiv, &incx ); | ||||
info = 0; /* LAPACK call is ok! */ | info = 0; /* LAPACK call is ok! */ | ||||
/* Transpose output matrices */ | /* Transpose output matrices */ | ||||
LAPACKE_sge_trans( LAPACK_COL_MAJOR, lda, n, a_t, lda_t, a, lda ); | |||||
LAPACKE_sge_trans( LAPACK_COL_MAJOR, lda_t, n, a_t, lda_t, a, lda ); | |||||
/* Release memory and exit */ | /* Release memory and exit */ | ||||
LAPACKE_free( a_t ); | LAPACKE_free( a_t ); | ||||
exit_level_0: | exit_level_0: | ||||
@@ -46,7 +46,11 @@ lapack_int LAPACKE_zlaswp_work( int matrix_layout, lapack_int n, | |||||
info = info - 1; | info = info - 1; | ||||
} | } | ||||
} else if( matrix_layout == LAPACK_ROW_MAJOR ) { | } else if( matrix_layout == LAPACK_ROW_MAJOR ) { | ||||
lapack_int lda_t = MAX(1,lda); | |||||
lapack_int lda_t = MAX(1,k2); | |||||
lapack_int i; | |||||
for( i = k1; i <= k2; i++ ) { | |||||
lda_t = MAX( lda_t, ipiv[k1 + ( i - k1 ) * ABS( incx ) - 1] ); | |||||
} | |||||
lapack_complex_double* a_t = NULL; | lapack_complex_double* a_t = NULL; | ||||
/* Check leading dimension(s) */ | /* Check leading dimension(s) */ | ||||
if( lda < n ) { | if( lda < n ) { | ||||
@@ -62,12 +66,12 @@ lapack_int LAPACKE_zlaswp_work( int matrix_layout, lapack_int n, | |||||
goto exit_level_0; | goto exit_level_0; | ||||
} | } | ||||
/* Transpose input matrices */ | /* Transpose input matrices */ | ||||
LAPACKE_zge_trans( matrix_layout, lda, n, a, lda, a_t, lda_t ); | |||||
LAPACKE_zge_trans( matrix_layout, lda_t, n, a, lda, a_t, lda_t ); | |||||
/* Call LAPACK function and adjust info */ | /* Call LAPACK function and adjust info */ | ||||
LAPACK_zlaswp( &n, a_t, &lda_t, &k1, &k2, ipiv, &incx ); | LAPACK_zlaswp( &n, a_t, &lda_t, &k1, &k2, ipiv, &incx ); | ||||
info = 0; /* LAPACK call is ok! */ | info = 0; /* LAPACK call is ok! */ | ||||
/* Transpose output matrices */ | /* Transpose output matrices */ | ||||
LAPACKE_zge_trans( LAPACK_COL_MAJOR, lda, n, a_t, lda_t, a, lda ); | |||||
LAPACKE_zge_trans( LAPACK_COL_MAJOR, lda_t, n, a_t, lda_t, a, lda ); | |||||
/* Release memory and exit */ | /* Release memory and exit */ | ||||
LAPACKE_free( a_t ); | LAPACKE_free( a_t ); | ||||
exit_level_0: | exit_level_0: | ||||