LAPACKE: fix incorrect value of lda_t in lapacke_?laswp_work
Fixed in Reference LAPACK in commit:
07e1fbd897
This commit is contained in:
parent
60eea75409
commit
4c2b713ce5
|
@ -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:
|
||||||
|
|
Loading…
Reference in New Issue