diff --git a/LAPACKE/include/lapack.h b/LAPACKE/include/lapack.h index 0b637afb23..a061a0b621 100644 --- a/LAPACKE/include/lapack.h +++ b/LAPACKE/include/lapack.h @@ -3319,68 +3319,107 @@ void LAPACK_zgesdd_base( #define LAPACK_zgesdd(...) LAPACK_zgesdd_base(__VA_ARGS__) #endif -#define LAPACK_cgedmd LAPACK_GLOBAL(cgedmd,CGEDMD) -void LAPACK_cgedmd( - char const* jobs, char const* jobz, char const* jobf, +#define LAPACK_cgedmd_base LAPACK_GLOBAL(cgedmd,CGEDMD) +void LAPACK_cgedmd_base( + char const* jobs, char const* jobz, char const* jobr, char const* jobf, lapack_int const* whtsvd, lapack_int const* m, lapack_int const* n, lapack_complex_float* x, lapack_int const* ldx, - lapack_complex_float* y, lapack_int const* ldy, lapack_int const* k, - lapack_complex_float* reig, lapack_complex_float* imeig, - lapack_complex_float* z, lapack_int const* ldz, lapack_complex_float* res, + lapack_complex_float* y, lapack_int const* ldy, lapack_int const* nrnk, + const float* tol, lapack_int* k, lapack_complex_float* eigs, + lapack_complex_float* z, lapack_int const* ldz, float* res, lapack_complex_float* b, lapack_int const* ldb, lapack_complex_float* w, lapack_int const* ldw, lapack_complex_float* s, lapack_int const* lds, - lapack_complex_float* work, lapack_int const* lwork, + lapack_complex_float* zwork, lapack_int const* lzwork, + float* work, lapack_int const* lwork, lapack_int* iwork, lapack_int const* liwork, - lapack_int* info ); + lapack_int* info +#ifdef LAPACK_FORTRAN_STRLEN_END + , size_t, size_t, size_t, size_t +#endif +); +#ifdef LAPACK_FORTRAN_STRLEN_END + #define LAPACK_cgedmd(...) LAPACK_cgedmd_base(__VA_ARGS__, 1, 1, 1, 1) +#else + #define LAPACK_cgedmd(...) LAPACK_cgedmd_base(__VA_ARGS__) +#endif + -#define LAPACK_dgedmd LAPACK_GLOBAL(dgedmd,DGEDMD) -void LAPACK_dgedmd( - char const* jobs, char const* jobz, char const* jobf, +#define LAPACK_dgedmd_base LAPACK_GLOBAL(dgedmd,DGEDMD) +void LAPACK_dgedmd_base( + char const* jobs, char const* jobz, char const* jobr, char const* jobf, lapack_int const* whtsvd, lapack_int const* m, lapack_int const* n, double* x, lapack_int const* ldx, - double* y, lapack_int const* ldy, lapack_int const* k, - double* reig, double* imeig, + double* y, lapack_int const* ldy, lapack_int const* nrnk, + const double* tol, lapack_int* k, double* reig, double* imeig, double* z, lapack_int const* ldz, double* res, double* b, lapack_int const* ldb, double* w, lapack_int const* ldw, double* s, lapack_int const* lds, double* work, lapack_int const* lwork, lapack_int* iwork, lapack_int const* liwork, - lapack_int* info ); + lapack_int* info +#ifdef LAPACK_FORTRAN_STRLEN_END + , size_t, size_t, size_t, size_t +#endif +); +#ifdef LAPACK_FORTRAN_STRLEN_END + #define LAPACK_dgedmd(...) LAPACK_dgedmd_base(__VA_ARGS__, 1, 1, 1, 1) +#else + #define LAPACK_dgedmd(...) LAPACK_dgedmd_base(__VA_ARGS__) +#endif -#define LAPACK_sgedmd LAPACK_GLOBAL(sgedmd,SGEDMD) -void LAPACK_sgedmd( - char const* jobs, char const* jobz, char const* jobf, +#define LAPACK_sgedmd_base LAPACK_GLOBAL(sgedmd,SGEDMD) +void LAPACK_sgedmd_base( + char const* jobs, char const* jobz, char const* jobr, char const* jobf, lapack_int const* whtsvd, lapack_int const* m, lapack_int const* n, float* x, lapack_int const* ldx, - float* y, lapack_int const* ldy, lapack_int const* k, - float* reig, float* imeig, + float* y, lapack_int const* ldy, lapack_int const* nrnk, + const float* tol, lapack_int* k, float* reig, float *imeig, float* z, lapack_int const* ldz, float* res, float* b, lapack_int const* ldb, float* w, lapack_int const* ldw, float* s, lapack_int const* lds, float* work, lapack_int const* lwork, lapack_int* iwork, lapack_int const* liwork, - lapack_int* info ); + lapack_int* info +#ifdef LAPACK_FORTRAN_STRLEN_END + , size_t, size_t, size_t, size_t +#endif +); +#ifdef LAPACK_FORTRAN_STRLEN_END + #define LAPACK_sgedmd(...) LAPACK_sgedmd_base(__VA_ARGS__, 1, 1, 1, 1) +#else + #define LAPACK_sgedmd(...) LAPACK_sgedmd_base(__VA_ARGS__) +#endif -#define LAPACK_zgedmd LAPACK_GLOBAL(zgedmd,ZGEDMD) -void LAPACK_zgedmd( - char const* jobs, char const* jobz, char const* jobf, +#define LAPACK_zgedmd_base LAPACK_GLOBAL(zgedmd,ZGEDMD) +void LAPACK_zgedmd_base( + char const* jobs, char const* jobz, char const* jobr, char const* jobf, lapack_int const* whtsvd, lapack_int const* m, lapack_int const* n, lapack_complex_double* x, lapack_int const* ldx, - lapack_complex_double* y, lapack_int const* ldy, lapack_int const* k, - lapack_complex_double* reig, lapack_complex_double* imeig, - lapack_complex_double* z, lapack_int const* ldz, lapack_complex_double* res, + lapack_complex_double* y, lapack_int const* ldy, lapack_int const* nrnk, + const double* tol, lapack_int *k, lapack_complex_double* eigs, + lapack_complex_double* z, lapack_int const* ldz, double* res, lapack_complex_double* b, lapack_int const* ldb, lapack_complex_double* w, lapack_int const* ldw, lapack_complex_double* s, lapack_int const* lds, - lapack_complex_double* work, lapack_int const* lwork, + lapack_complex_double* zwork, lapack_int const* lzwork, + double* rwork, lapack_int const* lrwork, lapack_int* iwork, lapack_int const* liwork, - lapack_int* info ); + lapack_int* info +#ifdef LAPACK_FORTRAN_STRLEN_END + , size_t, size_t, size_t, size_t +#endif +); +#ifdef LAPACK_FORTRAN_STRLEN_END + #define LAPACK_zgedmd(...) LAPACK_zgedmd_base(__VA_ARGS__, 1, 1, 1, 1) +#else + #define LAPACK_zgedmd(...) LAPACK_zgedmd_base(__VA_ARGS__) +#endif -#define LAPACK_cgedmdq LAPACK_GLOBAL(cgedmdq,CGEDMDQ) -void LAPACK_cgedmdq( +#define LAPACK_cgedmdq_base LAPACK_GLOBAL(cgedmdq,CGEDMDQ) +void LAPACK_cgedmdq_base( char const* jobs, char const* jobz, char const* jobr, char const* jobq, char const* jobt, char const* jobf, lapack_int const* whtsvd, lapack_int const* m, lapack_int const* n, @@ -3388,35 +3427,54 @@ void LAPACK_cgedmdq( lapack_complex_float* x, lapack_int const* ldx, lapack_complex_float* y, lapack_int const* ldy, lapack_int const* nrnk, float const* tol, lapack_int const* k, - lapack_complex_float* reig, lapack_complex_float* imeig, - lapack_complex_float* z, lapack_int const* ldz, lapack_complex_float* res, + lapack_complex_float* eigs, + lapack_complex_float* z, lapack_int const* ldz, float* res, lapack_complex_float* b, lapack_int const* ldb, lapack_complex_float* v, lapack_int const* ldv, lapack_complex_float* s, lapack_int const* lds, - lapack_complex_float* work, lapack_int const* lwork, + lapack_complex_float* zwork, lapack_int const* lzwork, + float* work, lapack_int const* lwork, lapack_int* iwork, lapack_int const* liwork, - lapack_int* info ); + lapack_int* info +#ifdef LAPACK_FORTRAN_STRLEN_END + , size_t, size_t, size_t, size_t, size_t, size_t +#endif +); +#ifdef LAPACK_FORTRAN_STRLEN_END + #define LAPACK_cgedmdq(...) LAPACK_cgedmdq_base(__VA_ARGS__, 1, 1, 1, 1, 1, 1) +#else + #define LAPACK_cgedmdq(...) LAPACK_cgedmdq_base(__VA_ARGS__) +#endif -#define LAPACK_dgedmdq LAPACK_GLOBAL(dgedmdq,DGEDMDQ) -void LAPACK_dgedmdq( +#define LAPACK_dgedmdq_base LAPACK_GLOBAL(dgedmdq,DGEDMDQ) +void LAPACK_dgedmdq_base( char const* jobs, char const* jobz, char const* jobr, char const* jobq, char const* jobt, char const* jobf, lapack_int const* whtsvd, lapack_int const* m, lapack_int const* n, double* f, lapack_int const* ldf, double* x, lapack_int const* ldx, double* y, lapack_int const* ldy, lapack_int const* nrnk, - double const* tol, lapack_int const* k, - double* reig, double* imeig, + double const* tol, lapack_int* k, + double* reig, double *imeig, double* z, lapack_int const* ldz, double* res, double* b, lapack_int const* ldb, double* v, lapack_int const* ldv, double* s, lapack_int const* lds, double* work, lapack_int const* lwork, lapack_int* iwork, lapack_int const* liwork, - lapack_int* info ); + lapack_int* info +#ifdef LAPACK_FORTRAN_STRLEN_END + , size_t, size_t, size_t, size_t, size_t, size_t +#endif +); +#ifdef LAPACK_FORTRAN_STRLEN_END + #define LAPACK_dgedmdq(...) LAPACK_dgedmdq_base(__VA_ARGS__, 1, 1, 1, 1, 1, 1) +#else + #define LAPACK_dgedmdq(...) LAPACK_dgedmdq_base(__VA_ARGS__) +#endif -#define LAPACK_sgedmdq LAPACK_GLOBAL(sgedmdq,SGEDMDQ) -void LAPACK_sgedmdq( +#define LAPACK_sgedmdq_base LAPACK_GLOBAL(sgedmdq,SGEDMDQ) +void LAPACK_sgedmdq_base( char const* jobs, char const* jobz, char const* jobr, char const* jobq, char const* jobt, char const* jobf, lapack_int const* whtsvd, lapack_int const* m, lapack_int const* n, @@ -3431,10 +3489,19 @@ void LAPACK_sgedmdq( float* s, lapack_int const* lds, float* work, lapack_int const* lwork, lapack_int* iwork, lapack_int const* liwork, - lapack_int* info ); + lapack_int* info +#ifdef LAPACK_FORTRAN_STRLEN_END + , size_t, size_t, size_t, size_t, size_t, size_t +#endif +); +#ifdef LAPACK_FORTRAN_STRLEN_END + #define LAPACK_sgedmdq(...) LAPACK_sgedmdq_base(__VA_ARGS__, 1, 1, 1, 1, 1, 1) +#else + #define LAPACK_sgedmdq(...) LAPACK_sgedmdq_base(__VA_ARGS__) +#endif -#define LAPACK_zgedmdq LAPACK_GLOBAL(zgedmdq,ZGEDMDQ) -void LAPACK_zgedmdq( +#define LAPACK_zgedmdq_base LAPACK_GLOBAL(zgedmdq,ZGEDMDQ) +void LAPACK_zgedmdq_base( char const* jobs, char const* jobz, char const* jobr, char const* jobq, char const* jobt, char const* jobf, lapack_int const* whtsvd, lapack_int const* m, lapack_int const* n, @@ -3442,14 +3509,25 @@ void LAPACK_zgedmdq( lapack_complex_double* x, lapack_int const* ldx, lapack_complex_double* y, lapack_int const* ldy, lapack_int const* nrnk, double const* tol, lapack_int const* k, - lapack_complex_double* reig, lapack_complex_double* imeig, - lapack_complex_double* z, lapack_int const* ldz, lapack_complex_double* res, + lapack_complex_double* eigs, + lapack_complex_double* z, lapack_int const* ldz, double* res, lapack_complex_double* b, lapack_int const* ldb, lapack_complex_double* v, lapack_int const* ldv, lapack_complex_double* s, lapack_int const* lds, - lapack_complex_double* work, lapack_int const* lwork, + lapack_complex_double* zwork, lapack_int const* lzwork, + double* work, lapack_int const* lwork, lapack_int* iwork, lapack_int const* liwork, - lapack_int* info ); + lapack_int* info + +#ifdef LAPACK_FORTRAN_STRLEN_END + , size_t, size_t, size_t, size_t, size_t, size_t +#endif +); +#ifdef LAPACK_FORTRAN_STRLEN_END + #define LAPACK_zgedmdq(...) LAPACK_zgedmdq_base(__VA_ARGS__, 1, 1, 1, 1, 1, 1) +#else + #define LAPACK_zgedmdq(...) LAPACK_zgedmdq_base(__VA_ARGS__) +#endif #define LAPACK_cgesv LAPACK_GLOBAL(cgesv,CGESV) void LAPACK_cgesv( diff --git a/LAPACKE/include/lapacke.h b/LAPACKE/include/lapacke.h index 9a9ab47538..377e2a6bbc 100644 --- a/LAPACKE/include/lapacke.h +++ b/LAPACKE/include/lapacke.h @@ -5713,55 +5713,59 @@ lapack_int LAPACKE_zgesdd_work( int matrix_layout, char jobz, lapack_int m, double* rwork, lapack_int* iwork ); lapack_int LAPACKE_sgedmd_work( int matrix_layout, char jobs, char jobz, - char jobf, lapack_int whtsvd, lapack_int m, - lapack_int n, float* x, lapack_int ldx, - float* y, lapack_int ldy, lapack_int k, - float* reig, float* imeig, float* z, - lapack_int ldz, float* res, float* b, - lapack_int ldb, float* w, lapack_int ldw, - float* s, lapack_int lds, float* work, - lapack_int lwork, lapack_int* iwork, - lapack_int liwork ); + char jobr, char jobf, lapack_int whtsvd, + lapack_int m, lapack_int n, float* x, + lapack_int ldx, float* y, lapack_int ldy, + lapack_int nrnk, float* tol, lapack_int k, + float* reig, float* imeig, + float* z, lapack_int ldz, float* res, + float* b, lapack_int ldb, float* w, + lapack_int ldw, float* s, lapack_int lds, + float* work, lapack_int lwork, + lapack_int* iwork, lapack_int liwork ); lapack_int LAPACKE_dgedmd_work( int matrix_layout, char jobs, char jobz, - char jobf, lapack_int whtsvd, lapack_int m, - lapack_int n, double* x, lapack_int ldx, - double* y, lapack_int ldy, lapack_int k, - double* reig, double* imeig, double* z, - lapack_int ldz, double* res, double* b, - lapack_int ldb, double* w, lapack_int ldw, - double* s, lapack_int lds, double* work, - lapack_int lwork, lapack_int* iwork, - lapack_int liwork ); + char jobr, char jobf, lapack_int whtsvd, + lapack_int m, lapack_int n, double* x, + lapack_int ldx, double* y, lapack_int ldy, + lapack_int nrnk, double* tol, lapack_int k, + double* reig, double *imeig, + double* z, lapack_int ldz, double* res, + double* b, lapack_int ldb, double* w, + lapack_int ldw, double* s, lapack_int lds, + double* work, lapack_int lwork, + lapack_int* iwork, lapack_int liwork ); lapack_int LAPACKE_cgedmd_work( int matrix_layout, char jobs, char jobz, - char jobf, lapack_int whtsvd, lapack_int m, - lapack_int n, lapack_complex_float* x, - lapack_int ldx, lapack_complex_float* y, - lapack_int ldy, lapack_int k, - lapack_complex_float* reig, - lapack_complex_float* imeig, + char jobr, char jobf, lapack_int whtsvd, + lapack_int m, lapack_int n, + lapack_complex_float* x, lapack_int ldx, + lapack_complex_float* y, lapack_int ldy, + lapack_int nrnk, float* tol, lapack_int k, + lapack_complex_float* eigs, lapack_complex_float* z, lapack_int ldz, - lapack_complex_float* res, + float* res, lapack_complex_float* b, lapack_int ldb, lapack_complex_float* w, lapack_int ldw, lapack_complex_float* s, lapack_int lds, - lapack_complex_float* work, lapack_int lwork, + lapack_complex_float* zwork, lapack_int lzwork, + float* work, lapack_int lwork, lapack_int* iwork, lapack_int liwork ); lapack_int LAPACKE_zgedmd_work( int matrix_layout, char jobs, char jobz, - char jobf, lapack_int whtsvd, lapack_int m, - lapack_int n, lapack_complex_double* x, - lapack_int ldx, lapack_complex_double* y, - lapack_int ldy, lapack_int k, - lapack_complex_double* reig, - lapack_complex_double* imeig, + char jobr, char jobf, lapack_int whtsvd, + lapack_int m, lapack_int n, + lapack_complex_double* x, lapack_int ldx, + lapack_complex_double* y, lapack_int ldy, + lapack_int nrnk, double* tol, lapack_int k, + lapack_complex_double* eigs, lapack_complex_double* z, lapack_int ldz, - lapack_complex_double* res, + double* res, lapack_complex_double* b, lapack_int ldb, lapack_complex_double* w, lapack_int ldw, lapack_complex_double* s, lapack_int lds, - lapack_complex_double* work, lapack_int lwork, + lapack_complex_double* zwork, lapack_int lzwork, + double* work, lapack_int lwork, lapack_int* iwork, lapack_int liwork ); lapack_int LAPACKE_sgedmdq_work( int matrix_layout, char jobs, char jobz, @@ -5769,8 +5773,8 @@ lapack_int LAPACKE_sgedmdq_work( int matrix_layout, char jobs, char jobz, lapack_int whtsvd, lapack_int m, lapack_int n, float* f, lapack_int ldf, float* x, lapack_int ldx, float* y, lapack_int ldy, - lapack_int nrnk, float tol, lapack_int k, - float* reig, float* imeig, float* z, + lapack_int nrnk, float* tol, lapack_int k, + float* reig, float *imeig, float* z, lapack_int ldz, float* res, float* b, lapack_int ldb, float* v, lapack_int ldv, float* s, lapack_int lds, float* work, @@ -5782,8 +5786,8 @@ lapack_int LAPACKE_dgedmdq_work( int matrix_layout, char jobs, char jobz, lapack_int whtsvd, lapack_int m, lapack_int n, double* f, lapack_int ldf, double* x, lapack_int ldx, double* y, lapack_int ldy, - lapack_int nrnk, double tol, lapack_int k, - double* reig, double* imeig, double* z, + lapack_int nrnk, double* tol, lapack_int k, + double* reig, double* imeig, double* z, lapack_int ldz, double* res, double* b, lapack_int ldb, double* v, lapack_int ldv, double* s, lapack_int lds, double* work, @@ -5796,17 +5800,16 @@ lapack_int LAPACKE_cgedmdq_work( int matrix_layout, char jobs, char jobz, lapack_complex_float* f, lapack_int ldf, lapack_complex_float* x, lapack_int ldx, lapack_complex_float* y, lapack_int ldy, - lapack_int nrnk, float tol, lapack_int k, - lapack_complex_float* reig, - lapack_complex_float* imeig, + lapack_int nrnk, float* tol, lapack_int k, + lapack_complex_float* eigs, lapack_complex_float* z, lapack_int ldz, - lapack_complex_float* res, + float* res, lapack_complex_float* b, lapack_int ldb, lapack_complex_float* v, lapack_int ldv, lapack_complex_float* s, lapack_int lds, - lapack_complex_float* work, lapack_int lwork, - lapack_int* iwork, - lapack_int liwork ); + lapack_complex_float* zwork, lapack_int lzwork, + float* work, lapack_int lwork, + lapack_int* iwork, lapack_int liwork); lapack_int LAPACKE_zgedmdq_work( int matrix_layout, char jobs, char jobz, char jobr, char jobq, char jobt, char jobf, @@ -5814,17 +5817,16 @@ lapack_int LAPACKE_zgedmdq_work( int matrix_layout, char jobs, char jobz, lapack_complex_double* f, lapack_int ldf, lapack_complex_double* x, lapack_int ldx, lapack_complex_double* y, lapack_int ldy, - lapack_int nrnk, double tol, lapack_int k, - lapack_complex_double* reig, - lapack_complex_double* imeig, + lapack_int nrnk, double* tol, lapack_int k, + lapack_complex_double* eigs, lapack_complex_double* z, lapack_int ldz, - lapack_complex_double* res, + double* res, lapack_complex_double* b, lapack_int ldb, lapack_complex_double* v, lapack_int ldv, lapack_complex_double* s, lapack_int lds, - lapack_complex_double* work, lapack_int lwork, - lapack_int* iwork, - lapack_int liwork ); + lapack_complex_double* zwork, lapack_int lzwork, + double* work, lapack_int lwork, + lapack_int* iwork, lapack_int liwork); lapack_int LAPACKE_sgesv_work( int matrix_layout, lapack_int n, lapack_int nrhs, float* a, lapack_int lda, lapack_int* ipiv, diff --git a/LAPACKE/src/lapacke_cgedmd.c b/LAPACKE/src/lapacke_cgedmd.c index a269b0dafc..6c77e199e2 100644 --- a/LAPACKE/src/lapacke_cgedmd.c +++ b/LAPACKE/src/lapacke_cgedmd.c @@ -32,22 +32,26 @@ #include "lapacke_utils.h" -lapack_int LAPACKE_cgedmd( int matrix_layout, char jobs, char jobz, char jobf, - lapack_int whtsvd, lapack_int m, lapack_int n, - lapack_complex_float* x, lapack_int ldx, - lapack_complex_float* y, lapack_int ldy, lapack_int k, - lapack_complex_float* reig, lapack_complex_float* imeig, +lapack_int LAPACKE_cgedmd( int matrix_layout, char jobs, char jobz, char jobr, + char jobf, lapack_int whtsvd, lapack_int m, + lapack_int n, lapack_complex_float* x, + lapack_int ldx, lapack_complex_float* y, + lapack_int ldy, lapack_int nrnk, float* tol, + lapack_int k, lapack_complex_float* eigs, lapack_complex_float* z, lapack_int ldz, - lapack_complex_float* res, lapack_complex_float* b, + float* res, lapack_complex_float* b, lapack_int ldb, lapack_complex_float* w, lapack_int ldw, lapack_complex_float* s, lapack_int lds) { lapack_int info = 0; lapack_int lwork = -1; lapack_int liwork = -1; - lapack_complex_float* work = NULL; + lapack_int lzwork = -1; + lapack_complex_float* zwork = NULL; + float* work = NULL; lapack_int* iwork = NULL; - lapack_complex_float work_query; + lapack_complex_float zwork_query; + float work_query; lapack_int iwork_query; if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) { LAPACKE_xerbla( "LAPACKE_cgedmd", -1 ); @@ -77,36 +81,44 @@ lapack_int LAPACKE_cgedmd( int matrix_layout, char jobs, char jobz, char jobf, } #endif /* Query optimal working array(s) size */ - info = LAPACKE_cgedmd_work( matrix_layout, jobs, jobz, jobf, whtsvd, m, n, - x, ldx, y, ldy, k, reig, imeig, z, ldz, res, - b, ldb, w, ldw, s, lds, &work_query, lwork, - &iwork_query, liwork ); + info = LAPACKE_cgedmd_work( matrix_layout, jobs, jobz, jobr, jobf, whtsvd, + m, n, x, ldx, y, ldy, nrnk, tol, k, eigs, z, ldz, + res, b, ldb, w, ldw, s, lds, &zwork_query, + lzwork, &work_query, lwork, &iwork_query, liwork ); if( info != 0 ) { goto exit_level_0; } + lzwork = LAPACK_C2INT( zwork_query ); lwork = LAPACK_C2INT( work_query ); liwork = iwork_query; /* Allocate memory for work arrays */ - work = (lapack_complex_float*)LAPACKE_malloc( sizeof(lapack_complex_float) * lwork ); - if( work == NULL ) { + zwork = (lapack_complex_float*)LAPACKE_malloc( sizeof(lapack_complex_float) * lzwork ); + if( zwork == NULL ) { info = LAPACK_WORK_MEMORY_ERROR; goto exit_level_0; } + work = (float*)LAPACKE_malloc( sizeof(float) * lwork ); + if( work == NULL ) { + info = LAPACK_WORK_MEMORY_ERROR; + goto exit_level_1; + } iwork = (lapack_int*)LAPACKE_malloc( sizeof(lapack_int) * liwork ); if( iwork == NULL ) { info = LAPACK_WORK_MEMORY_ERROR; - goto exit_level_1; + goto exit_level_2; } /* Call middle-level interface */ - info = LAPACKE_cgedmd_work( matrix_layout, jobs, jobz, jobf, whtsvd, m, n, - x, ldx, y, ldy, k, reig, imeig, z, ldz, res, - b, ldb, w, ldw, s, lds, work, lwork, iwork, - liwork ); + info = LAPACKE_cgedmd_work( matrix_layout, jobs, jobz, jobr, jobf, whtsvd, + m, n, x, ldx, y, ldy, nrnk, tol, k, eigs, z, ldz, + res, b, ldb, w, ldw, s, lds, zwork, lzwork, + work, lwork, iwork, liwork ); /* Release memory and exit */ LAPACKE_free( iwork ); -exit_level_1: +exit_level_2: LAPACKE_free( work ); +exit_level_1: + LAPACKE_free( zwork ); exit_level_0: if( info == LAPACK_WORK_MEMORY_ERROR ) { LAPACKE_xerbla( "LAPACKE_cgedmd", info ); diff --git a/LAPACKE/src/lapacke_cgedmd_work.c b/LAPACKE/src/lapacke_cgedmd_work.c index 534934efb4..08d8b91f50 100644 --- a/LAPACKE/src/lapacke_cgedmd_work.c +++ b/LAPACKE/src/lapacke_cgedmd_work.c @@ -33,23 +33,25 @@ #include "lapacke_utils.h" lapack_int LAPACKE_cgedmd_work( int matrix_layout, char jobs, char jobz, - char jobf, lapack_int whtsvd, lapack_int m, + char jobr, char jobf, lapack_int whtsvd, lapack_int m, lapack_int n, lapack_complex_float* x, lapack_int ldx, - lapack_complex_float* y, lapack_int ldy, lapack_int k, - lapack_complex_float* reig, lapack_complex_float* imeig, + lapack_complex_float* y, lapack_int ldy, lapack_int nrnk, + float* tol, lapack_int k, lapack_complex_float* eigs, lapack_complex_float* z, lapack_int ldz, - lapack_complex_float* res, lapack_complex_float* b, + float* res, lapack_complex_float* b, lapack_int ldb, lapack_complex_float* w, lapack_int ldw, lapack_complex_float* s, lapack_int lds, - lapack_complex_float* work, lapack_int lwork, + lapack_complex_float* zwork, lapack_int lzwork, + float* work, lapack_int lwork, lapack_int* iwork, lapack_int liwork ) { lapack_int info = 0; if( matrix_layout == LAPACK_COL_MAJOR ) { /* Call LAPACK function and adjust info */ - LAPACK_cgedmd( &jobs, &jobz, &jobf, &whtsvd, &m, &n, x, &ldx, y, &ldy, - &k, reig, imeig, z, &ldz, res, b, &ldb, w, &ldw, s, &lds, - work, &lwork, iwork, &liwork, &info ); + LAPACK_cgedmd( &jobs, &jobz, &jobr, &jobf, &whtsvd, &m, &n, x, &ldx, y, + &ldy, &nrnk, tol, &k, eigs, z, &ldz, res, b, &ldb, w, &ldw, + s, &lds, zwork, &lzwork, work, &lwork, iwork, &liwork, + &info ); if( info < 0 ) { info = info - 1; } @@ -99,9 +101,10 @@ lapack_int LAPACKE_cgedmd_work( int matrix_layout, char jobs, char jobz, } /* Query optimal working array(s) size if requested */ if( lwork == -1 ) { - LAPACK_cgedmd( &jobs, &jobz, &jobf, &whtsvd, &m, &n, x, &ldx, y, &ldy, - &k, reig, imeig, z, &ldz, res, b, &ldb, w, &ldw, s, &lds, - work, &lwork, iwork, &liwork, &info ); + LAPACK_cgedmd( &jobs, &jobz, &jobr, &jobf, &whtsvd, &m, &n, x, + &ldx, y, &ldy, &nrnk, tol, &k, eigs, z, &ldz, res, b, + &ldb, w, &ldw, s, &lds, zwork, &lzwork, + work, &lwork, iwork, &liwork, &info ); return (info < 0) ? (info - 1) : info; } /* Allocate memory for temporary array(s) */ @@ -143,9 +146,10 @@ lapack_int LAPACKE_cgedmd_work( int matrix_layout, char jobs, char jobz, LAPACKE_cge_trans( matrix_layout, m, n, w, ldw, w_t, ldw_t ); LAPACKE_cge_trans( matrix_layout, m, n, s, lds, s_t, lds_t ); /* Call LAPACK function and adjust info */ - LAPACK_cgedmd( &jobs, &jobz, &jobf, &whtsvd, &m, &n, x_t, &ldx_t, y_t, - &ldy_t, &k, reig, imeig, z_t, &ldz_t, res, b_t, &ldb_t, - w_t, &ldw_t, s_t, &lds_t, work, &lwork, iwork, &liwork, &info ); + LAPACK_cgedmd( &jobs, &jobz, &jobr, &jobf, &whtsvd, &m, &n, x_t, + &ldx_t, y_t, &ldy_t, &nrnk, tol, &k, eigs, z_t, &ldz_t, + res, b_t, &ldb_t, w_t, &ldw_t, s_t, &lds_t, zwork, + &lzwork, work, &lwork, iwork, &liwork, &info ); if( info < 0 ) { info = info - 1; } diff --git a/LAPACKE/src/lapacke_cgedmdq.c b/LAPACKE/src/lapacke_cgedmdq.c index 60e83729bd..b0b258f97b 100644 --- a/LAPACKE/src/lapacke_cgedmdq.c +++ b/LAPACKE/src/lapacke_cgedmdq.c @@ -37,20 +37,22 @@ lapack_int LAPACKE_cgedmdq( int matrix_layout, char jobs, char jobz, char jobr, lapack_int m, lapack_int n, lapack_complex_float* f, lapack_int ldf, lapack_complex_float* x, lapack_int ldx, lapack_complex_float* y, - lapack_int ldy, lapack_int nrnk, float tol, - lapack_int k, lapack_complex_float* reig, - lapack_complex_float* imeig, + lapack_int ldy, lapack_int nrnk, float* tol, + lapack_int k, lapack_complex_float* eigs, lapack_complex_float* z, lapack_int ldz, - lapack_complex_float* res, lapack_complex_float* b, + float* res, lapack_complex_float* b, lapack_int ldb, lapack_complex_float* v, lapack_int ldv, lapack_complex_float* s, lapack_int lds) { lapack_int info = 0; lapack_int lwork = -1; lapack_int liwork = -1; - lapack_complex_float* work = NULL; + lapack_int lzwork = -1; + lapack_complex_float* zwork = NULL; + float* work = NULL; lapack_int* iwork = NULL; - lapack_complex_float work_query; + lapack_complex_float zwork_query; + float work_query; lapack_int iwork_query; if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) { LAPACKE_xerbla( "LAPACKE_cgedmdq", -1 ); @@ -85,36 +87,44 @@ lapack_int LAPACKE_cgedmdq( int matrix_layout, char jobs, char jobz, char jobr, /* Query optimal working array(s) size */ info = LAPACKE_cgedmdq_work( matrix_layout, jobs, jobz, jobr, jobq, jobt, jobf, whtsvd, m, n, f, ldf, x, ldx, y, ldy, - nrnk, tol, k, reig, imeig, z, ldz, res, - b, ldb, v, ldv, s, lds, &work_query, lwork, - &iwork_query, liwork ); + nrnk, tol, k, eigs, z, ldz, res, + b, ldb, v, ldv, s, lds, &zwork_query, lzwork, + &work_query, lwork, &iwork_query, liwork ); if( info != 0 ) { goto exit_level_0; } + lzwork = LAPACK_C2INT( zwork_query ); lwork = LAPACK_C2INT( work_query ); liwork = iwork_query; /* Allocate memory for work arrays */ - work = (lapack_complex_float*)LAPACKE_malloc( sizeof(lapack_complex_float) * lwork ); - if( work == NULL ) { + zwork = (lapack_complex_float*)LAPACKE_malloc( sizeof(lapack_complex_float) * lzwork ); + if( zwork == NULL ) { info = LAPACK_WORK_MEMORY_ERROR; goto exit_level_0; } + work = (float*)LAPACKE_malloc( sizeof(lapack_complex_float) * lwork ); + if( work == NULL ) { + info = LAPACK_WORK_MEMORY_ERROR; + goto exit_level_1; + } iwork = (lapack_int*)LAPACKE_malloc( sizeof(lapack_int) * liwork ); if( iwork == NULL ) { info = LAPACK_WORK_MEMORY_ERROR; - goto exit_level_1; + goto exit_level_2; } /* Call middle-level interface */ info = LAPACKE_cgedmdq_work( matrix_layout, jobs, jobz, jobr, jobq, jobt, jobf, whtsvd, m, n, f, ldf, x, ldx, y, ldy, - nrnk, tol, k, reig, imeig, z, ldz, res, - b, ldb, v, ldv, s, lds, work, lwork, iwork, - liwork ); + nrnk, tol, k, eigs, z, ldz, res, + b, ldb, v, ldv, s, lds, zwork, lzwork, + work, lwork, iwork, liwork ); /* Release memory and exit */ LAPACKE_free( iwork ); -exit_level_1: +exit_level_2: LAPACKE_free( work ); +exit_level_1: + LAPACKE_free( zwork ); exit_level_0: if( info == LAPACK_WORK_MEMORY_ERROR ) { LAPACKE_xerbla( "LAPACKE_cgedmdq", info ); diff --git a/LAPACKE/src/lapacke_cgedmdq_work.c b/LAPACKE/src/lapacke_cgedmdq_work.c index 5bdbd3f564..05287c1bc5 100644 --- a/LAPACKE/src/lapacke_cgedmdq_work.c +++ b/LAPACKE/src/lapacke_cgedmdq_work.c @@ -38,15 +38,15 @@ lapack_int LAPACKE_cgedmdq_work( int matrix_layout, char jobs, char jobz, lapack_complex_float* f, lapack_int ldf, lapack_complex_float* x, lapack_int ldx, lapack_complex_float* y, lapack_int ldy, - lapack_int nrnk, float tol, lapack_int k, - lapack_complex_float* reig, - lapack_complex_float* imeig, + lapack_int nrnk, float* tol, lapack_int k, + lapack_complex_float* eigs, lapack_complex_float* z, - lapack_int ldz, lapack_complex_float* res, + lapack_int ldz, float* res, lapack_complex_float* b, lapack_int ldb, lapack_complex_float* v, lapack_int ldv, lapack_complex_float* s, - lapack_int lds, lapack_complex_float* work, + lapack_int lds, lapack_complex_float *zwork, + lapack_int lzwork, float* work, lapack_int lwork, lapack_int* iwork, lapack_int liwork ) { @@ -54,9 +54,9 @@ lapack_int LAPACKE_cgedmdq_work( int matrix_layout, char jobs, char jobz, if( matrix_layout == LAPACK_COL_MAJOR ) { /* Call LAPACK function and adjust info */ LAPACK_cgedmdq( &jobs, &jobz, &jobr, &jobq, &jobt, &jobf, &whtsvd, &m, - &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, &tol, &k, reig, - imeig, z, &ldz, res, b, &ldb, v, &ldv, s, &lds, - work, &lwork, iwork, &liwork, &info ); + &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, tol, &k, eigs, + z, &ldz, res, b, &ldb, v, &ldv, s, &lds, + zwork, &lzwork, work, &lwork, iwork, &liwork, &info ); if( info < 0 ) { info = info - 1; } @@ -112,11 +112,11 @@ lapack_int LAPACKE_cgedmdq_work( int matrix_layout, char jobs, char jobz, return info; } /* Query optimal working array(s) size if requested */ - if( lwork == -1 || liwork == -1 ) { + if( lzwork == -1 || lwork == -1 || liwork == -1 ) { LAPACK_cgedmdq( &jobs, &jobz, &jobr, &jobq, &jobt, &jobf, &whtsvd, &m, - &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, &tol, &k, reig, - imeig, z, &ldz, res, b, &ldb, v, &ldv, s, &lds, - work, &lwork, iwork, &liwork, &info ); + &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, tol, &k, eigs, + z, &ldz, res, b, &ldb, v, &ldv, s, &lds, + zwork, &lzwork, work, &lwork, iwork, &liwork, &info ); return (info < 0) ? (info - 1) : info; } /* Allocate memory for temporary array(s) */ @@ -165,9 +165,9 @@ lapack_int LAPACKE_cgedmdq_work( int matrix_layout, char jobs, char jobz, LAPACKE_cge_trans( matrix_layout, m, n, s, lds, s_t, lds_t ); /* Call LAPACK function and adjust info */ LAPACK_cgedmdq( &jobs, &jobz, &jobr, &jobq, &jobt, &jobf, &whtsvd, &m, - &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, &tol, &k, reig, - imeig, z, &ldz, res, b, &ldb, v, &ldv, s, &lds, - work, &lwork, iwork, &liwork, &info ); + &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, tol, &k, eigs, + z, &ldz, res, b, &ldb, v, &ldv, s, &lds, + zwork, &lzwork, work, &lwork, iwork, &liwork, &info ); if( info < 0 ) { info = info - 1; } diff --git a/LAPACKE/src/lapacke_dgedmd.c b/LAPACKE/src/lapacke_dgedmd.c index 246d7f649b..6802378da6 100644 --- a/LAPACKE/src/lapacke_dgedmd.c +++ b/LAPACKE/src/lapacke_dgedmd.c @@ -32,11 +32,13 @@ #include "lapacke_utils.h" -lapack_int LAPACKE_dgedmd( int matrix_layout, char jobs, char jobz, char jobf, - lapack_int whtsvd, lapack_int m, lapack_int n, - double* x, lapack_int ldx, double* y, lapack_int ldy, - lapack_int k, double* reig, double* imeig, double* z, - lapack_int ldz, double* res, double* b, lapack_int ldb, +lapack_int LAPACKE_dgedmd( int matrix_layout, char jobs, char jobz, char jobr, + char jobf, lapack_int whtsvd, lapack_int m, + lapack_int n, double* x, lapack_int ldx, double* y, + lapack_int ldy, lapack_int nrnk, double* tol, + lapack_int k, double* reig, double* imeig, + double* z, lapack_int ldz, + double* res, double* b, lapack_int ldb, double* w, lapack_int ldw, double* s, lapack_int lds) { lapack_int info = 0; @@ -74,10 +76,10 @@ lapack_int LAPACKE_dgedmd( int matrix_layout, char jobs, char jobz, char jobf, } #endif /* Query optimal working array(s) size */ - info = LAPACKE_dgedmd_work( matrix_layout, jobs, jobz, jobf, whtsvd, m, n, - x, ldx, y, ldy, k, reig, imeig, z, ldz, res, - b, ldb, w, ldw, s, lds, &work_query, lwork, - &iwork_query, liwork ); + info = LAPACKE_dgedmd_work( matrix_layout, jobs, jobz, jobr, jobf, whtsvd, + m, n, x, ldx, y, ldy, nrnk, tol, k, reig, imeig, z, ldz, + res, b, ldb, w, ldw, s, lds, &work_query, + lwork, &iwork_query, liwork ); if( info != 0 ) { goto exit_level_0; @@ -96,10 +98,10 @@ lapack_int LAPACKE_dgedmd( int matrix_layout, char jobs, char jobz, char jobf, goto exit_level_1; } /* Call middle-level interface */ - info = LAPACKE_dgedmd_work( matrix_layout, jobs, jobz, jobf, whtsvd, m, n, - x, ldx, y, ldy, k, reig, imeig, z, ldz, res, - b, ldb, w, ldw, s, lds, work, lwork, iwork, - liwork ); + info = LAPACKE_dgedmd_work( matrix_layout, jobs, jobz, jobr, jobf, whtsvd, + m, n, x, ldx, y, ldy, nrnk, tol, k, reig, imeig, z, ldz, + res, b, ldb, w, ldw, s, lds, work, lwork, + iwork, liwork ); /* Release memory and exit */ LAPACKE_free( iwork ); exit_level_1: diff --git a/LAPACKE/src/lapacke_dgedmd_work.c b/LAPACKE/src/lapacke_dgedmd_work.c index 4d1169de92..987709a1b0 100644 --- a/LAPACKE/src/lapacke_dgedmd_work.c +++ b/LAPACKE/src/lapacke_dgedmd_work.c @@ -33,22 +33,23 @@ #include "lapacke_utils.h" lapack_int LAPACKE_dgedmd_work( int matrix_layout, char jobs, char jobz, - char jobf, lapack_int whtsvd, lapack_int m, - lapack_int n, double* x, lapack_int ldx, - double* y, lapack_int ldy, lapack_int k, - double* reig, double* imeig, double* z, - lapack_int ldz, double* res, double* b, - lapack_int ldb, double* w, lapack_int ldw, - double* s, lapack_int lds, double* work, - lapack_int lwork, lapack_int* iwork, - lapack_int liwork ) + char jobr, char jobf, lapack_int whtsvd, + lapack_int m, lapack_int n, double* x, + lapack_int ldx, double* y, lapack_int ldy, + lapack_int nrnk, double* tol, lapack_int k, + double* reig, double* imeig, + double* z, lapack_int ldz, double* res, + double* b, lapack_int ldb, double* w, + lapack_int ldw, double* s, lapack_int lds, + double* work, lapack_int lwork, + lapack_int* iwork, lapack_int liwork ) { lapack_int info = 0; if( matrix_layout == LAPACK_COL_MAJOR ) { /* Call LAPACK function and adjust info */ - LAPACK_dgedmd( &jobs, &jobz, &jobf, &whtsvd, &m, &n, x, &ldx, y, &ldy, - &k, reig, imeig, z, &ldz, res, b, &ldb, w, &ldw, s, &lds, - work, &lwork, iwork, &liwork, &info ); + LAPACK_dgedmd( &jobs, &jobz, &jobr, &jobf, &whtsvd, &m, &n, x, &ldx, y, + &ldy, &nrnk, tol, &k, reig, imeig, z, &ldz, res, b, &ldb, w, &ldw, + s, &lds, work, &lwork, iwork, &liwork, &info ); if( info < 0 ) { info = info - 1; } @@ -98,9 +99,9 @@ lapack_int LAPACKE_dgedmd_work( int matrix_layout, char jobs, char jobz, } /* Query optimal working array(s) size if requested */ if( lwork == -1 ) { - LAPACK_dgedmd( &jobs, &jobz, &jobf, &whtsvd, &m, &n, x, &ldx, y, &ldy, - &k, reig, imeig, z, &ldz, res, b, &ldb, w, &ldw, s, &lds, - work, &lwork, iwork, &liwork, &info ); + LAPACK_dgedmd( &jobs, &jobz, &jobr, &jobf, &whtsvd, &m, &n, x, &ldx, + y, &ldy, &nrnk, tol, &k, reig, imeig, z, &ldz, res, b, &ldb, w, + &ldw, s, &lds, work, &lwork, iwork, &liwork, &info ); return (info < 0) ? (info - 1) : info; } /* Allocate memory for temporary array(s) */ @@ -142,9 +143,10 @@ lapack_int LAPACKE_dgedmd_work( int matrix_layout, char jobs, char jobz, LAPACKE_dge_trans( matrix_layout, m, n, w, ldw, w_t, ldw_t ); LAPACKE_dge_trans( matrix_layout, m, n, s, lds, s_t, lds_t ); /* Call LAPACK function and adjust info */ - LAPACK_dgedmd( &jobs, &jobz, &jobf, &whtsvd, &m, &n, x_t, &ldx_t, y_t, - &ldy_t, &k, reig, imeig, z_t, &ldz_t, res, b_t, &ldb_t, - w_t, &ldw_t, s_t, &lds_t, work, &lwork, iwork, &liwork, &info ); + LAPACK_dgedmd( &jobs, &jobz, &jobr, &jobf, &whtsvd, &m, &n, x_t, &ldx_t, + y_t, &ldy_t, &nrnk, tol, &k, reig, imeig, z_t, &ldz_t, res, b_t, + &ldb_t, w_t, &ldw_t, s_t, &lds_t, work, &lwork, + iwork, &liwork, &info ); if( info < 0 ) { info = info - 1; } diff --git a/LAPACKE/src/lapacke_dgedmdq.c b/LAPACKE/src/lapacke_dgedmdq.c index f3d621ba93..5c3c39308b 100644 --- a/LAPACKE/src/lapacke_dgedmdq.c +++ b/LAPACKE/src/lapacke_dgedmdq.c @@ -36,7 +36,7 @@ lapack_int LAPACKE_dgedmdq( int matrix_layout, char jobs, char jobz, char jobr, char jobq, char jobt, char jobf, lapack_int whtsvd, lapack_int m, lapack_int n, double* f, lapack_int ldf, double* x, lapack_int ldx, double* y, lapack_int ldy, - lapack_int nrnk, double tol, lapack_int k, + lapack_int nrnk, double* tol, lapack_int k, double* reig, double* imeig, double* z, lapack_int ldz, double* res, double* b, lapack_int ldb, double* v, lapack_int ldv, double* s, lapack_int lds) diff --git a/LAPACKE/src/lapacke_dgedmdq_work.c b/LAPACKE/src/lapacke_dgedmdq_work.c index 51b2a66d85..149e6d24f6 100644 --- a/LAPACKE/src/lapacke_dgedmdq_work.c +++ b/LAPACKE/src/lapacke_dgedmdq_work.c @@ -37,7 +37,7 @@ lapack_int LAPACKE_dgedmdq_work( int matrix_layout, char jobs, char jobz, lapack_int whtsvd, lapack_int m, lapack_int n, double* f, lapack_int ldf, double* x, lapack_int ldx, double* y, lapack_int ldy, - lapack_int nrnk, double tol, lapack_int k, + lapack_int nrnk, double* tol, lapack_int k, double* reig, double* imeig, double* z, lapack_int ldz, double* res, double* b, lapack_int ldb, double* v, lapack_int ldv, @@ -49,8 +49,8 @@ lapack_int LAPACKE_dgedmdq_work( int matrix_layout, char jobs, char jobz, if( matrix_layout == LAPACK_COL_MAJOR ) { /* Call LAPACK function and adjust info */ LAPACK_dgedmdq( &jobs, &jobz, &jobr, &jobq, &jobt, &jobf, &whtsvd, &m, - &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, &tol, &k, reig, - imeig, z, &ldz, res, b, &ldb, v, &ldv, s, &lds, + &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, tol, &k, reig, imeig, + z, &ldz, res, b, &ldb, v, &ldv, s, &lds, work, &lwork, iwork, &liwork, &info ); if( info < 0 ) { info = info - 1; @@ -109,8 +109,8 @@ lapack_int LAPACKE_dgedmdq_work( int matrix_layout, char jobs, char jobz, /* Query optimal working array(s) size if requested */ if( lwork == -1 || liwork == -1 ) { LAPACK_dgedmdq( &jobs, &jobz, &jobr, &jobq, &jobt, &jobf, &whtsvd, &m, - &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, &tol, &k, reig, - imeig, z, &ldz, res, b, &ldb, v, &ldv, s, &lds, + &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, tol, &k, reig, imeig, + z, &ldz, res, b, &ldb, v, &ldv, s, &lds, work, &lwork, iwork, &liwork, &info ); return (info < 0) ? (info - 1) : info; } @@ -160,8 +160,8 @@ lapack_int LAPACKE_dgedmdq_work( int matrix_layout, char jobs, char jobz, LAPACKE_dge_trans( matrix_layout, m, n, s, lds, s_t, lds_t ); /* Call LAPACK function and adjust info */ LAPACK_dgedmdq( &jobs, &jobz, &jobr, &jobq, &jobt, &jobf, &whtsvd, &m, - &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, &tol, &k, reig, - imeig, z, &ldz, res, b, &ldb, v, &ldv, s, &lds, + &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, tol, &k, reig, imeig, + z, &ldz, res, b, &ldb, v, &ldv, s, &lds, work, &lwork, iwork, &liwork, &info ); if( info < 0 ) { info = info - 1; diff --git a/LAPACKE/src/lapacke_sgedmd.c b/LAPACKE/src/lapacke_sgedmd.c index 879631b1d0..6865fcf653 100644 --- a/LAPACKE/src/lapacke_sgedmd.c +++ b/LAPACKE/src/lapacke_sgedmd.c @@ -32,12 +32,14 @@ #include "lapacke_utils.h" -lapack_int LAPACKE_sgedmd( int matrix_layout, char jobs, char jobz, char jobf, - lapack_int whtsvd, lapack_int m, lapack_int n, - float* x, lapack_int ldx, float* y, lapack_int ldy, - lapack_int k, float* reig, float* imeig, float* z, - lapack_int ldz, float* res, float* b, lapack_int ldb, - float* w, lapack_int ldw, float* s, lapack_int lds) +lapack_int LAPACKE_sgedmd( int matrix_layout, char jobs, char jobz, char jobr, + char jobf, lapack_int whtsvd, lapack_int m, + lapack_int n, float* x, lapack_int ldx, float* y, + lapack_int ldy, lapack_int nrnk, float* tol, + lapack_int k, float* reig, float* imeig, + float* z, lapack_int ldz, float* res, + float* b, lapack_int ldb, float* w, lapack_int ldw, + float* s, lapack_int lds) { lapack_int info = 0; lapack_int lwork = -1; @@ -74,10 +76,10 @@ lapack_int LAPACKE_sgedmd( int matrix_layout, char jobs, char jobz, char jobf, } #endif /* Query optimal working array(s) size */ - info = LAPACKE_sgedmd_work( matrix_layout, jobs, jobz, jobf, whtsvd, m, n, - x, ldx, y, ldy, k, reig, imeig, z, ldz, res, - b, ldb, w, ldw, s, lds, &work_query, lwork, - &iwork_query, liwork ); + info = LAPACKE_sgedmd_work( matrix_layout, jobs, jobz, jobr, jobf, whtsvd, + m, n, x, ldx, y, ldy, nrnk, tol, k, reig, imeig, z, ldz, + res, b, ldb, w, ldw, s, lds, &work_query, + lwork, &iwork_query, liwork ); if( info != 0 ) { goto exit_level_0; @@ -96,10 +98,10 @@ lapack_int LAPACKE_sgedmd( int matrix_layout, char jobs, char jobz, char jobf, goto exit_level_1; } /* Call middle-level interface */ - info = LAPACKE_sgedmd_work( matrix_layout, jobs, jobz, jobf, whtsvd, m, n, - x, ldx, y, ldy, k, reig, imeig, z, ldz, res, - b, ldb, w, ldw, s, lds, work, lwork, iwork, - liwork ); + info = LAPACKE_sgedmd_work( matrix_layout, jobs, jobz, jobr, jobf, whtsvd, + m, n, x, ldx, y, ldy, nrnk, tol, k, reig, imeig, z, ldz, + res, b, ldb, w, ldw, s, lds, work, lwork, + iwork, liwork ); /* Release memory and exit */ LAPACKE_free( iwork ); exit_level_1: diff --git a/LAPACKE/src/lapacke_sgedmd_work.c b/LAPACKE/src/lapacke_sgedmd_work.c index 762a9b2717..5b24152da7 100644 --- a/LAPACKE/src/lapacke_sgedmd_work.c +++ b/LAPACKE/src/lapacke_sgedmd_work.c @@ -33,22 +33,23 @@ #include "lapacke_utils.h" lapack_int LAPACKE_sgedmd_work( int matrix_layout, char jobs, char jobz, - char jobf, lapack_int whtsvd, lapack_int m, - lapack_int n, float* x, lapack_int ldx, - float* y, lapack_int ldy, lapack_int k, - float* reig, float* imeig, float* z, - lapack_int ldz, float* res, float* b, - lapack_int ldb, float* w, lapack_int ldw, - float* s, lapack_int lds, float* work, - lapack_int lwork, lapack_int* iwork, - lapack_int liwork ) + char jobr, char jobf, lapack_int whtsvd, + lapack_int m, lapack_int n, float* x, + lapack_int ldx, float* y, lapack_int ldy, + lapack_int nrnk, float* tol, lapack_int k, + float* reig, float* imeig, + float* z, lapack_int ldz, float* res, + float* b, lapack_int ldb, float* w, + lapack_int ldw, float* s, lapack_int lds, + float* work, lapack_int lwork, + lapack_int* iwork, lapack_int liwork ) { lapack_int info = 0; if( matrix_layout == LAPACK_COL_MAJOR ) { /* Call LAPACK function and adjust info */ - LAPACK_sgedmd( &jobs, &jobz, &jobf, &whtsvd, &m, &n, x, &ldx, y, &ldy, - &k, reig, imeig, z, &ldz, res, b, &ldb, w, &ldw, s, &lds, - work, &lwork, iwork, &liwork, &info ); + LAPACK_sgedmd( &jobs, &jobz, &jobr, &jobf, &whtsvd, &m, &n, x, &ldx, y, + &ldy, &nrnk, tol, &k, reig, imeig, z, &ldz, res, b, &ldb, w, &ldw, + s, &lds, work, &lwork, iwork, &liwork, &info ); if( info < 0 ) { info = info - 1; } @@ -98,9 +99,10 @@ lapack_int LAPACKE_sgedmd_work( int matrix_layout, char jobs, char jobz, } /* Query optimal working array(s) size if requested */ if( lwork == -1 ) { - LAPACK_sgedmd( &jobs, &jobz, &jobf, &whtsvd, &m, &n, x, &ldx, y, &ldy, - &k, reig, imeig, z, &ldz, res, b, &ldb, w, &ldw, s, &lds, - work, &lwork, iwork, &liwork, &info ); + LAPACK_sgedmd( &jobs, &jobz, &jobr, &jobf, &whtsvd, &m, &n, x, + &ldx, y, &ldy, &nrnk, tol, &k, reig, imeig, z, &ldz, res, b, + &ldb, w, &ldw, s, &lds, work, &lwork, iwork, + &liwork, &info ); return (info < 0) ? (info - 1) : info; } /* Allocate memory for temporary array(s) */ @@ -142,9 +144,10 @@ lapack_int LAPACKE_sgedmd_work( int matrix_layout, char jobs, char jobz, LAPACKE_sge_trans( matrix_layout, m, n, w, ldw, w_t, ldw_t ); LAPACKE_sge_trans( matrix_layout, m, n, s, lds, s_t, lds_t ); /* Call LAPACK function and adjust info */ - LAPACK_sgedmd( &jobs, &jobz, &jobf, &whtsvd, &m, &n, x_t, &ldx_t, y_t, - &ldy_t, &k, reig, imeig, z_t, &ldz_t, res, b_t, &ldb_t, - w_t, &ldw_t, s_t, &lds_t, work, &lwork, iwork, &liwork, &info ); + LAPACK_sgedmd( &jobs, &jobz, &jobr, &jobf, &whtsvd, &m, &n, x_t, + &ldx_t, y_t, &ldy_t, &nrnk, tol, &k, reig, imeig, z_t, &ldz_t, + res, b_t, &ldb_t, w_t, &ldw_t, s_t, &lds_t, work, + &lwork, iwork, &liwork, &info ); if( info < 0 ) { info = info - 1; } diff --git a/LAPACKE/src/lapacke_sgedmdq.c b/LAPACKE/src/lapacke_sgedmdq.c index e202d7fbdd..e65c2094f9 100644 --- a/LAPACKE/src/lapacke_sgedmdq.c +++ b/LAPACKE/src/lapacke_sgedmdq.c @@ -36,7 +36,7 @@ lapack_int LAPACKE_sgedmdq( int matrix_layout, char jobs, char jobz, char jobr, char jobq, char jobt, char jobf, lapack_int whtsvd, lapack_int m, lapack_int n, float* f, lapack_int ldf, float* x, lapack_int ldx, float* y, lapack_int ldy, - lapack_int nrnk, float tol, lapack_int k, + lapack_int nrnk, float* tol, lapack_int k, float* reig, float* imeig, float* z, lapack_int ldz, float* res, float* b, lapack_int ldb, float* v, lapack_int ldv, float* s, lapack_int lds) diff --git a/LAPACKE/src/lapacke_sgedmdq_work.c b/LAPACKE/src/lapacke_sgedmdq_work.c index 9039898d26..e1c1f5c983 100644 --- a/LAPACKE/src/lapacke_sgedmdq_work.c +++ b/LAPACKE/src/lapacke_sgedmdq_work.c @@ -37,7 +37,7 @@ lapack_int LAPACKE_sgedmdq_work( int matrix_layout, char jobs, char jobz, lapack_int whtsvd, lapack_int m, lapack_int n, float* f, lapack_int ldf, float* x, lapack_int ldx, float* y, lapack_int ldy, - lapack_int nrnk, float tol, lapack_int k, + lapack_int nrnk, float* tol, lapack_int k, float* reig, float* imeig, float* z, lapack_int ldz, float* res, float* b, lapack_int ldb, float* v, lapack_int ldv, @@ -49,8 +49,8 @@ lapack_int LAPACKE_sgedmdq_work( int matrix_layout, char jobs, char jobz, if( matrix_layout == LAPACK_COL_MAJOR ) { /* Call LAPACK function and adjust info */ LAPACK_sgedmdq( &jobs, &jobz, &jobr, &jobq, &jobt, &jobf, &whtsvd, &m, - &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, &tol, &k, reig, - imeig, z, &ldz, res, b, &ldb, v, &ldv, s, &lds, + &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, tol, &k, reig, imeig, + z, &ldz, res, b, &ldb, v, &ldv, s, &lds, work, &lwork, iwork, &liwork, &info ); if( info < 0 ) { info = info - 1; @@ -109,8 +109,8 @@ lapack_int LAPACKE_sgedmdq_work( int matrix_layout, char jobs, char jobz, /* Query optimal working array(s) size if requested */ if( lwork == -1 || liwork == -1 ) { LAPACK_sgedmdq( &jobs, &jobz, &jobr, &jobq, &jobt, &jobf, &whtsvd, &m, - &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, &tol, &k, reig, - imeig, z, &ldz, res, b, &ldb, v, &ldv, s, &lds, + &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, tol, &k, reig, imeig, + z, &ldz, res, b, &ldb, v, &ldv, s, &lds, work, &lwork, iwork, &liwork, &info ); return (info < 0) ? (info - 1) : info; } @@ -160,8 +160,8 @@ lapack_int LAPACKE_sgedmdq_work( int matrix_layout, char jobs, char jobz, LAPACKE_sge_trans( matrix_layout, m, n, s, lds, s_t, lds_t ); /* Call LAPACK function and adjust info */ LAPACK_sgedmdq( &jobs, &jobz, &jobr, &jobq, &jobt, &jobf, &whtsvd, &m, - &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, &tol, &k, reig, - imeig, z, &ldz, res, b, &ldb, v, &ldv, s, &lds, + &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, tol, &k, reig, imeig, + z, &ldz, res, b, &ldb, v, &ldv, s, &lds, work, &lwork, iwork, &liwork, &info ); if( info < 0 ) { info = info - 1; diff --git a/LAPACKE/src/lapacke_zgedmd.c b/LAPACKE/src/lapacke_zgedmd.c index f3f421c54d..e4ea4fe105 100644 --- a/LAPACKE/src/lapacke_zgedmd.c +++ b/LAPACKE/src/lapacke_zgedmd.c @@ -32,24 +32,28 @@ #include "lapacke_utils.h" -lapack_int LAPACKE_zgedmd( int matrix_layout, char jobs, char jobz, char jobf, - lapack_int whtsvd, lapack_int m, lapack_int n, - lapack_complex_double* x, lapack_int ldx, - lapack_complex_double* y, lapack_int ldy, - lapack_int k, lapack_complex_double* reig, - lapack_complex_double* imeig, lapack_complex_double* z, - lapack_int ldz, lapack_complex_double* res, +lapack_int LAPACKE_zgedmd( int matrix_layout, char jobs, char jobz, char jobr, + char jobf, lapack_int whtsvd, lapack_int m, + lapack_int n, lapack_complex_double* x, + lapack_int ldx, lapack_complex_double* y, + lapack_int ldy, lapack_int nrnk, double *tol, lapack_int k, + lapack_complex_double* eigs, lapack_complex_double* z, + lapack_int ldz, double* res, lapack_complex_double* b, lapack_int ldb, + lapack_complex_double* zw, lapack_int lzw, lapack_complex_double* w, lapack_int ldw, lapack_complex_double* s, lapack_int lds) { lapack_int info = 0; lapack_int lwork = -1; lapack_int liwork = -1; - lapack_complex_double* work = NULL; + lapack_int lzwork = -1; + lapack_complex_double* zwork = NULL; + double* work = NULL; lapack_int* iwork = NULL; - lapack_complex_double work_query; + double work_query; lapack_int iwork_query; + lapack_complex_double zwork_query; if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) { LAPACKE_xerbla( "LAPACKE_zgedmd", -1 ); return -1; @@ -78,36 +82,44 @@ lapack_int LAPACKE_zgedmd( int matrix_layout, char jobs, char jobz, char jobf, } #endif /* Query optimal working array(s) size */ - info = LAPACKE_zgedmd_work( matrix_layout, jobs, jobz, jobf, whtsvd, m, n, - x, ldx, y, ldy, k, reig, imeig, z, ldz, res, - b, ldb, w, ldw, s, lds, &work_query, lwork, - &iwork_query, liwork ); + info = LAPACKE_zgedmd_work( matrix_layout, jobs, jobz, jobr, jobf, whtsvd, + m, n, x, ldx, y, ldy, nrnk, tol, k, eigs, z, ldz, + res, b, ldb, w, ldw, s, lds, &zwork_query, lzwork, + &work_query, lwork, &iwork_query, liwork ); if( info != 0 ) { goto exit_level_0; } lwork = LAPACK_Z2INT( work_query ); liwork = iwork_query; + lzwork = LAPACK_Z2INT( zwork_query ); /* Allocate memory for work arrays */ - work = (lapack_complex_double*)LAPACKE_malloc( sizeof(lapack_complex_double) * lwork ); - if( work == NULL ) { + zwork = (lapack_complex_double*)LAPACKE_malloc( sizeof(lapack_complex_double) * lzwork ); + if( zwork == NULL ) { info = LAPACK_WORK_MEMORY_ERROR; goto exit_level_0; } + work = (double*)LAPACKE_malloc( sizeof(double) * lwork ); + if( work == NULL ) { + info = LAPACK_WORK_MEMORY_ERROR; + goto exit_level_1; + } iwork = (lapack_int*)LAPACKE_malloc( sizeof(lapack_int) * liwork ); if( iwork == NULL ) { info = LAPACK_WORK_MEMORY_ERROR; - goto exit_level_1; + goto exit_level_2; } /* Call middle-level interface */ - info = LAPACKE_zgedmd_work( matrix_layout, jobs, jobz, jobf, whtsvd, m, n, - x, ldx, y, ldy, k, reig, imeig, z, ldz, res, - b, ldb, w, ldw, s, lds, work, lwork, iwork, - liwork ); + info = LAPACKE_zgedmd_work( matrix_layout, jobs, jobz, jobr, jobf, whtsvd, + m, n, x, ldx, y, ldy, nrnk, tol, k, eigs, z, ldz, + res, b, ldb, w, ldw, s, lds, zwork, lzwork, + work, lwork, iwork, liwork ); /* Release memory and exit */ LAPACKE_free( iwork ); -exit_level_1: +exit_level_2: LAPACKE_free( work ); +exit_level_1: + LAPACKE_free( zwork ); exit_level_0: if( info == LAPACK_WORK_MEMORY_ERROR ) { LAPACKE_xerbla( "LAPACKE_zgedmd", info ); diff --git a/LAPACKE/src/lapacke_zgedmd_work.c b/LAPACKE/src/lapacke_zgedmd_work.c index 2554411eca..ebacfaa94d 100644 --- a/LAPACKE/src/lapacke_zgedmd_work.c +++ b/LAPACKE/src/lapacke_zgedmd_work.c @@ -33,25 +33,27 @@ #include "lapacke_utils.h" lapack_int LAPACKE_zgedmd_work( int matrix_layout, char jobs, char jobz, - char jobf, lapack_int whtsvd, lapack_int m, - lapack_int n, lapack_complex_double* x, + char jobr, char jobf, lapack_int whtsvd, + lapack_int m, lapack_int n, + lapack_complex_double* x, lapack_int ldx, lapack_complex_double* y, - lapack_int ldy, lapack_int k, - lapack_complex_double* reig, - lapack_complex_double* imeig, lapack_complex_double* z, - lapack_int ldz, lapack_complex_double* res, + lapack_int ldy, lapack_int nrnk, double *tol, lapack_int k, + lapack_complex_double* eigs, lapack_complex_double* z, + lapack_int ldz, double* res, lapack_complex_double* b, lapack_int ldb, lapack_complex_double* w, lapack_int ldw, lapack_complex_double* s, lapack_int lds, - lapack_complex_double* work, lapack_int lwork, + lapack_complex_double* zwork, lapack_int lzwork, + double* work, lapack_int lwork, lapack_int* iwork, lapack_int liwork ) { lapack_int info = 0; if( matrix_layout == LAPACK_COL_MAJOR ) { /* Call LAPACK function and adjust info */ - LAPACK_zgedmd( &jobs, &jobz, &jobf, &whtsvd, &m, &n, x, &ldx, y, &ldy, - &k, reig, imeig, z, &ldz, res, b, &ldb, w, &ldw, s, &lds, - work, &lwork, iwork, &liwork, &info ); + LAPACK_zgedmd( &jobs, &jobz, &jobr, &jobf, &whtsvd, &m, &n, x, &ldx, + y, &ldy, &nrnk, tol, &k, eigs, z, &ldz, res, b, &ldb, w, + &ldw, s, &lds, zwork, &lzwork, work, &lwork, iwork, + &liwork, &info ); if( info < 0 ) { info = info - 1; } @@ -101,9 +103,10 @@ lapack_int LAPACKE_zgedmd_work( int matrix_layout, char jobs, char jobz, } /* Query optimal working array(s) size if requested */ if( lwork == -1 ) { - LAPACK_zgedmd( &jobs, &jobz, &jobf, &whtsvd, &m, &n, x, &ldx, y, &ldy, - &k, reig, imeig, z, &ldz, res, b, &ldb, w, &ldw, s, &lds, - work, &lwork, iwork, &liwork, &info ); + LAPACK_zgedmd( &jobs, &jobz, &jobr, &jobf, &whtsvd, &m, &n, x, + &ldx, y, &ldy, &nrnk, tol, &k, eigs, z, &ldz, res, b, + &ldb, w, &ldw, s, &lds, zwork, &lzwork, work, + &lwork, iwork, &liwork, &info ); return (info < 0) ? (info - 1) : info; } /* Allocate memory for temporary array(s) */ @@ -145,9 +148,10 @@ lapack_int LAPACKE_zgedmd_work( int matrix_layout, char jobs, char jobz, LAPACKE_zge_trans( matrix_layout, m, n, w, ldw, w_t, ldw_t ); LAPACKE_zge_trans( matrix_layout, m, n, s, lds, s_t, lds_t ); /* Call LAPACK function and adjust info */ - LAPACK_zgedmd( &jobs, &jobz, &jobf, &whtsvd, &m, &n, x_t, &ldx_t, y_t, - &ldy_t, &k, reig, imeig, z_t, &ldz_t, res, b_t, &ldb_t, - w_t, &ldw_t, s_t, &lds_t, work, &lwork, iwork, &liwork, &info ); + LAPACK_zgedmd( &jobs, &jobz, &jobr, &jobf, &whtsvd, &m, &n, x_t, + &ldx_t, y_t, &ldy_t, &nrnk, tol, &k, eigs, z_t, &ldz_t, + res, b_t, &ldb_t, w_t, &ldw_t, s_t, &lds_t, zwork, + &lzwork, work, &lwork, iwork, &liwork, &info ); if( info < 0 ) { info = info - 1; } diff --git a/LAPACKE/src/lapacke_zgedmdq.c b/LAPACKE/src/lapacke_zgedmdq.c index 3648ffdf20..dc71db4445 100644 --- a/LAPACKE/src/lapacke_zgedmdq.c +++ b/LAPACKE/src/lapacke_zgedmdq.c @@ -37,20 +37,22 @@ lapack_int LAPACKE_zgedmdq( int matrix_layout, char jobs, char jobz, char jobr, lapack_int m, lapack_int n, lapack_complex_double* f, lapack_int ldf, lapack_complex_double* x, lapack_int ldx, lapack_complex_double* y, - lapack_int ldy, lapack_int nrnk, double tol, - lapack_int k, lapack_complex_double* reig, - lapack_complex_double* imeig, + lapack_int ldy, lapack_int nrnk, double* tol, + lapack_int k, lapack_complex_double* eigs, lapack_complex_double* z, lapack_int ldz, - lapack_complex_double* res, lapack_complex_double* b, + double* res, lapack_complex_double* b, lapack_int ldb, lapack_complex_double* v, lapack_int ldv, lapack_complex_double* s, lapack_int lds) { lapack_int info = 0; lapack_int lwork = -1; lapack_int liwork = -1; - lapack_complex_double* work = NULL; + lapack_int lzwork = -1; + lapack_complex_double* zwork = NULL; + double* work = NULL; lapack_int* iwork = NULL; - lapack_complex_double work_query; + double work_query; + lapack_complex_double zwork_query; lapack_int iwork_query; if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) { LAPACKE_xerbla( "LAPACKE_cgedmdq", -1 ); @@ -85,36 +87,44 @@ lapack_int LAPACKE_zgedmdq( int matrix_layout, char jobs, char jobz, char jobr, /* Query optimal working array(s) size */ info = LAPACKE_zgedmdq_work( matrix_layout, jobs, jobz, jobr, jobq, jobt, jobf, whtsvd, m, n, f, ldf, x, ldx, y, ldy, - nrnk, tol, k, reig, imeig, z, ldz, res, - b, ldb, v, ldv, s, lds, &work_query, lwork, - &iwork_query, liwork ); + nrnk, tol, k, eigs, z, ldz, res, + b, ldb, v, ldv, s, lds, &zwork_query, lzwork, + &work_query, lwork, &iwork_query, liwork ); if( info != 0 ) { goto exit_level_0; } lwork = LAPACK_Z2INT( work_query ); + lzwork = LAPACK_Z2INT( zwork_query ); liwork = iwork_query; /* Allocate memory for work arrays */ - work = (lapack_complex_double*)LAPACKE_malloc( sizeof(lapack_complex_double) * lwork ); - if( work == NULL ) { + zwork = (lapack_complex_double*)LAPACKE_malloc( sizeof(lapack_complex_double) * lzwork ); + if( zwork == NULL ) { info = LAPACK_WORK_MEMORY_ERROR; goto exit_level_0; } + work = (double*)LAPACKE_malloc( sizeof(lapack_complex_double) * lwork ); + if( work == NULL ) { + info = LAPACK_WORK_MEMORY_ERROR; + goto exit_level_1; + } iwork = (lapack_int*)LAPACKE_malloc( sizeof(lapack_int) * liwork ); if( iwork == NULL ) { info = LAPACK_WORK_MEMORY_ERROR; - goto exit_level_1; + goto exit_level_2; } /* Call middle-level interface */ info = LAPACKE_zgedmdq_work( matrix_layout, jobs, jobz, jobr, jobq, jobt, jobf, whtsvd, m, n, f, ldf, x, ldx, y, ldy, - nrnk, tol, k, reig, imeig, z, ldz, res, - b, ldb, v, ldv, s, lds, work, lwork, iwork, - liwork ); + nrnk, tol, k, eigs, z, ldz, res, + b, ldb, v, ldv, s, lds, zwork, lzwork, + work, lwork, iwork, liwork ); /* Release memory and exit */ LAPACKE_free( iwork ); -exit_level_1: +exit_level_2: LAPACKE_free( work ); +exit_level_1: + LAPACKE_free( zwork ); exit_level_0: if( info == LAPACK_WORK_MEMORY_ERROR ) { LAPACKE_xerbla( "LAPACKE_zgedmdq", info ); diff --git a/LAPACKE/src/lapacke_zgedmdq_work.c b/LAPACKE/src/lapacke_zgedmdq_work.c index 9afceba07d..131e4f9ad6 100644 --- a/LAPACKE/src/lapacke_zgedmdq_work.c +++ b/LAPACKE/src/lapacke_zgedmdq_work.c @@ -38,15 +38,15 @@ lapack_int LAPACKE_zgedmdq_work( int matrix_layout, char jobs, char jobz, lapack_complex_double* f, lapack_int ldf, lapack_complex_double* x, lapack_int ldx, lapack_complex_double* y, lapack_int ldy, - lapack_int nrnk, double tol, lapack_int k, - lapack_complex_double* reig, - lapack_complex_double* imeig, + lapack_int nrnk, double* tol, lapack_int k, + lapack_complex_double* eigs, lapack_complex_double* z, - lapack_int ldz, lapack_complex_double* res, + lapack_int ldz, double* res, lapack_complex_double* b, lapack_int ldb, lapack_complex_double* v, lapack_int ldv, lapack_complex_double* s, - lapack_int lds, lapack_complex_double* work, + lapack_int lds, lapack_complex_double* zwork, + lapack_int lzwork, double* work, lapack_int lwork, lapack_int* iwork, lapack_int liwork ) { @@ -54,9 +54,9 @@ lapack_int LAPACKE_zgedmdq_work( int matrix_layout, char jobs, char jobz, if( matrix_layout == LAPACK_COL_MAJOR ) { /* Call LAPACK function and adjust info */ LAPACK_zgedmdq( &jobs, &jobz, &jobr, &jobq, &jobt, &jobf, &whtsvd, &m, - &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, &tol, &k, reig, - imeig, z, &ldz, res, b, &ldb, v, &ldv, s, &lds, - work, &lwork, iwork, &liwork, &info ); + &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, tol, &k, eigs, + z, &ldz, res, b, &ldb, v, &ldv, s, &lds, + zwork, &lzwork, work, &lwork, iwork, &liwork, &info ); if( info < 0 ) { info = info - 1; } @@ -114,9 +114,9 @@ lapack_int LAPACKE_zgedmdq_work( int matrix_layout, char jobs, char jobz, /* Query optimal working array(s) size if requested */ if( lwork == -1 || liwork == -1 ) { LAPACK_zgedmdq( &jobs, &jobz, &jobr, &jobq, &jobt, &jobf, &whtsvd, &m, - &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, &tol, &k, reig, - imeig, z, &ldz, res, b, &ldb, v, &ldv, s, &lds, - work, &lwork, iwork, &liwork, &info ); + &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, tol, &k, eigs, + z, &ldz, res, b, &ldb, v, &ldv, s, &lds, + zwork, &lzwork, work, &lwork, iwork, &liwork, &info ); return (info < 0) ? (info - 1) : info; } /* Allocate memory for temporary array(s) */ @@ -165,9 +165,9 @@ lapack_int LAPACKE_zgedmdq_work( int matrix_layout, char jobs, char jobz, LAPACKE_zge_trans( matrix_layout, m, n, s, lds, s_t, lds_t ); /* Call LAPACK function and adjust info */ LAPACK_zgedmdq( &jobs, &jobz, &jobr, &jobq, &jobt, &jobf, &whtsvd, &m, - &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, &tol, &k, reig, - imeig, z, &ldz, res, b, &ldb, v, &ldv, s, &lds, - work, &lwork, iwork, &liwork, &info ); + &n, f, &ldf, x, &ldx, y, &ldy, &nrnk, tol, &k, eigs, + z, &ldz, res, b, &ldb, v, &ldv, s, &lds, + zwork, &lzwork, work, &lwork, iwork, &liwork, &info ); if( info < 0 ) { info = info - 1; }