Skip to content

Commit 62e6bdf

Browse files
Merge pull request #880 from martin-frbg/issue879
Update C prototypes and LAPACKE interfaces for ?GEDMD/?GEDMDQ
2 parents 4174d8d + 914f719 commit 62e6bdf

18 files changed

+452
-311
lines changed

LAPACKE/include/lapack.h

Lines changed: 126 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -3319,104 +3319,162 @@ void LAPACK_zgesdd_base(
33193319
#define LAPACK_zgesdd(...) LAPACK_zgesdd_base(__VA_ARGS__)
33203320
#endif
33213321

3322-
#define LAPACK_cgedmd LAPACK_GLOBAL(cgedmd,CGEDMD)
3323-
void LAPACK_cgedmd(
3324-
char const* jobs, char const* jobz, char const* jobf,
3322+
#define LAPACK_cgedmd_base LAPACK_GLOBAL(cgedmd,CGEDMD)
3323+
void LAPACK_cgedmd_base(
3324+
char const* jobs, char const* jobz, char const* jobr, char const* jobf,
33253325
lapack_int const* whtsvd, lapack_int const* m, lapack_int const* n,
33263326
lapack_complex_float* x, lapack_int const* ldx,
3327-
lapack_complex_float* y, lapack_int const* ldy, lapack_int const* k,
3328-
lapack_complex_float* reig, lapack_complex_float* imeig,
3329-
lapack_complex_float* z, lapack_int const* ldz, lapack_complex_float* res,
3327+
lapack_complex_float* y, lapack_int const* ldy, lapack_int const* nrnk,
3328+
const float* tol, lapack_int* k, lapack_complex_float* eigs,
3329+
lapack_complex_float* z, lapack_int const* ldz, float* res,
33303330
lapack_complex_float* b, lapack_int const* ldb,
33313331
lapack_complex_float* w, lapack_int const* ldw,
33323332
lapack_complex_float* s, lapack_int const* lds,
3333-
lapack_complex_float* work, lapack_int const* lwork,
3333+
lapack_complex_float* zwork, lapack_int const* lzwork,
3334+
float* work, lapack_int const* lwork,
33343335
lapack_int* iwork, lapack_int const* liwork,
3335-
lapack_int* info );
3336+
lapack_int* info
3337+
#ifdef LAPACK_FORTRAN_STRLEN_END
3338+
, size_t, size_t, size_t, size_t
3339+
#endif
3340+
);
3341+
#ifdef LAPACK_FORTRAN_STRLEN_END
3342+
#define LAPACK_cgedmd(...) LAPACK_cgedmd_base(__VA_ARGS__, 1, 1, 1, 1)
3343+
#else
3344+
#define LAPACK_cgedmd(...) LAPACK_cgedmd_base(__VA_ARGS__)
3345+
#endif
3346+
33363347

3337-
#define LAPACK_dgedmd LAPACK_GLOBAL(dgedmd,DGEDMD)
3338-
void LAPACK_dgedmd(
3339-
char const* jobs, char const* jobz, char const* jobf,
3348+
#define LAPACK_dgedmd_base LAPACK_GLOBAL(dgedmd,DGEDMD)
3349+
void LAPACK_dgedmd_base(
3350+
char const* jobs, char const* jobz, char const* jobr, char const* jobf,
33403351
lapack_int const* whtsvd, lapack_int const* m, lapack_int const* n,
33413352
double* x, lapack_int const* ldx,
3342-
double* y, lapack_int const* ldy, lapack_int const* k,
3343-
double* reig, double* imeig,
3353+
double* y, lapack_int const* ldy, lapack_int const* nrnk,
3354+
const double* tol, lapack_int* k, double* reig, double* imeig,
33443355
double* z, lapack_int const* ldz, double* res,
33453356
double* b, lapack_int const* ldb,
33463357
double* w, lapack_int const* ldw,
33473358
double* s, lapack_int const* lds,
33483359
double* work, lapack_int const* lwork,
33493360
lapack_int* iwork, lapack_int const* liwork,
3350-
lapack_int* info );
3361+
lapack_int* info
3362+
#ifdef LAPACK_FORTRAN_STRLEN_END
3363+
, size_t, size_t, size_t, size_t
3364+
#endif
3365+
);
3366+
#ifdef LAPACK_FORTRAN_STRLEN_END
3367+
#define LAPACK_dgedmd(...) LAPACK_dgedmd_base(__VA_ARGS__, 1, 1, 1, 1)
3368+
#else
3369+
#define LAPACK_dgedmd(...) LAPACK_dgedmd_base(__VA_ARGS__)
3370+
#endif
33513371

3352-
#define LAPACK_sgedmd LAPACK_GLOBAL(sgedmd,SGEDMD)
3353-
void LAPACK_sgedmd(
3354-
char const* jobs, char const* jobz, char const* jobf,
3372+
#define LAPACK_sgedmd_base LAPACK_GLOBAL(sgedmd,SGEDMD)
3373+
void LAPACK_sgedmd_base(
3374+
char const* jobs, char const* jobz, char const* jobr, char const* jobf,
33553375
lapack_int const* whtsvd, lapack_int const* m, lapack_int const* n,
33563376
float* x, lapack_int const* ldx,
3357-
float* y, lapack_int const* ldy, lapack_int const* k,
3358-
float* reig, float* imeig,
3377+
float* y, lapack_int const* ldy, lapack_int const* nrnk,
3378+
const float* tol, lapack_int* k, float* reig, float *imeig,
33593379
float* z, lapack_int const* ldz, float* res,
33603380
float* b, lapack_int const* ldb,
33613381
float* w, lapack_int const* ldw,
33623382
float* s, lapack_int const* lds,
33633383
float* work, lapack_int const* lwork,
33643384
lapack_int* iwork, lapack_int const* liwork,
3365-
lapack_int* info );
3385+
lapack_int* info
3386+
#ifdef LAPACK_FORTRAN_STRLEN_END
3387+
, size_t, size_t, size_t, size_t
3388+
#endif
3389+
);
3390+
#ifdef LAPACK_FORTRAN_STRLEN_END
3391+
#define LAPACK_sgedmd(...) LAPACK_sgedmd_base(__VA_ARGS__, 1, 1, 1, 1)
3392+
#else
3393+
#define LAPACK_sgedmd(...) LAPACK_sgedmd_base(__VA_ARGS__)
3394+
#endif
33663395

3367-
#define LAPACK_zgedmd LAPACK_GLOBAL(zgedmd,ZGEDMD)
3368-
void LAPACK_zgedmd(
3369-
char const* jobs, char const* jobz, char const* jobf,
3396+
#define LAPACK_zgedmd_base LAPACK_GLOBAL(zgedmd,ZGEDMD)
3397+
void LAPACK_zgedmd_base(
3398+
char const* jobs, char const* jobz, char const* jobr, char const* jobf,
33703399
lapack_int const* whtsvd, lapack_int const* m, lapack_int const* n,
33713400
lapack_complex_double* x, lapack_int const* ldx,
3372-
lapack_complex_double* y, lapack_int const* ldy, lapack_int const* k,
3373-
lapack_complex_double* reig, lapack_complex_double* imeig,
3374-
lapack_complex_double* z, lapack_int const* ldz, lapack_complex_double* res,
3401+
lapack_complex_double* y, lapack_int const* ldy, lapack_int const* nrnk,
3402+
const double* tol, lapack_int *k, lapack_complex_double* eigs,
3403+
lapack_complex_double* z, lapack_int const* ldz, double* res,
33753404
lapack_complex_double* b, lapack_int const* ldb,
33763405
lapack_complex_double* w, lapack_int const* ldw,
33773406
lapack_complex_double* s, lapack_int const* lds,
3378-
lapack_complex_double* work, lapack_int const* lwork,
3407+
lapack_complex_double* zwork, lapack_int const* lzwork,
3408+
double* rwork, lapack_int const* lrwork,
33793409
lapack_int* iwork, lapack_int const* liwork,
3380-
lapack_int* info );
3410+
lapack_int* info
3411+
#ifdef LAPACK_FORTRAN_STRLEN_END
3412+
, size_t, size_t, size_t, size_t
3413+
#endif
3414+
);
3415+
#ifdef LAPACK_FORTRAN_STRLEN_END
3416+
#define LAPACK_zgedmd(...) LAPACK_zgedmd_base(__VA_ARGS__, 1, 1, 1, 1)
3417+
#else
3418+
#define LAPACK_zgedmd(...) LAPACK_zgedmd_base(__VA_ARGS__)
3419+
#endif
33813420

3382-
#define LAPACK_cgedmdq LAPACK_GLOBAL(cgedmdq,CGEDMDQ)
3383-
void LAPACK_cgedmdq(
3421+
#define LAPACK_cgedmdq_base LAPACK_GLOBAL(cgedmdq,CGEDMDQ)
3422+
void LAPACK_cgedmdq_base(
33843423
char const* jobs, char const* jobz, char const* jobr, char const* jobq,
33853424
char const* jobt, char const* jobf, lapack_int const* whtsvd,
33863425
lapack_int const* m, lapack_int const* n,
33873426
lapack_complex_float* f, lapack_int const* ldf,
33883427
lapack_complex_float* x, lapack_int const* ldx,
33893428
lapack_complex_float* y, lapack_int const* ldy, lapack_int const* nrnk,
33903429
float const* tol, lapack_int const* k,
3391-
lapack_complex_float* reig, lapack_complex_float* imeig,
3392-
lapack_complex_float* z, lapack_int const* ldz, lapack_complex_float* res,
3430+
lapack_complex_float* eigs,
3431+
lapack_complex_float* z, lapack_int const* ldz, float* res,
33933432
lapack_complex_float* b, lapack_int const* ldb,
33943433
lapack_complex_float* v, lapack_int const* ldv,
33953434
lapack_complex_float* s, lapack_int const* lds,
3396-
lapack_complex_float* work, lapack_int const* lwork,
3435+
lapack_complex_float* zwork, lapack_int const* lzwork,
3436+
float* work, lapack_int const* lwork,
33973437
lapack_int* iwork, lapack_int const* liwork,
3398-
lapack_int* info );
3438+
lapack_int* info
3439+
#ifdef LAPACK_FORTRAN_STRLEN_END
3440+
, size_t, size_t, size_t, size_t, size_t, size_t
3441+
#endif
3442+
);
3443+
#ifdef LAPACK_FORTRAN_STRLEN_END
3444+
#define LAPACK_cgedmdq(...) LAPACK_cgedmdq_base(__VA_ARGS__, 1, 1, 1, 1, 1, 1)
3445+
#else
3446+
#define LAPACK_cgedmdq(...) LAPACK_cgedmdq_base(__VA_ARGS__)
3447+
#endif
33993448

3400-
#define LAPACK_dgedmdq LAPACK_GLOBAL(dgedmdq,DGEDMDQ)
3401-
void LAPACK_dgedmdq(
3449+
#define LAPACK_dgedmdq_base LAPACK_GLOBAL(dgedmdq,DGEDMDQ)
3450+
void LAPACK_dgedmdq_base(
34023451
char const* jobs, char const* jobz, char const* jobr, char const* jobq,
34033452
char const* jobt, char const* jobf, lapack_int const* whtsvd,
34043453
lapack_int const* m, lapack_int const* n,
34053454
double* f, lapack_int const* ldf,
34063455
double* x, lapack_int const* ldx,
34073456
double* y, lapack_int const* ldy, lapack_int const* nrnk,
3408-
double const* tol, lapack_int const* k,
3409-
double* reig, double* imeig,
3457+
double const* tol, lapack_int* k,
3458+
double* reig, double *imeig,
34103459
double* z, lapack_int const* ldz, double* res,
34113460
double* b, lapack_int const* ldb,
34123461
double* v, lapack_int const* ldv,
34133462
double* s, lapack_int const* lds,
34143463
double* work, lapack_int const* lwork,
34153464
lapack_int* iwork, lapack_int const* liwork,
3416-
lapack_int* info );
3465+
lapack_int* info
3466+
#ifdef LAPACK_FORTRAN_STRLEN_END
3467+
, size_t, size_t, size_t, size_t, size_t, size_t
3468+
#endif
3469+
);
3470+
#ifdef LAPACK_FORTRAN_STRLEN_END
3471+
#define LAPACK_dgedmdq(...) LAPACK_dgedmdq_base(__VA_ARGS__, 1, 1, 1, 1, 1, 1)
3472+
#else
3473+
#define LAPACK_dgedmdq(...) LAPACK_dgedmdq_base(__VA_ARGS__)
3474+
#endif
34173475

3418-
#define LAPACK_sgedmdq LAPACK_GLOBAL(sgedmdq,SGEDMDQ)
3419-
void LAPACK_sgedmdq(
3476+
#define LAPACK_sgedmdq_base LAPACK_GLOBAL(sgedmdq,SGEDMDQ)
3477+
void LAPACK_sgedmdq_base(
34203478
char const* jobs, char const* jobz, char const* jobr, char const* jobq,
34213479
char const* jobt, char const* jobf, lapack_int const* whtsvd,
34223480
lapack_int const* m, lapack_int const* n,
@@ -3431,25 +3489,45 @@ void LAPACK_sgedmdq(
34313489
float* s, lapack_int const* lds,
34323490
float* work, lapack_int const* lwork,
34333491
lapack_int* iwork, lapack_int const* liwork,
3434-
lapack_int* info );
3492+
lapack_int* info
3493+
#ifdef LAPACK_FORTRAN_STRLEN_END
3494+
, size_t, size_t, size_t, size_t, size_t, size_t
3495+
#endif
3496+
);
3497+
#ifdef LAPACK_FORTRAN_STRLEN_END
3498+
#define LAPACK_sgedmdq(...) LAPACK_sgedmdq_base(__VA_ARGS__, 1, 1, 1, 1, 1, 1)
3499+
#else
3500+
#define LAPACK_sgedmdq(...) LAPACK_sgedmdq_base(__VA_ARGS__)
3501+
#endif
34353502

3436-
#define LAPACK_zgedmdq LAPACK_GLOBAL(zgedmdq,ZGEDMDQ)
3437-
void LAPACK_zgedmdq(
3503+
#define LAPACK_zgedmdq_base LAPACK_GLOBAL(zgedmdq,ZGEDMDQ)
3504+
void LAPACK_zgedmdq_base(
34383505
char const* jobs, char const* jobz, char const* jobr, char const* jobq,
34393506
char const* jobt, char const* jobf, lapack_int const* whtsvd,
34403507
lapack_int const* m, lapack_int const* n,
34413508
lapack_complex_double* f, lapack_int const* ldf,
34423509
lapack_complex_double* x, lapack_int const* ldx,
34433510
lapack_complex_double* y, lapack_int const* ldy, lapack_int const* nrnk,
34443511
double const* tol, lapack_int const* k,
3445-
lapack_complex_double* reig, lapack_complex_double* imeig,
3446-
lapack_complex_double* z, lapack_int const* ldz, lapack_complex_double* res,
3512+
lapack_complex_double* eigs,
3513+
lapack_complex_double* z, lapack_int const* ldz, double* res,
34473514
lapack_complex_double* b, lapack_int const* ldb,
34483515
lapack_complex_double* v, lapack_int const* ldv,
34493516
lapack_complex_double* s, lapack_int const* lds,
3450-
lapack_complex_double* work, lapack_int const* lwork,
3517+
lapack_complex_double* zwork, lapack_int const* lzwork,
3518+
double* work, lapack_int const* lwork,
34513519
lapack_int* iwork, lapack_int const* liwork,
3452-
lapack_int* info );
3520+
lapack_int* info
3521+
3522+
#ifdef LAPACK_FORTRAN_STRLEN_END
3523+
, size_t, size_t, size_t, size_t, size_t, size_t
3524+
#endif
3525+
);
3526+
#ifdef LAPACK_FORTRAN_STRLEN_END
3527+
#define LAPACK_zgedmdq(...) LAPACK_zgedmdq_base(__VA_ARGS__, 1, 1, 1, 1, 1, 1)
3528+
#else
3529+
#define LAPACK_zgedmdq(...) LAPACK_zgedmdq_base(__VA_ARGS__)
3530+
#endif
34533531

34543532
#define LAPACK_cgesv LAPACK_GLOBAL(cgesv,CGESV)
34553533
void LAPACK_cgesv(

0 commit comments

Comments
 (0)