|
|
@@ -46,7 +46,11 @@ lapack_int LAPACKE_zlaswp_work( int matrix_layout, lapack_int n, |
|
|
|
info = info - 1; |
|
|
|
} |
|
|
|
} 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; |
|
|
|
/* Check leading dimension(s) */ |
|
|
|
if( lda < n ) { |
|
|
@@ -62,12 +66,12 @@ lapack_int LAPACKE_zlaswp_work( int matrix_layout, lapack_int n, |
|
|
|
goto exit_level_0; |
|
|
|
} |
|
|
|
/* 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 */ |
|
|
|
LAPACK_zlaswp( &n, a_t, &lda_t, &k1, &k2, ipiv, &incx ); |
|
|
|
info = 0; /* LAPACK call is ok! */ |
|
|
|
/* 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 */ |
|
|
|
LAPACKE_free( a_t ); |
|
|
|
exit_level_0: |
|
|
|