Merge pull request #1175 from martin-frbg/lapack_143
Fix workspace computation in LAPACKE ?tpmqrt
This commit is contained in:
commit
bba6676803
|
@ -43,6 +43,7 @@ lapack_int LAPACKE_ctpmqrt( int matrix_layout, char side, char trans,
|
||||||
{
|
{
|
||||||
lapack_int ncols_a, nrows_a;
|
lapack_int ncols_a, nrows_a;
|
||||||
lapack_int nrows_v;
|
lapack_int nrows_v;
|
||||||
|
lapack_int lwork;
|
||||||
lapack_int info = 0;
|
lapack_int info = 0;
|
||||||
lapack_complex_float* work = NULL;
|
lapack_complex_float* work = NULL;
|
||||||
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
|
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
|
||||||
|
@ -71,8 +72,10 @@ lapack_int LAPACKE_ctpmqrt( int matrix_layout, char side, char trans,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
/* Allocate memory for working array(s) */
|
/* Allocate memory for working array(s) */
|
||||||
|
lwork = LAPACKE_lsame( side, 'L' ) ? MAX(1,nb) * MAX(1,n) :
|
||||||
|
( LAPACKE_lsame( side, 'R' ) ? MAX(1,m) * MAX(1,nb) : 0 );
|
||||||
work = (lapack_complex_float*)
|
work = (lapack_complex_float*)
|
||||||
LAPACKE_malloc( sizeof(lapack_complex_float) * MAX(1,m) * MAX(1,nb) );
|
LAPACKE_malloc( sizeof(lapack_complex_float) * lwork );
|
||||||
if( work == NULL ) {
|
if( work == NULL ) {
|
||||||
info = LAPACK_WORK_MEMORY_ERROR;
|
info = LAPACK_WORK_MEMORY_ERROR;
|
||||||
goto exit_level_0;
|
goto exit_level_0;
|
||||||
|
|
|
@ -42,6 +42,7 @@ lapack_int LAPACKE_dtpmqrt( int matrix_layout, char side, char trans,
|
||||||
{
|
{
|
||||||
lapack_int ncols_a, nrows_a;
|
lapack_int ncols_a, nrows_a;
|
||||||
lapack_int nrows_v;
|
lapack_int nrows_v;
|
||||||
|
lapack_int lwork;
|
||||||
lapack_int info = 0;
|
lapack_int info = 0;
|
||||||
double* work = NULL;
|
double* work = NULL;
|
||||||
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
|
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
|
||||||
|
@ -70,7 +71,9 @@ lapack_int LAPACKE_dtpmqrt( int matrix_layout, char side, char trans,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
/* Allocate memory for working array(s) */
|
/* Allocate memory for working array(s) */
|
||||||
work = (double*)LAPACKE_malloc( sizeof(double) * MAX(1,m) * MAX(1,nb) );
|
lwork = LAPACKE_lsame( side, 'L' ) ? MAX(1,nb) * MAX(1,n) :
|
||||||
|
( LAPACKE_lsame( side, 'R' ) ? MAX(1,m) * MAX(1,nb) : 0 );
|
||||||
|
work = (double*)LAPACKE_malloc( sizeof(double) * lwork );
|
||||||
if( work == NULL ) {
|
if( work == NULL ) {
|
||||||
info = LAPACK_WORK_MEMORY_ERROR;
|
info = LAPACK_WORK_MEMORY_ERROR;
|
||||||
goto exit_level_0;
|
goto exit_level_0;
|
||||||
|
|
|
@ -41,6 +41,7 @@ lapack_int LAPACKE_stpmqrt( int matrix_layout, char side, char trans,
|
||||||
{
|
{
|
||||||
lapack_int ncols_a, nrows_a;
|
lapack_int ncols_a, nrows_a;
|
||||||
lapack_int nrows_v;
|
lapack_int nrows_v;
|
||||||
|
lapack_int lwork;
|
||||||
lapack_int info = 0;
|
lapack_int info = 0;
|
||||||
float* work = NULL;
|
float* work = NULL;
|
||||||
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
|
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
|
||||||
|
@ -69,7 +70,9 @@ lapack_int LAPACKE_stpmqrt( int matrix_layout, char side, char trans,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
/* Allocate memory for working array(s) */
|
/* Allocate memory for working array(s) */
|
||||||
work = (float*)LAPACKE_malloc( sizeof(float) * MAX(1,m) * MAX(1,nb) );
|
lwork = LAPACKE_lsame( side, 'L' ) ? MAX(1,nb) * MAX(1,n) :
|
||||||
|
( LAPACKE_lsame( side, 'R' ) ? MAX(1,m) * MAX(1,nb) : 0 );
|
||||||
|
work = (float*)LAPACKE_malloc( sizeof(float) * lwork );
|
||||||
if( work == NULL ) {
|
if( work == NULL ) {
|
||||||
info = LAPACK_WORK_MEMORY_ERROR;
|
info = LAPACK_WORK_MEMORY_ERROR;
|
||||||
goto exit_level_0;
|
goto exit_level_0;
|
||||||
|
|
|
@ -43,6 +43,7 @@ lapack_int LAPACKE_ztpmqrt( int matrix_layout, char side, char trans,
|
||||||
{
|
{
|
||||||
lapack_int ncols_a, nrows_a;
|
lapack_int ncols_a, nrows_a;
|
||||||
lapack_int nrows_v;
|
lapack_int nrows_v;
|
||||||
|
lapack_int lwork;
|
||||||
lapack_int info = 0;
|
lapack_int info = 0;
|
||||||
lapack_complex_double* work = NULL;
|
lapack_complex_double* work = NULL;
|
||||||
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
|
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
|
||||||
|
@ -71,8 +72,10 @@ lapack_int LAPACKE_ztpmqrt( int matrix_layout, char side, char trans,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
/* Allocate memory for working array(s) */
|
/* Allocate memory for working array(s) */
|
||||||
|
lwork = LAPACKE_lsame( side, 'L' ) ? MAX(1,nb) * MAX(1,n) :
|
||||||
|
( LAPACKE_lsame( side, 'R' ) ? MAX(1,m) * MAX(1,nb) : 0 );
|
||||||
work = (lapack_complex_double*)
|
work = (lapack_complex_double*)
|
||||||
LAPACKE_malloc( sizeof(lapack_complex_double) * MAX(1,m) * MAX(1,nb) );
|
LAPACKE_malloc( sizeof(lapack_complex_double) * lwork );
|
||||||
if( work == NULL ) {
|
if( work == NULL ) {
|
||||||
info = LAPACK_WORK_MEMORY_ERROR;
|
info = LAPACK_WORK_MEMORY_ERROR;
|
||||||
goto exit_level_0;
|
goto exit_level_0;
|
||||||
|
|
Loading…
Reference in New Issue