26#ifndef BlasLapackTemplates_h
27#define BlasLapackTemplates_h
40#ifdef DFTEFE_WITH_DEVICE_MKL
41# define _MKL_LAPACK_H_
46 namespace linearAlgebra
58 const unsigned int *M,
59 const unsigned int *N,
62 const unsigned int *
LDA,
64 const unsigned int *INCX,
67 const unsigned int *INCY);
71 const unsigned int *M,
72 const unsigned int *N,
75 const unsigned int *
LDA,
77 const unsigned int *INCX,
80 const unsigned int *INCY);
84 const unsigned int * M,
85 const unsigned int * N,
86 const std::complex<double> *alpha,
87 const std::complex<double> *A,
88 const unsigned int *
LDA,
89 const std::complex<double> *X,
90 const unsigned int * INCX,
91 const std::complex<double> *beta,
92 std::complex<double> * C,
93 const unsigned int * INCY);
97 const unsigned int * M,
98 const unsigned int * N,
99 const std::complex<float> *alpha,
100 const std::complex<float> *A,
101 const unsigned int *
LDA,
102 const std::complex<float> *X,
103 const unsigned int * INCX,
104 const std::complex<float> *beta,
105 std::complex<float> * C,
106 const unsigned int * INCY);
109 const unsigned int *N,
110 const double * alpha,
112 const unsigned int *
LDA,
114 const unsigned int *INCX,
117 const unsigned int *INCY);
120 const double * alpha,
122 const unsigned int *inc);
127 const unsigned int *inc);
130 const std::complex<double> *alpha,
131 std::complex<double> * x,
132 const unsigned int * inc);
135 const double * alpha,
136 std::complex<double> *x,
137 const unsigned int * inc);
140 const double * alpha,
142 const unsigned int *incx,
144 const unsigned int *incy);
149 const unsigned int *incx,
151 const unsigned int *incy);
155 const unsigned int *m,
156 const unsigned int *n,
157 const unsigned int *k,
158 const double * alpha,
160 const unsigned int *lda,
162 const unsigned int *ldb,
165 const unsigned int *ldc);
169 const unsigned int *m,
170 const unsigned int *n,
171 const unsigned int *k,
174 const unsigned int *lda,
176 const unsigned int *ldb,
179 const unsigned int *ldc);
185 const unsigned int *n,
186 const unsigned int *k,
187 const double * alpha,
189 const unsigned int *lda,
192 const unsigned int *ldc);
195 const unsigned int *n,
196 const double * alpha,
198 const unsigned int *incx,
200 const unsigned int *lda);
203 const unsigned int *n,
204 const double * alpha,
206 const unsigned int *incx,
208 const unsigned int *incy,
210 const unsigned int *lda);
214 const unsigned int *incx,
216 const unsigned int *incy);
220 const unsigned int *incx,
222 const unsigned int *incy);
226 const unsigned int * m,
227 const unsigned int * n,
228 const unsigned int * k,
229 const std::complex<double> *alpha,
230 const std::complex<double> *A,
231 const unsigned int * lda,
232 const std::complex<double> *B,
233 const unsigned int * ldb,
234 const std::complex<double> *beta,
235 std::complex<double> * C,
236 const unsigned int * ldc);
240 const unsigned int * m,
241 const unsigned int * n,
242 const unsigned int * k,
243 const std::complex<float> *alpha,
244 const std::complex<float> *A,
245 const unsigned int * lda,
246 const std::complex<float> *B,
247 const unsigned int * ldb,
248 const std::complex<float> *beta,
249 std::complex<float> * C,
250 const unsigned int * ldc);
254 const unsigned int * n,
255 const unsigned int * k,
256 const double * alpha,
257 const std::complex<double> *A,
258 const unsigned int * lda,
260 std::complex<double> * C,
261 const unsigned int * ldc);
264 const std::complex<double> *x,
265 const unsigned int * incx,
266 std::complex<double> * y,
267 const unsigned int * incy);
271 const std::complex<float> *x,
272 const unsigned int * incx,
273 std::complex<float> * y,
274 const unsigned int * incy);
278 const std::complex<double> *X,
279 const unsigned int * INCX,
280 const std::complex<double> *Y,
281 const unsigned int * INCY);
285 const unsigned int *INCX,
287 const unsigned int *INCY);
291 const std::complex<float> *X,
292 const unsigned int * INCX,
293 const std::complex<float> *Y,
294 const unsigned int * INCY);
298 const unsigned int *INCX,
300 const unsigned int *INCY);
303 dnrm2_(
const unsigned int *n,
const double *x,
const unsigned int *incx);
307 const std::complex<double> *x,
308 const unsigned int * incx);
311 sasum_(
const unsigned int *n,
const float *x,
const unsigned int *incx);
314 dasum_(
const unsigned int *n,
const double *x,
const unsigned int *incx);
318 const std::complex<float> *x,
319 const unsigned int * incx);
323 const std::complex<double> *x,
324 const unsigned int * incx);
327 isamax_(
const unsigned int *n,
const float *x,
const unsigned int *incx);
330 idamax_(
const unsigned int *n,
const double *x,
const unsigned int *incx);
334 const std::complex<float> *x,
335 const unsigned int * incx);
339 const std::complex<double> *x,
340 const unsigned int * incx);
344 const std::complex<double> *alpha,
345 const std::complex<double> *x,
346 const unsigned int * incx,
347 std::complex<double> * y,
348 const unsigned int * incy);
351 const std::complex<float> *alpha,
352 const std::complex<float> *x,
353 const unsigned int * incx,
354 std::complex<float> * y,
355 const unsigned int * incy);
379 std::complex<double> *a,
382 std::complex<double> *b,
414 std::complex<double> *Z,
416 std::complex<double> *work,
422 const unsigned int *n,
424 const unsigned int *lda,
427 const unsigned int *lwork,
429 const unsigned int *liwork,
445 const double *abstol,
475 std::complex<double> *a,
477 std::complex<double> *b,
480 std::complex<double> *work,
495 const double *abstol,
510 const unsigned int *n,
512 const unsigned int *lda,
515 const unsigned int *il,
516 const unsigned int *iu,
517 const double * abstol,
518 const unsigned int *m,
521 const unsigned int *ldz,
522 unsigned int * isuppz,
532 const unsigned int * n,
533 std::complex<double> *A,
534 const unsigned int * lda,
536 std::complex<double> *work,
537 const unsigned int * lwork,
539 const unsigned int * lrwork,
541 const unsigned int * liwork,
547 const unsigned int * n,
548 std::complex<double> *A,
549 const unsigned int * lda,
552 const unsigned int * il,
553 const unsigned int * iu,
554 const double * abstol,
555 const unsigned int * m,
557 std::complex<double> *Z,
558 const unsigned int * ldz,
559 unsigned int * isuppz,
560 std::complex<double> *work,
570 const unsigned int *n,
572 const unsigned int *lda,
576 const unsigned int *n,
578 const unsigned int *lda,
583 const unsigned int * n,
584 std::complex<double> *a,
585 const unsigned int * lda,
590 const unsigned int *n,
592 const unsigned int *lda,
597 const unsigned int * n,
598 std::complex<double> *a,
599 const unsigned int * lda,
604 dgetrf_(
int *M,
int *N,
double *A,
int *lda,
int *IPIV,
int *INFO);
619 std::complex<double> *A,
627 std::complex<double> *A,
630 std::complex<double> *WORK,
void zdscal_(const unsigned int *n, const double *alpha, std::complex< double > *x, const unsigned int *inc)
unsigned int izamax_(const unsigned int *n, const std::complex< double > *x, const unsigned int *incx)
double dasum_(const unsigned int *n, const double *x, const unsigned int *incx)
void dgetri_(int *N, double *A, int *lda, int *IPIV, double *WORK, int *lwork, int *INFO)
void zgemm_(const char *transA, const char *transB, const unsigned int *m, const unsigned int *n, const unsigned int *k, const std::complex< double > *alpha, const std::complex< double > *A, const unsigned int *lda, const std::complex< double > *B, const unsigned int *ldb, const std::complex< double > *beta, std::complex< double > *C, const unsigned int *ldc)
void zcopy_(const unsigned int *n, const std::complex< double > *x, const unsigned int *incx, std::complex< double > *y, const unsigned int *incy)
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, int *m, double *w, double *z, const int *ldz, double *work, const int *lwork, int *iwork, int *ifail, int *info)
void zscal_(const unsigned int *n, const std::complex< double > *alpha, std::complex< double > *x, const unsigned int *inc)
void dtrtri_(const char *uplo, const char *diag, const unsigned int *n, double *a, const unsigned int *lda, int *info)
double dlamch_(const char *cmach)
void dgemv_(const char *TRANS, const unsigned int *M, const unsigned int *N, const double *alpha, const double *A, const unsigned int *LDA, const double *X, const unsigned int *INCX, const double *beta, double *C, const unsigned int *INCY)
void dsyr_(const char *uplo, const unsigned int *n, const double *alpha, const double *X, const unsigned int *incx, double *A, const unsigned int *lda)
void zaxpy_(const unsigned int *n, const std::complex< double > *alpha, const std::complex< double > *x, const unsigned int *incx, std::complex< double > *y, const unsigned int *incy)
void saxpy_(const unsigned int *n, const float *alpha, const float *x, const unsigned int *incx, float *y, const unsigned int *incy)
double ddot_(const unsigned int *N, const double *X, const unsigned int *INCX, const double *Y, const unsigned int *INCY)
void zherk_(const char *uplo, const char *trans, const unsigned int *n, const unsigned int *k, const double *alpha, const std::complex< double > *A, const unsigned int *lda, const double *beta, std::complex< double > *C, const unsigned int *ldc)
double dzasum_(const unsigned int *n, const std::complex< double > *x, const unsigned int *incx)
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, const int *lwork, int *info)
void scopy_(const unsigned int *n, const float *x, const unsigned int *incx, float *y, const unsigned int *incy)
unsigned int isamax_(const unsigned int *n, const float *x, const unsigned int *incx)
std::complex< float > cdotc_(const unsigned int *N, const std::complex< float > *X, const unsigned int *INCX, const std::complex< float > *Y, const unsigned int *INCY)
void cgemv_(const char *TRANS, const unsigned int *M, const unsigned int *N, const std::complex< float > *alpha, const std::complex< float > *A, const unsigned int *LDA, const std::complex< float > *X, const unsigned int *INCX, const std::complex< float > *beta, std::complex< float > *C, const unsigned int *INCY)
void dcopy_(const unsigned int *n, const double *x, const unsigned int *incx, double *y, const unsigned int *incy)
void dpotrf_(const char *uplo, const unsigned int *n, double *a, const unsigned int *lda, int *info)
float sdot_(const unsigned int *N, const float *X, const unsigned int *INCX, const float *Y, const unsigned int *INCY)
void dsysv_(const char *UPLO, const int *n, const int *nrhs, double *a, const int *lda, int *ipiv, double *b, const int *ldb, double *work, const int *lwork, int *info)
void zgemv_(const char *TRANS, const unsigned int *M, const unsigned int *N, const std::complex< double > *alpha, const std::complex< double > *A, const unsigned int *LDA, const std::complex< double > *X, const unsigned int *INCX, const std::complex< double > *beta, std::complex< double > *C, const unsigned int *INCY)
void dsyevr_(const char *jobz, const char *range, const char *uplo, const unsigned int *n, double *A, const unsigned int *lda, const double *vl, const double *vu, const unsigned int *il, const unsigned int *iu, const double *abstol, const unsigned int *m, double *w, double *Z, const unsigned int *ldz, unsigned int *isuppz, double *work, const int *lwork, int *iwork, const int *liwork, int *info)
unsigned int idamax_(const unsigned int *n, const double *x, const unsigned int *incx)
void zheevd_(const char *jobz, const char *uplo, const unsigned int *n, std::complex< double > *A, const unsigned int *lda, double *w, std::complex< double > *work, const unsigned int *lwork, double *rwork, const unsigned int *lrwork, int *iwork, const unsigned int *liwork, int *info)
void dsyrk_(const char *uplo, const char *trans, const unsigned int *n, const unsigned int *k, const double *alpha, const double *A, const unsigned int *lda, const double *beta, double *C, const unsigned int *ldc)
void dsteqr_(const char *jobz, const int *n, double *D, double *E, double *Z, const int *lda, double *work, int *info)
void dsymv_(const char *UPLO, const unsigned int *N, const double *alpha, const double *A, const unsigned int *LDA, const double *X, const unsigned int *INCX, const double *beta, double *C, const unsigned int *INCY)
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, int *m, double *w, double *z, const int *ldz, double *work, const int *lwork, int *iwork, int *ifail, int *info)
double scasum_(const unsigned int *n, const std::complex< float > *x, const unsigned int *incx)
void dscal_(const unsigned int *n, const double *alpha, double *x, const unsigned int *inc)
void dgetrf_(int *M, int *N, double *A, int *lda, int *IPIV, int *INFO)
void caxpy_(const unsigned int *n, const std::complex< float > *alpha, const std::complex< float > *x, const unsigned int *incx, std::complex< float > *y, const unsigned int *incy)
void sgemv_(const char *TRANS, const unsigned int *M, const unsigned int *N, const float *alpha, const float *A, const unsigned int *LDA, const float *X, const unsigned int *INCX, const float *beta, float *C, const unsigned int *INCY)
void ccopy_(const unsigned int *n, const std::complex< float > *x, const unsigned int *incx, std::complex< float > *y, const unsigned int *incy)
std::complex< double > zdotc_(const unsigned int *N, const std::complex< double > *X, const unsigned int *INCX, const std::complex< double > *Y, const unsigned int *INCY)
void zgetrf_(int *M, int *N, std::complex< double > *A, int *lda, int *IPIV, int *INFO)
void sgemm_(const char *transA, const char *transB, const unsigned int *m, const unsigned int *n, const unsigned int *k, const float *alpha, const float *A, const unsigned int *lda, const float *B, const unsigned int *ldb, const float *beta, float *C, const unsigned int *ldc)
void cgemm_(const char *transA, const char *transB, const unsigned int *m, const unsigned int *n, const unsigned int *k, const std::complex< float > *alpha, const std::complex< float > *A, const unsigned int *lda, const std::complex< float > *B, const unsigned int *ldb, const std::complex< float > *beta, std::complex< float > *C, const unsigned int *ldc)
void zheevr_(const char *jobz, const char *range, const char *uplo, const unsigned int *n, std::complex< double > *A, const unsigned int *lda, const double *vl, const double *vu, const unsigned int *il, const unsigned int *iu, const double *abstol, const unsigned int *m, double *w, std::complex< double > *Z, const unsigned int *ldz, unsigned int *isuppz, std::complex< double > *work, const int *lwork, double *rwork, const int *lrwork, int *iwork, const int *liwork, int *info)
double dnrm2_(const unsigned int *n, const double *x, const unsigned int *incx)
void dgesv_(int *n, int *nrhs, double *a, int *lda, int *ipiv, double *b, int *ldb, int *info)
void dsyevd_(const char *jobz, const char *uplo, const unsigned int *n, double *A, const unsigned int *lda, double *w, double *work, const unsigned int *lwork, int *iwork, const unsigned int *liwork, int *info)
void dpotri_(const char *uplo, const unsigned int *n, double *A, const unsigned int *lda, int *info)
void ztrtri_(const char *uplo, const char *diag, const unsigned int *n, std::complex< double > *a, const unsigned int *lda, int *info)
double sasum_(const unsigned int *n, const float *x, const unsigned int *incx)
unsigned int icamax_(const unsigned int *n, const std::complex< float > *x, const unsigned int *incx)
void zsteqr_(const char *jobz, const int *n, double *D, double *E, std::complex< double > *Z, const int *lda, std::complex< double > *work, int *info)
void dsyr2_(const char *uplo, const unsigned int *n, const double *alpha, const double *x, const unsigned int *incx, const double *y, const unsigned int *incy, double *a, const unsigned int *lda)
void zgetri_(int *N, std::complex< double > *A, int *lda, int *IPIV, std::complex< double > *WORK, int *lwork, int *INFO)
void zgesv_(int *n, int *nrhs, std::complex< double > *a, int *lda, int *ipiv, std::complex< double > *b, int *ldb, 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, const int *lwork, int *info)
void zpotrf_(const char *uplo, const unsigned int *n, std::complex< double > *a, const unsigned int *lda, int *info)
void daxpy_(const unsigned int *n, const double *alpha, const double *x, const unsigned int *incx, double *y, const unsigned int *incy)
double dznrm2_(const unsigned int *n, const std::complex< double > *x, const unsigned int *incx)
void sscal_(const unsigned int *n, const float *alpha, float *x, const unsigned int *inc)
void dgemm_(const char *transA, const char *transB, const unsigned int *m, const unsigned int *n, const unsigned int *k, const double *alpha, const double *A, const unsigned int *lda, const double *B, const unsigned int *ldb, const double *beta, double *C, const unsigned int *ldc)
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
@ LDA
Definition: MatrixFreeDevice.h:36