16 #ifndef OHMMS_BLAS_FUNCTIONDEFS_H 17 #define OHMMS_BLAS_FUNCTIONDEFS_H 29 #define scnrm2 scnrm2_ 30 #define dznrm2 dznrm2_ 39 #define csscal csscal_ 40 #define zdscal zdscal_ 53 #define dsyr2k dsyr2k_ 54 #define dgetrf dgetrf_ 55 #define dgetri dgetri_ 56 #define sgetrf sgetrf_ 57 #define sgetri sgetri_ 58 #define zgetrf zgetrf_ 59 #define zgetri zgetri_ 60 #define cgetrf cgetrf_ 61 #define cgetri cgetri_ 62 #define dgesvd dgesvd_ 63 #define sgesvd sgesvd_ 64 #define cgesvd cgesvd_ 65 #define zgesvd zgesvd_ 77 #define dgeqrf dgeqrf_ 78 #define dormqr dormqr_ 79 #define dgghrd dgghrd_ 80 #define dhgeqz dhgeqz_ 81 #define dtgexc dtgexc_ 82 #define dtgevc dtgevc_ 84 #define dsyevr dsyevr_ 86 #define zheevr zheevr_ 87 #define ssyevr ssyevr_ 88 #define cheevr cheevr_ 90 #define zhegvx zhegvx_ 91 #define zgeqrf zgeqrf_ 92 #define zungqr zungqr_ 94 #define cgeqrf cgeqrf_ 95 #define sgeqrf sgeqrf_ 96 #define dorgqr dorgqr_ 97 #define sorgqr sorgqr_ 98 #define cungqr cungqr_ 99 #define zgelqf zgelqf_ 100 #define dgelqf dgelqf_ 101 #define cgelqf cgelqf_ 102 #define sgelqf sgelqf_ 103 #define dorglq dorglq_ 104 #define sorglq sorglq_ 105 #define zunglq zunglq_ 106 #define cunglq cunglq_ 108 #define spotrf spotrf_ 109 #define cpotrf cpotrf_ 110 #define dpotrf dpotrf_ 111 #define zpotrf zpotrf_ 118 void saxpy(
const int&
n,
const float& da,
const float* dx,
const int& incx,
float* dy,
const int& incy);
121 const std::complex<float>& da,
122 const std::complex<float>* dx,
124 std::complex<float>* dy,
127 void daxpy(
const int&
n,
const double& da,
const double* dx,
const int& incx,
double* dy,
const int& incy);
130 const std::complex<double>& da,
131 const std::complex<double>* dx,
133 std::complex<double>* dy,
137 float snrm2(
const int&
n,
const float* dx,
const int& incx);
138 float scnrm2(
const int&
n,
const std::complex<float>* dx,
const int& incx);
139 double dnrm2(
const int&
n,
const double* dx,
const int& incx);
140 double dznrm2(
const int&
n,
const std::complex<double>* dx,
const int& incx);
143 void sscal(
const int&
n,
const float&,
float* x,
const int&);
144 void cscal(
const int&
n,
const std::complex<float>&, std::complex<float>* x,
const int&);
145 void dscal(
const int&
n,
const double&,
double* x,
const int&);
146 void zscal(
const int&
n,
const std::complex<double>&, std::complex<double>* x,
const int&);
147 void csscal(
const int&
n,
const float&, std::complex<float>* x,
const int&);
148 void zdscal(
const int&
n,
const double&, std::complex<double>* x,
const int&);
150 void dsymv(
const char& uplo,
161 void ssymv(
const char& uplo,
172 void zsymv(
const char& uplo,
174 const std::complex<double>& alpha,
175 std::complex<double>* a,
177 std::complex<double>* x,
179 const std::complex<double>& beta,
180 std::complex<double>* y,
183 void csymv(
const char& uplo,
185 const std::complex<float>& alpha,
186 std::complex<float>* a,
188 std::complex<float>* x,
190 const std::complex<float>& beta,
191 std::complex<float>* y,
194 void zcopy(
const int&
n,
const std::complex<double>* x,
const int& incx, std::complex<double>* y,
const int& incy);
195 void dcopy(
const int&
n,
const double*,
const int&,
double*,
const int&);
211 void dsymm(
const char&,
224 void dgemm(
const char&,
238 void sgemm(
const char&,
252 void zgemm(
const char&,
257 const std::complex<double>&,
258 const std::complex<double>*,
260 const std::complex<double>*,
262 const std::complex<double>&,
263 std::complex<double>*,
266 void cgemm(
const char&,
271 const std::complex<float>&,
272 const std::complex<float>*,
274 const std::complex<float>*,
276 const std::complex<float>&,
277 std::complex<float>*,
280 void dgemv(
const char& trans,
292 void sgemv(
const char& trans,
304 void zgemv(
const char& trans,
307 const std::complex<double>& alpha,
308 const std::complex<double>* amat,
310 const std::complex<double>* bv,
312 const std::complex<double>& beta,
313 std::complex<double>* cv,
316 void cgemv(
const char& trans,
319 const std::complex<float>& alpha,
320 const std::complex<float>* amat,
322 const std::complex<float>* bv,
324 const std::complex<float>& beta,
325 std::complex<float>* cv,
328 void dsyrk(
const char&,
339 void dgetrf(
const int&
n,
const int&
m,
double* a,
const int& n0,
int* piv,
int& st);
341 void sgetrf(
const int&
n,
const int&
m,
float* a,
const int& n0,
int* piv,
int& st);
343 void zgetrf(
const int&
n,
const int&
m, std::complex<double>* a,
const int& n0,
int* piv,
int& st);
345 void cgetrf(
const int&
n,
const int&
m, std::complex<float>* a,
const int& n0,
int* piv,
int& st);
347 void dgetri(
const int&
n,
double* a,
const int& n0,
int const* piv,
double* work,
const int&,
int& st);
349 void sgetri(
const int&
n,
float* a,
const int& n0,
int const* piv,
float* work,
const int&,
int& st);
352 std::complex<double>* a,
355 std::complex<double>* work,
360 std::complex<float>* a,
363 std::complex<float>* work,
367 void dgesvd(
const char& JOBU,
382 void sgesvd(
const char& JOBU,
397 void zgesvd(
const char& JOBU,
401 std::complex<double>*
A,
404 std::complex<double>* U,
406 std::complex<double>* VT,
408 std::complex<double>* work,
413 void cgesvd(
const char& JOBU,
417 std::complex<float>*
A,
420 std::complex<float>* U,
422 std::complex<float>* VT,
424 std::complex<float>* work,
429 void dgeev(
char* JOBVL,
444 void sgeev(
char* JOBVL,
459 void zgeev(
char* JOBVL,
462 std::complex<double>*
A,
464 std::complex<double>* ALPHA,
465 std::complex<double>* VL,
467 std::complex<double>* VR,
469 std::complex<double>* WORK,
474 void cgeev(
char* JOBVL,
477 std::complex<float>*
A,
479 std::complex<float>* ALPHA,
480 std::complex<float>* VL,
482 std::complex<float>* VR,
484 std::complex<float>* WORK,
489 void dggev(
char* JOBVL,
507 void sggev(
char* JOBVL,
551 std::complex<float>*
A,
560 std::complex<float>* Z,
563 std::complex<float>* WORK,
593 void cheev(
char& JOBZ,
596 std::complex<float>*
A,
599 std::complex<float>* WORK,
604 void zheev(
char& JOBZ,
607 std::complex<double>*
A,
610 std::complex<double>* WORK,
619 std::complex<double>*
A,
628 std::complex<double>* Z,
631 std::complex<double>* WORK,
644 std::complex<double>*
A,
646 std::complex<double>*
B,
655 std::complex<double>* Z,
657 std::complex<double>* WORK,
666 std::complex<double>*
A,
668 std::complex<double>* TAU,
669 std::complex<double>* WORK,
675 std::complex<float>*
A,
677 std::complex<float>* TAU,
678 std::complex<float>* WORK,
704 std::complex<double>*
A,
706 std::complex<double>* TAU,
707 std::complex<double>* WORK,
714 std::complex<float>*
A,
716 std::complex<float>* TAU,
717 std::complex<float>* WORK,
743 std::complex<double>*
A,
745 std::complex<double>* TAU,
746 std::complex<double>* WORK,
752 std::complex<float>*
A,
754 std::complex<float>* TAU,
755 std::complex<float>* WORK,
781 std::complex<double>*
A,
783 std::complex<double>* TAU,
784 std::complex<double>* WORK,
791 std::complex<float>*
A,
793 std::complex<float>* TAU,
794 std::complex<float>* WORK,
819 void dger(
const int*
m,
829 void sger(
const int*
m,
841 const std::complex<double>* alpha,
842 const std::complex<double>* x,
844 const std::complex<double>* y,
846 std::complex<double>* a,
851 const std::complex<float>* alpha,
852 const std::complex<float>* x,
854 const std::complex<float>* y,
856 std::complex<float>* a,
859 void dormqr(
const char* SIDE,
873 void dgghrd(
const char* COMPQ,
888 void dhgeqz(
const char* JOB,
909 void dtgexc(
const bool* WANTQ,
926 void dtgevc(
const char* SIDE,
943 void spotrf(
const char&
UPLO,
const int&
N,
float*
A,
const int& LDA,
int& INFO);
944 void dpotrf(
const char&
UPLO,
const int&
N,
double*
A,
const int& LDA,
int& INFO);
945 void cpotrf(
const char&
UPLO,
const int&
N, std::complex<float>*
A,
const int& LDA,
int& INFO);
946 void zpotrf(
const char&
UPLO,
const int&
N, std::complex<double>*
A,
const int& LDA,
int& INFO);
void zungqr(const int &M, const int &N, const int &K, std::complex< double > *A, const int &LDA, std::complex< double > *TAU, std::complex< double > *WORK, const int &LWORK, int &INFO)
void zgemm(const char &, const char &, const int &, const int &, const int &, const std::complex< double > &, const std::complex< double > *, const int &, const std::complex< double > *, const int &, const std::complex< double > &, std::complex< double > *, const int &)
void sgemm(const char &, const char &, const int &, const int &, const int &, const float &, const float *, const int &, const float *, const int &, const float &, float *, const int &)
void ssymv(const char &uplo, const int &n, const float &alpha, const float &a, const int &lda, const float *x, const int &incx, const float &beta, float *y, const int &incy)
void zheev(char &JOBZ, char &UPLO, int &N, std::complex< double > *A, int &LDA, double *W, std::complex< double > *WORK, int &LWORK, double *RWORK, int &INFO)
void zgeru(const int *m, const int *n, const std::complex< double > *alpha, const std::complex< double > *x, const int *incx, const std::complex< double > *y, const int *incy, std::complex< double > *a, const int *lda)
void zcopy(const int &n, const std::complex< double > *x, const int &incx, std::complex< double > *y, const int &incy)
double dnrm2(const int &n, const double *dx, const int &incx)
void saxpy(const int &n, const float &da, const float *dx, const int &incx, float *dy, const int &incy)
void cscal(const int &n, const std::complex< float > &, std::complex< float > *x, const int &)
void dorgqr(const int &M, const int &N, const int &K, double *A, const int &LDA, double *TAU, double *WORK, const int &LWORK, int &INFO)
void zdscal(const int &n, const double &, std::complex< double > *x, const int &)
void sgelqf(const int &M, const int &N, float *A, const int &LDA, float *TAU, float *WORK, const int &LWORK, int &INFO)
void cgetri(const int &n, std::complex< float > *a, const int &n0, int const *piv, std::complex< float > *work, const int &, int &st)
void csymv(const char &uplo, const int &n, const std::complex< float > &alpha, std::complex< float > *a, const int &lda, std::complex< float > *x, const int &incx, const std::complex< float > &beta, std::complex< float > *y, const int &incy)
void sgeqrf(const int &M, const int &N, float *A, const int &LDA, float *TAU, float *WORK, const int &LWORK, int &INFO)
void cgeru(const int *m, const int *n, const std::complex< float > *alpha, const std::complex< float > *x, const int *incx, const std::complex< float > *y, const int *incy, std::complex< float > *a, const int *lda)
void dgghrd(const char *COMPQ, const char *COMPZ, const int *N, const int *ILO, const int *IHI, double *A, const int *LDA, double *B, const int *LDB, double *Q, const int *LDQ, double *Z, const int *LDZ, int *INFO)
void dpotrf(const char &UPLO, const int &N, double *A, const int &LDA, int &INFO)
void dormqr(const char *SIDE, const char *TRANS, const int *M, const int *N, const int *K, const double *A, const int *LDA, const double *TAU, double *C, const int *LDC, double *WORK, int *LWORK, int *INFO)
void dgeqrf(const int &M, const int &N, double *A, const int &LDA, double *TAU, double *WORK, const int &LWORK, int &INFO)
void dtgevc(const char *SIDE, const char *HOWMNY, const bool *SELECT, const int *N, double *S, const int *LDS, double *P, const int *LDP, double *VL, const int *LDVL, double *VR, const int *LDVR, const int *MM, int *M, double *WORK, int *INFO)
void dgesvd(const char &JOBU, const char &JOBVT, const int &M, const int &N, double *A, const int &LDA, double *S, double *U, const int &LDU, double *VT, const int &LDVT, double *work, const int &LWORK, int &INFO)
void zgesvd(const char &JOBU, const char &JOBVT, const int &M, const int &N, std::complex< double > *A, const int &LDA, double *S, std::complex< double > *U, const int &LDU, std::complex< double > *VT, const int &LDVT, std::complex< double > *work, const int &LWORK, double *RWORK, int &INFO)
void zsymv(const char &uplo, const int &n, const std::complex< double > &alpha, std::complex< double > *a, const int &lda, std::complex< double > *x, const int &incx, const std::complex< double > &beta, std::complex< double > *y, const int &incy)
void dsymm(const char &, const char &, const int &, const int &, const double &, const double *A, const int &lda, const double *B, const int &ldb, const double &beta, double *C, const int &ldc)
void dgemm(const char &, const char &, const int &, const int &, const int &, const double &, const double *, const int &, const double *, const int &, const double &, double *, const int &)
void dgelqf(const int &M, const int &N, double *A, const int &LDA, double *TAU, double *WORK, const int &LWORK, int &INFO)
void zgeqrf(const int &M, const int &N, std::complex< double > *A, const int &LDA, std::complex< double > *TAU, std::complex< double > *WORK, const int &LWORK, int &INFO)
void sorglq(const int &M, const int &N, const int &K, float *A, const int &LDA, float *TAU, float *WORK, const int &LWORK, int &INFO)
void dorglq(const int &M, const int &N, const int &K, double *A, const int &LDA, double *TAU, double *WORK, const int &LWORK, int &INFO)
void cgeev(char *JOBVL, char *JOBVR, int *N, std::complex< float > *A, int *LDA, std::complex< float > *ALPHA, std::complex< float > *VL, int *LDVL, std::complex< float > *VR, int *LDVR, std::complex< float > *WORK, int *LWORK, float *RWORK, int *INFO)
void dscal(const int &n, const double &, double *x, const int &)
void zaxpy(const int &n, const std::complex< double > &da, const std::complex< double > *dx, const int &incx, std::complex< double > *dy, const int &incy)
void zgemv(const char &trans, const int &nr, const int &nc, const std::complex< double > &alpha, const std::complex< double > *amat, const int &lda, const std::complex< double > *bv, const int &incx, const std::complex< double > &beta, std::complex< double > *cv, const int &incy)
void sscal(const int &n, const float &, float *x, const int &)
void dggev(char *JOBVL, char *JOBVR, int *N, double *A, int *LDA, double *B, int *LDB, double *ALPHAR, double *ALPHAI, double *BETA, double *VL, int *LDVL, double *VR, int *LDVR, double *WORK, int *LWORK, int *INFO)
void cgelqf(const int &M, const int &N, std::complex< float > *A, const int &LDA, std::complex< float > *TAU, std::complex< float > *WORK, const int &LWORK, int &INFO)
void sorgqr(const int &M, const int &N, const int &K, float *A, const int &LDA, float *TAU, float *WORK, const int &LWORK, int &INFO)
void zheevr(char &JOBZ, char &RANGE, char &UPLO, int &N, std::complex< double > *A, int &LDA, double &VL, double &VU, int &IL, int &IU, double &ABSTOL, int &M, double *W, std::complex< double > *Z, int &LDZ, int *ISUPPZ, std::complex< double > *WORK, int &LWORK, double *RWORK, int &LRWORK, int *IWORK, int &LIWORK, int &INFO)
void sgetri(const int &n, float *a, const int &n0, int const *piv, float *work, const int &, int &st)
void sgeev(char *JOBVL, char *JOBVR, int *N, float *A, int *LDA, float *ALPHAR, float *ALPHAI, float *VL, int *LDVL, float *VR, int *LDVR, float *WORK, int *LWORK, int *INFO)
void dger(const int *m, const int *n, const double *alpha, const double *x, const int *incx, const double *y, const int *incy, double *a, const int *lda)
void ssyevr(char &JOBZ, char &RANGE, char &UPLO, int &N, float *A, int &LDA, float &VL, float &VU, int &IL, int &IU, float &ABSTOL, int &M, float *W, float *Z, int &LDZ, int *ISUPPZ, float *WORK, int &LWORK, int *IWORK, int &LIWORK, int &INFO)
void dgetrf(const int &n, const int &m, double *a, const int &n0, int *piv, int &st)
void zgeev(char *JOBVL, char *JOBVR, int *N, std::complex< double > *A, int *LDA, std::complex< double > *ALPHA, std::complex< double > *VL, int *LDVL, std::complex< double > *VR, int *LDVR, std::complex< double > *WORK, int *LWORK, double *RWORK, int *INFO)
void dhgeqz(const char *JOB, const char *COMPQ, const char *COMPZ, const int *N, const int *ILO, const int *IHI, double *H, const int *LDH, double *T, const int *LDT, double *ALPHAR, double *ALPHAI, double *BETA, double *Q, const int *LDQ, double *Z, const int *LDZ, double *WORK, int *LWORK, int *INFO)
void sggev(char *JOBVL, char *JOBVR, int *N, float *A, int *LDA, float *B, int *LDB, float *ALPHAR, float *ALPHAI, float *BETA, float *VL, int *LDVL, float *VR, int *LDVR, float *WORK, int *LWORK, int *INFO)
void dcopy(const int &n, const double *, const int &, double *, const int &)
void cgemm(const char &, const char &, const int &, const int &, const int &, const std::complex< float > &, const std::complex< float > *, const int &, const std::complex< float > *, const int &, const std::complex< float > &, std::complex< float > *, const int &)
void cgetrf(const int &n, const int &m, std::complex< float > *a, const int &n0, int *piv, int &st)
void zgetri(const int &n, std::complex< double > *a, const int &n0, int const *piv, std::complex< double > *work, const int &, int &st)
float scnrm2(const int &n, const std::complex< float > *dx, const int &incx)
void sgetrf(const int &n, const int &m, float *a, const int &n0, int *piv, int &st)
void zpotrf(const char &UPLO, const int &N, std::complex< double > *A, const int &LDA, int &INFO)
void cgemv(const char &trans, const int &nr, const int &nc, const std::complex< float > &alpha, const std::complex< float > *amat, const int &lda, const std::complex< float > *bv, const int &incx, const std::complex< float > &beta, std::complex< float > *cv, const int &incy)
void cgesvd(const char &JOBU, const char &JOBVT, const int &M, const int &N, std::complex< float > *A, const int &LDA, float *S, std::complex< float > *U, const int &LDU, std::complex< float > *VT, const int &LDVT, std::complex< float > *work, const int &LWORK, float *RWORK, int &INFO)
void cunglq(const int &M, const int &N, const int &K, std::complex< float > *A, const int &LDA, std::complex< float > *TAU, std::complex< float > *WORK, const int &LWORK, int &INFO)
void dsyr2k(const char &, const char &, const int &, const int &, const double &, const double *, const int &, const double *, const int &, const double &, double *, const int &)
double dznrm2(const int &n, const std::complex< double > *dx, const int &incx)
void caxpy(const int &n, const std::complex< float > &da, const std::complex< float > *dx, const int &incx, std::complex< float > *dy, const int &incy)
void cheevr(char &JOBZ, char &RANGE, char &UPLO, int &N, std::complex< float > *A, int &LDA, float &VL, float &VU, int &IL, int &IU, float &ABSTOL, int &M, float *W, std::complex< float > *Z, int &LDZ, int *ISUPPZ, std::complex< float > *WORK, int &LWORK, float *RWORK, int &LRWORK, int *IWORK, int &LIWORK, int &INFO)
void cungqr(const int &M, const int &N, const int &K, std::complex< float > *A, const int &LDA, std::complex< float > *TAU, std::complex< float > *WORK, const int &LWORK, int &INFO)
float snrm2(const int &n, const float *dx, const int &incx)
void cpotrf(const char &UPLO, const int &N, std::complex< float > *A, const int &LDA, int &INFO)
void sger(const int *m, const int *n, const float *alpha, const float *x, const int *incx, const float *y, const int *incy, float *a, const int *lda)
void spotrf(const char &UPLO, const int &N, float *A, const int &LDA, int &INFO)
void zgelqf(const int &M, const int &N, std::complex< double > *A, const int &LDA, std::complex< double > *TAU, std::complex< double > *WORK, const int &LWORK, int &INFO)
void csscal(const int &n, const float &, std::complex< float > *x, const int &)
void dsyrk(const char &, const char &, const int &, const int &, const double &, const double *, const int &, const double &, double *, const int &)
void sgesvd(const char &JOBU, const char &JOBVT, const int &M, const int &N, float *A, const int &LDA, float *S, float *U, const int &LDU, float *VT, const int &LDVT, float *work, const int &LWORK, int &INFO)
void zscal(const int &n, const std::complex< double > &, std::complex< double > *x, const int &)
void zunglq(const int &M, const int &N, const int &K, std::complex< double > *A, const int &LDA, std::complex< double > *TAU, std::complex< double > *WORK, const int &LWORK, int &INFO)
void dtgexc(const bool *WANTQ, const bool *WANTZ, const int *N, double *A, const int *LDA, double *B, const int *LDB, double *Q, const int *LDQ, double *Z, const int *LDZ, int *IFST, int *ILST, double *WORK, int *LWORK, int *INFO)
void daxpy(const int &n, const double &da, const double *dx, const int &incx, double *dy, const int &incy)
void dgeev(char *JOBVL, char *JOBVR, int *N, double *A, int *LDA, double *ALPHAR, double *ALPHAI, double *VL, int *LDVL, double *VR, int *LDVR, double *WORK, int *LWORK, int *INFO)
double B(double x, int k, int i, const std::vector< double > &t)
void dsymv(const char &uplo, const int &n, const double &alpha, const double &a, const int &lda, const double *x, const int &incx, const double &beta, double *y, const int &incy)
void cgeqrf(const int &M, const int &N, std::complex< float > *A, const int &LDA, std::complex< float > *TAU, std::complex< float > *WORK, const int &LWORK, int &INFO)
void dgemv(const char &trans, const int &nr, const int &nc, const double &alpha, const double *amat, const int &lda, const double *bv, const int &incx, const double &beta, double *cv, const int &incy)
void dsyevr(char &JOBZ, char &RANGE, char &UPLO, int &N, double *A, int &LDA, double &VL, double &VU, int &IL, int &IU, double &ABSTOL, int &M, double *W, double *Z, int &LDZ, int *ISUPPZ, double *WORK, int &LWORK, int *IWORK, int &LIWORK, int &INFO)
void zhegvx(int &, char &JOBZ, char &RANGE, char &UPLO, int &N, std::complex< double > *A, int &LDA, std::complex< double > *B, int &LDB, double &VL, double &VU, int &IL, int &IU, double &ABSTOL, int &M, double *W, std::complex< double > *Z, int &LDZ, std::complex< double > *WORK, int &LWORK, double *RWORK, int *IWORK, int *IFAIL, int &INFO)
void zgetrf(const int &n, const int &m, std::complex< double > *a, const int &n0, int *piv, int &st)
void dgetri(const int &n, double *a, const int &n0, int const *piv, double *work, const int &, int &st)
void sgemv(const char &trans, const int &nr, const int &nc, const float &alpha, const float *amat, const int &lda, const float *bv, const int &incx, const float &beta, float *cv, const int &incy)
void cheev(char &JOBZ, char &UPLO, int &N, std::complex< float > *A, int &LDA, float *W, std::complex< float > *WORK, int &LWORK, float *RWORK, int &INFO)