1#ifndef LAPACKCONNECTOR_HPP
2#define LAPACKCONNECTOR_HPP
9#include "../complexmatrix.h"
10#include "../global_function.h"
26 void dsygvd_(
const int* itype,
const char* jobz,
const char* uplo,
const int* n,
27 double* a,
const int* lda,
28 const double* b,
const int* ldb,
double* w,
29 double* work,
int* lwork,
30 int* iwork,
int* liwork,
int* info);
32 void chegvd_(
const int* itype,
const char* jobz,
const char* uplo,
const int* n,
33 std::complex<float>* a,
const int* lda,
34 const std::complex<float>* b,
const int* ldb,
float* w,
35 std::complex<float>* work,
int* lwork,
float* rwork,
int* lrwork,
36 int* iwork,
int* liwork,
int* info);
38 void zhegvd_(
const int* itype,
const char* jobz,
const char* uplo,
const int* n,
39 std::complex<double>* a,
const int* lda,
40 const std::complex<double>* b,
const int* ldb,
double* w,
41 std::complex<double>* work,
int* lwork,
double* rwork,
int* lrwork,
42 int* iwork,
int* liwork,
int* info);
44 void dsyevx_(
const char* jobz,
const char* range,
const char* uplo,
const int* n,
45 double* a,
const int* lda,
46 const double* vl,
const double* vu,
const int* il,
const int* iu,
const double* abstol,
47 const int* m,
double* w,
double* z,
const int* ldz,
48 double* work,
const int* lwork,
double* rwork,
int* iwork,
int* ifail,
int* info);
50 void cheevx_(
const char* jobz,
const char* range,
const char* uplo,
const int* n,
51 std::complex<float> *a,
const int* lda,
52 const float* vl,
const float* vu,
const int* il,
const int* iu,
const float* abstol,
53 const int* m,
float* w, std::complex<float> *z,
const int *ldz,
54 std::complex<float> *work,
const int* lwork,
float* rwork,
int* iwork,
int* ifail,
int* info);
56 void zheevx_(
const char* jobz,
const char* range,
const char* uplo,
const int* n,
57 std::complex<double> *a,
const int* lda,
58 const double* vl,
const double* vu,
const int* il,
const int* iu,
const double* abstol,
59 const int* m,
double* w, std::complex<double> *z,
const int *ldz,
60 std::complex<double> *work,
const int* lwork,
double* rwork,
int* iwork,
int* ifail,
int* info);
63 void dsygvx_(
const int* itype,
const char* jobz,
const char* range,
const char* uplo,
64 const int* n,
double* A,
const int* lda,
double* B,
const int* ldb,
65 const double* vl,
const double* vu,
const int* il,
const int* iu,
66 const double* abstol,
const int* m,
double* w,
double* Z,
const int* ldz,
67 double* work,
const int* lwork,
int* iwork,
int* ifail,
int* info);
69 void chegvx_(
const int* itype,
const char* jobz,
const char* range,
const char* uplo,
70 const int* n,std::complex<float> *a,
const int* lda,std::complex<float> *b,
71 const int* ldb,
const float* vl,
const float* vu,
const int* il,
72 const int* iu,
const float* abstol,
const int* m,
float* w,
73 std::complex<float> *z,
const int *ldz,std::complex<float> *work,
const int* lwork,
74 float* rwork,
int* iwork,
int* ifail,
int* info);
76 void zhegvx_(
const int* itype,
const char* jobz,
const char* range,
const char* uplo,
77 const int* n,std::complex<double> *a,
const int* lda,std::complex<double> *b,
78 const int* ldb,
const double* vl,
const double* vu,
const int* il,
79 const int* iu,
const double* abstol,
const int* m,
double* w,
80 std::complex<double> *z,
const int *ldz,std::complex<double> *work,
const int* lwork,
81 double* rwork,
int* iwork,
int* ifail,
int* info);
83 void zhegv_(
const int* itype,
const char* jobz,
const char* uplo,
const int* n,
84 std::complex<double>* a,
const int* lda,std::complex<double>* b,
const int* ldb,
85 double* w,std::complex<double>* work,
int* lwork,
double* rwork,
int* info);
86 void chegv_(
const int* itype,
const char* jobz,
const char* uplo,
const int* n,
87 std::complex<float>* a,
const int* lda,std::complex<float>* b,
const int* ldb,
88 float* w,std::complex<float>* work,
int* lwork,
float* rwork,
int* info);
89 void dsygv_(
const int* itype,
const char* jobz,
const char* uplo,
const int* n,
90 double* a,
const int* lda,
double* b,
const int* ldb,
91 double* w,
double* work,
int* lwork,
int* info);
95 void zheev_(
const char* jobz,
const char* uplo,
const int* n,std::complex<double> *a,
96 const int* lda,
double* w,std::complex<double >* work,
const int* lwork,
97 double* rwork,
int* info);
98 void cheev_(
const char* jobz,
const char* uplo,
const int* n,std::complex<float> *a,
99 const int* lda,
float* w,std::complex<float >* work,
const int* lwork,
100 float* rwork,
int* info);
101 void dsyev_(
const char* jobz,
const char* uplo,
const int* n,
double *a,
102 const int* lda,
double* w,
double* work,
const int* lwork,
int* info);
105 void dgeev_(
const char* jobvl,
const char* jobvr,
const int* n,
double* a,
const int* lda,
106 double* wr,
double* wi,
double* vl,
const int* ldvl,
double* vr,
const int* ldvr,
107 double* work,
const int* lwork,
int* info);
108 void zgeev_(
const char* jobvl,
const char* jobvr,
const int* n, std::complex<double>* a,
const int* lda,
109 std::complex<double>* w, std::complex<double>* vl,
const int* ldvl, std::complex<double>* vr,
const int* ldvr,
110 std::complex<double>* work,
const int* lwork,
double* rwork,
int* info);
113 void dgetri_(
const int* n,
double* a,
const int* lda,
const int* ipiv,
double* work,
const int* lwork,
int* info);
114 void dgetrf_(
const int* m,
const int* n,
double* a,
const int* lda,
int* ipiv,
int* info);
118 void dsytrf_(
const char* uplo,
const int* n,
double * a,
const int* lda,
119 int *ipiv,
double *work,
const int* lwork ,
int *info);
120 void dsytri_(
const char* uplo,
const int* n,
double *a,
const int *lda,
121 int *ipiv,
double * work,
int *info);
125 void spotrf_(
const char*
const uplo,
const int*
const n,
float*
const A,
const int*
const lda,
int*
const info);
126 void dpotrf_(
const char*
const uplo,
const int*
const n,
double*
const A,
const int*
const lda,
int*
const info);
127 void cpotrf_(
const char*
const uplo,
const int*
const n, std::complex<float>*
const A,
const int*
const lda,
int*
const info);
128 void zpotrf_(
const char*
const uplo,
const int*
const n, std::complex<double>*
const A,
const int*
const lda,
int*
const info);
129 void spotri_(
const char*
const uplo,
const int*
const n,
float*
const A,
const int*
const lda,
int*
const info);
130 void dpotri_(
const char*
const uplo,
const int*
const n,
double*
const A,
const int*
const lda,
int*
const info);
131 void cpotri_(
const char*
const uplo,
const int*
const n, std::complex<float>*
const A,
const int*
const lda,
int*
const info);
132 void zpotri_(
const char*
const uplo,
const int*
const n, std::complex<double>*
const A,
const int*
const lda,
int*
const info);
136 void zgetrf_(
const int* m,
const int *n, std::complex<double> *A,
const int *lda,
int *ipiv,
int* info);
137 void zgetri_(
const int* n, std::complex<double>* A,
const int* lda,
const int* ipiv, std::complex<double>* work,
const int* lwork,
int* info);
141 void zherk_(
const char *uplo,
const char *trans,
const int *n,
const int *k,
142 const double *alpha,
const std::complex<double> *A,
const int *lda,
143 const double *beta, std::complex<double> *C,
const int *ldc);
144 void cherk_(
const char* uplo,
const char* trans,
const int* n,
const int* k,
145 const float* alpha,
const std::complex<float>* A,
const int* lda,
146 const float* beta, std::complex<float>* C,
const int* ldc);
150 void dsterf_(
int *n,
double *d,
double *e,
int *info);
153 void dstein_(
int *n,
double* d,
double *e,
int *m,
double *w,
154 int* block,
int* isplit,
double* z,
int *lda,
double *work,
155 int* iwork,
int* ifail,
int *info);
158 void zstein_(
int *n,
double* d,
double *e,
int *m,
double *w,
159 int* block,
int* isplit, std::complex<double>* z,
int *lda,
double *work,
160 int* iwork,
int* ifail,
int *info);
164 void dpotf2_(
char *uplo,
int *n,
double *a,
int *lda,
int *info);
165 void zpotf2_(
char *uplo,
int *n,std::complex<double> *a,
int *lda,
int *info);
169 void dsygs2_(
int *itype,
char *uplo,
int *n,
double *a,
int *lda,
double *b,
int *ldb,
int *info);
170 void zhegs2_(
int *itype,
char *uplo,
int *n, std::complex<double> *a,
int *lda, std::complex<double> *b,
int *ldb,
int *info);
173 void dlacpy_(
char *uplo,
int *m,
int *n,
double* a,
int *lda,
double *b,
int *ldb);
174 void zlacpy_(
char *uplo,
int *m,
int *n, std::complex<double>* a,
int *lda, std::complex<double> *b,
int *ldb);
179 void dlarfg_(
int *n,
double *alpha,
double *x,
int *incx,
double *tau);
180 void zlarfg_(
int *n, std::complex<double> *alpha, std::complex<double> *x,
int *incx, std::complex<double> *tau);
183 void dgtsv_(
int*
N,
int* NRHS,
double* DL,
double* D,
double* DU,
double* B,
int* LDB,
int* INFO);
186 void dsysv_(
const char* uplo,
const int* n,
const int* m,
double * a,
const int* lda,
187 int *ipiv,
double * b,
const int* ldb,
double *work,
const int* lwork ,
int *info);
191#define zhegvx_ zhegvx_i
197 std::complex<double>* a,
199 std::complex<double>* b,
205 const double* abstol,
208 std::complex<double>* z,
210 std::complex<double>* work,
228 std::complex<double>* aux =
new std::complex<double>[lda*n];
229 for (
int i = 0; i < n; ++i)
231 for (
int j = 0; j < lda; ++j)
233 aux[i*lda+j] = a(j,i);
240 std::complex<float>*
transpose(
const std::complex<float>* a,
const int n,
const int lda,
const int nbase_x)
242 std::complex<float>* aux =
new std::complex<float>[lda*n];
243 for (
int i = 0; i < n; ++i)
245 for (
int j = 0; j < lda; ++j)
247 aux[j * n + i] = a[i * nbase_x + j];
254 std::complex<double>*
transpose(
const std::complex<double>* a,
const int n,
const int lda,
const int nbase_x)
256 std::complex<double>* aux =
new std::complex<double>[lda*n];
257 for (
int i = 0; i < n; ++i)
259 for (
int j = 0; j < lda; ++j)
261 aux[j * n + i] = a[i * nbase_x + j];
271 for (
int i = 0; i < n; ++i)
273 for (
int j = 0; j < lda; ++j)
275 a(j, i) = aux[i*lda+j];
282 void transpose(
const std::complex<float>* aux, std::complex<float>* a,
const int n,
const int lda,
const int nbase_x)
284 for (
int i = 0; i < n; ++i)
286 for (
int j = 0; j < lda; ++j)
288 a[j * nbase_x + i] = aux[i * lda + j];
295 void transpose(
const std::complex<double>* aux, std::complex<double>* a,
const int n,
const int lda,
const int nbase_x)
297 for (
int i = 0; i < n; ++i)
299 for (
int j = 0; j < lda; ++j)
301 a[j * nbase_x + i] = aux[i * lda + j];
312 case 'U':
return 'L';
313 case 'L':
return 'U';
314 default:
throw std::invalid_argument(
"uplo must be 'U' or 'L'");
324 case 'N':
return 'C';
325 case 'C':
return 'N';
326 default:
throw std::invalid_argument(
"trans must be 'N' or 'C'");
339 std::complex< double >* work,
346 zheev_(&jobz, &uplo, &n, aux, &lda, w, work, &lwork, rwork, info);
357 zgetrf_( &m, &n, aux, &lda, ipiv, info);
366 zgetri_( &n, aux, &lda, ipiv, work, &lwork, info);
374 void potrf(
const char &uplo,
const int &n,
float*
const A,
const int &lda,
int &info )
377 spotrf_( &uplo_changed, &n, A, &lda, &info );
380 void potrf(
const char &uplo,
const int &n,
double*
const A,
const int &lda,
int &info )
383 dpotrf_( &uplo_changed, &n, A, &lda, &info );
386 void potrf(
const char &uplo,
const int &n, std::complex<float>*
const A,
const int &lda,
int &info )
389 cpotrf_( &uplo_changed, &n, A, &lda, &info );
392 void potrf(
const char &uplo,
const int &n, std::complex<double>*
const A,
const int &lda,
int &info )
395 zpotrf_( &uplo_changed, &n, A, &lda, &info );
401 void potri(
const char &uplo,
const int &n,
float*
const A,
const int &lda,
int &info )
404 spotri_( &uplo_changed, &n, A, &lda, &info);
407 void potri(
const char &uplo,
const int &n,
double*
const A,
const int &lda,
int &info )
410 dpotri_( &uplo_changed, &n, A, &lda, &info);
413 void potri(
const char &uplo,
const int &n, std::complex<float>*
const A,
const int &lda,
int &info )
416 cpotri_( &uplo_changed, &n, A, &lda, &info);
419 void potri(
const char &uplo,
const int &n, std::complex<double>*
const A,
const int &lda,
int &info )
422 zpotri_( &uplo_changed, &n, A, &lda, &info);
429 potrf( uplo, n, A.
c, lda, info );
434 potrf( uplo, n, A.
c, lda, info );
441 potri( uplo, n, A.
c, lda, info);
446 potri( uplo, n, A.
c, lda, info);
453 void herk(
const char uplo,
const char trans,
const int n,
const int k,
454 const double alpha,
const std::complex<double> *A,
const int lda,
455 const double beta, std::complex<double> *C,
const int ldc)
459 zherk_(&uplo_changed, &trans_changed, &n, &k, &alpha, A, &lda, &beta, C, &ldc);
462 void herk(
const char uplo,
const char trans,
const int n,
const int k,
463 const float alpha,
const std::complex<float>* A,
const int lda,
464 const float beta, std::complex<float>* C,
const int ldc)
468 cherk_(&uplo_changed, &trans_changed, &n, &k, &alpha, A, &lda, &beta, C, &ldc);
Definition lapack_connector.h:222
static void potrf(const char &uplo, const int &n, double *const A, const int &lda, int &info)
Definition lapack_connector.h:380
static char change_trans_NC(const char &trans)
Definition lapack_connector.h:320
static void zgetri(int n, ModuleBase::ComplexMatrix &a, int lda, int *ipiv, std::complex< double > *work, int lwork, int *info)
Definition lapack_connector.h:363
static void transpose(const std::complex< float > *aux, std::complex< float > *a, const int n, const int lda, const int nbase_x)
Definition lapack_connector.h:282
static void herk(const char uplo, const char trans, const int n, const int k, const double alpha, const std::complex< double > *A, const int lda, const double beta, std::complex< double > *C, const int ldc)
Definition lapack_connector.h:453
static void potri(const char &uplo, const int &n, std::complex< float > *const A, const int &lda, int &info)
Definition lapack_connector.h:413
static void potri(const char &uplo, const int &n, double *const A, const int &lda, int &info)
Definition lapack_connector.h:407
static void potri(const char &uplo, const int &n, ModuleBase::matrix &A, const int &lda, int &info)
Definition lapack_connector.h:439
static std::complex< double > * transpose(const ModuleBase::ComplexMatrix &a, const int n, const int lda)
Definition lapack_connector.h:226
static void potri(const char &uplo, const int &n, ModuleBase::ComplexMatrix &A, const int &lda, int &info)
Definition lapack_connector.h:444
static std::complex< double > * transpose(const std::complex< double > *a, const int n, const int lda, const int nbase_x)
Definition lapack_connector.h:254
static void zgetrf(int m, int n, ModuleBase::ComplexMatrix &a, const int lda, int *ipiv, int *info)
Definition lapack_connector.h:354
static void transpose(const std::complex< double > *aux, std::complex< double > *a, const int n, const int lda, const int nbase_x)
Definition lapack_connector.h:295
static std::complex< float > * transpose(const std::complex< float > *a, const int n, const int lda, const int nbase_x)
Definition lapack_connector.h:240
static char change_uplo(const char &uplo)
Definition lapack_connector.h:308
static void potrf(const char &uplo, const int &n, float *const A, const int &lda, int &info)
Definition lapack_connector.h:374
static void potri(const char &uplo, const int &n, float *const A, const int &lda, int &info)
Definition lapack_connector.h:401
static void zheev(const char jobz, const char uplo, const int n, ModuleBase::ComplexMatrix &a, const int lda, double *w, std::complex< double > *work, const int lwork, double *rwork, int *info)
Definition lapack_connector.h:333
static void herk(const char uplo, const char trans, const int n, const int k, const float alpha, const std::complex< float > *A, const int lda, const float beta, std::complex< float > *C, const int ldc)
Definition lapack_connector.h:462
static void potrf(const char &uplo, const int &n, std::complex< double > *const A, const int &lda, int &info)
Definition lapack_connector.h:392
static void potrf(const char &uplo, const int &n, ModuleBase::matrix &A, const int &lda, int &info)
Definition lapack_connector.h:427
static void potri(const char &uplo, const int &n, std::complex< double > *const A, const int &lda, int &info)
Definition lapack_connector.h:419
static void potrf(const char &uplo, const int &n, ModuleBase::ComplexMatrix &A, const int &lda, int &info)
Definition lapack_connector.h:432
static void potrf(const char &uplo, const int &n, std::complex< float > *const A, const int &lda, int &info)
Definition lapack_connector.h:386
static void transpose(const std::complex< double > *aux, ModuleBase::ComplexMatrix &a, const int n, const int lda)
Definition lapack_connector.h:269
Definition complexmatrix.h:14
std::complex< double > * c
Definition complexmatrix.h:21
double * c
Definition matrix.h:25
#define N
Definition exp.cpp:24
void zhegvx_i(const int *itype, const char *jobz, const char *range, const char *uplo, const int *n, std::complex< double > *a, const int *lda, std::complex< double > *b, const int *ldb, const double *vl, const double *vu, const int *il, const int *iu, const double *abstol, const int *m, double *w, std::complex< double > *z, const int *ldz, std::complex< double > *work, const int *lwork, double *rwork, int *iwork, int *ifail, int *info)
Definition gather_math_lib_info.cpp:49
void dpotrf_(const char *const uplo, const int *const n, double *const A, const int *const lda, int *const info)
void dgetrf_(const int *m, const int *n, double *a, const int *lda, int *ipiv, int *info)
void cpotri_(const char *const uplo, const int *const n, std::complex< float > *const A, const int *const lda, int *const info)
void zlacpy_(char *uplo, int *m, int *n, std::complex< double > *a, int *lda, std::complex< double > *b, int *ldb)
void zhegs2_(int *itype, char *uplo, int *n, std::complex< double > *a, int *lda, std::complex< double > *b, int *ldb, int *info)
void dsygvx_(const int *itype, const char *jobz, const char *range, const char *uplo, const int *n, double *A, const int *lda, double *B, const int *ldb, const double *vl, const double *vu, const int *il, const int *iu, const double *abstol, const int *m, double *w, double *Z, const int *ldz, double *work, const int *lwork, int *iwork, int *ifail, int *info)
void spotrf_(const char *const uplo, const int *const n, float *const A, const int *const lda, int *const info)
void zhegvx_(const int *itype, const char *jobz, const char *range, const char *uplo, const int *n, std::complex< double > *a, const int *lda, std::complex< double > *b, const int *ldb, const double *vl, const double *vu, const int *il, const int *iu, const double *abstol, const int *m, double *w, std::complex< double > *z, const int *ldz, std::complex< double > *work, const int *lwork, double *rwork, int *iwork, int *ifail, int *info)
void dsyevx_(const char *jobz, const char *range, const char *uplo, const int *n, double *a, const int *lda, const double *vl, const double *vu, const int *il, const int *iu, const double *abstol, const int *m, double *w, double *z, const int *ldz, double *work, const int *lwork, double *rwork, int *iwork, int *ifail, int *info)
void dlacpy_(char *uplo, int *m, int *n, double *a, int *lda, double *b, int *ldb)
void dsysv_(const char *uplo, const int *n, const int *m, double *a, const int *lda, int *ipiv, double *b, const int *ldb, double *work, const int *lwork, int *info)
void zpotrf_(const char *const uplo, const int *const n, std::complex< double > *const A, const int *const lda, int *const info)
void chegv_(const int *itype, const char *jobz, const char *uplo, const int *n, std::complex< float > *a, const int *lda, std::complex< float > *b, const int *ldb, float *w, std::complex< float > *work, int *lwork, float *rwork, int *info)
void zpotf2_(char *uplo, int *n, std::complex< double > *a, int *lda, int *info)
void cherk_(const char *uplo, const char *trans, const int *n, const int *k, const float *alpha, const std::complex< float > *A, const int *lda, const float *beta, std::complex< float > *C, const int *ldc)
void zhegvd_(const int *itype, const char *jobz, const char *uplo, const int *n, std::complex< double > *a, const int *lda, const std::complex< double > *b, const int *ldb, double *w, std::complex< double > *work, int *lwork, double *rwork, int *lrwork, int *iwork, int *liwork, int *info)
void dsygs2_(int *itype, char *uplo, int *n, double *a, int *lda, double *b, int *ldb, int *info)
void dgetri_(const int *n, double *a, const int *lda, const int *ipiv, double *work, const int *lwork, int *info)
void zheevx_(const char *jobz, const char *range, const char *uplo, const int *n, std::complex< double > *a, const int *lda, const double *vl, const double *vu, const int *il, const int *iu, const double *abstol, const int *m, double *w, std::complex< double > *z, const int *ldz, std::complex< double > *work, const int *lwork, double *rwork, int *iwork, int *ifail, int *info)
void zhegv_(const int *itype, const char *jobz, const char *uplo, const int *n, std::complex< double > *a, const int *lda, std::complex< double > *b, const int *ldb, double *w, std::complex< double > *work, int *lwork, double *rwork, int *info)
void dsytri_(const char *uplo, const int *n, double *a, const int *lda, int *ipiv, double *work, int *info)
void dsygvd_(const int *itype, const char *jobz, const char *uplo, const int *n, double *a, const int *lda, const double *b, const int *ldb, double *w, double *work, int *lwork, int *iwork, int *liwork, int *info)
void chegvd_(const int *itype, const char *jobz, const char *uplo, const int *n, std::complex< float > *a, const int *lda, const std::complex< float > *b, const int *ldb, float *w, std::complex< float > *work, int *lwork, float *rwork, int *lrwork, int *iwork, int *liwork, int *info)
void zpotri_(const char *const uplo, const int *const n, std::complex< double > *const A, const int *const lda, int *const info)
void zheev_(const char *jobz, const char *uplo, const int *n, std::complex< double > *a, const int *lda, double *w, std::complex< double > *work, const int *lwork, double *rwork, int *info)
void cheev_(const char *jobz, const char *uplo, const int *n, std::complex< float > *a, const int *lda, float *w, std::complex< float > *work, const int *lwork, float *rwork, int *info)
void dsygv_(const int *itype, const char *jobz, const char *uplo, const int *n, double *a, const int *lda, double *b, const int *ldb, double *w, double *work, int *lwork, int *info)
void dgtsv_(int *N, int *NRHS, double *DL, double *D, double *DU, double *B, int *LDB, int *INFO)
void dpotf2_(char *uplo, int *n, double *a, int *lda, int *info)
void zlarfg_(int *n, std::complex< double > *alpha, std::complex< double > *x, int *incx, std::complex< double > *tau)
void chegvx_(const int *itype, const char *jobz, const char *range, const char *uplo, const int *n, std::complex< float > *a, const int *lda, std::complex< float > *b, const int *ldb, const float *vl, const float *vu, const int *il, const int *iu, const float *abstol, const int *m, float *w, std::complex< float > *z, const int *ldz, std::complex< float > *work, const int *lwork, float *rwork, int *iwork, int *ifail, int *info)
void zgeev_(const char *jobvl, const char *jobvr, const int *n, std::complex< double > *a, const int *lda, std::complex< double > *w, std::complex< double > *vl, const int *ldvl, std::complex< double > *vr, const int *ldvr, std::complex< double > *work, const int *lwork, double *rwork, int *info)
void zstein_(int *n, double *d, double *e, int *m, double *w, int *block, int *isplit, std::complex< double > *z, int *lda, double *work, int *iwork, int *ifail, int *info)
void dpotri_(const char *const uplo, const int *const n, double *const A, const int *const lda, int *const info)
void dlarfg_(int *n, double *alpha, double *x, int *incx, double *tau)
void cheevx_(const char *jobz, const char *range, const char *uplo, const int *n, std::complex< float > *a, const int *lda, const float *vl, const float *vu, const int *il, const int *iu, const float *abstol, const int *m, float *w, std::complex< float > *z, const int *ldz, std::complex< float > *work, const int *lwork, float *rwork, int *iwork, int *ifail, int *info)
void dstein_(int *n, double *d, double *e, int *m, double *w, int *block, int *isplit, double *z, int *lda, double *work, int *iwork, int *ifail, int *info)
void dsytrf_(const char *uplo, const int *n, double *a, const int *lda, int *ipiv, double *work, const int *lwork, int *info)
void cpotrf_(const char *const uplo, const int *const n, std::complex< float > *const A, const int *const lda, int *const info)
void zgetrf_(const int *m, const int *n, std::complex< double > *A, const int *lda, int *ipiv, int *info)
void zherk_(const char *uplo, const char *trans, const int *n, const int *k, const double *alpha, const std::complex< double > *A, const int *lda, const double *beta, std::complex< double > *C, const int *ldc)
void dsyev_(const char *jobz, const char *uplo, const int *n, double *a, const int *lda, double *w, double *work, const int *lwork, int *info)
void dgeev_(const char *jobvl, const char *jobvr, const int *n, double *a, const int *lda, double *wr, double *wi, double *vl, const int *ldvl, double *vr, const int *ldvr, double *work, const int *lwork, int *info)
void spotri_(const char *const uplo, const int *const n, float *const A, const int *const lda, int *const info)
void dsterf_(int *n, double *d, double *e, int *info)
void zgetri_(const int *n, std::complex< double > *A, const int *lda, const int *ipiv, std::complex< double > *work, const int *lwork, int *info)