1#ifndef __LAPACK_WRAPPER_H__
2#define __LAPACK_WRAPPER_H__
30 const double *alpha,
const double *a,
const blas_int *lda,
const double *b,
const blas_int *ldb,
31 const double *beta,
double *c,
const blas_int *ldc);
33 const float *alpha,
const float *a,
const blas_int *lda,
const float *b,
const blas_int *ldb,
34 const float *beta,
float *c,
const blas_int *ldc);
36 const std::complex<double> *alpha,
const std::complex<double> *a,
const blas_int *lda,
const std::complex<double> *b,
const blas_int *ldb,
37 const std::complex<double> *beta, std::complex<double> *c,
const blas_int *ldc);
39 const std::complex<float> *alpha,
const std::complex<float> *a,
const blas_int *lda,
const std::complex<float> *b,
const blas_int *ldb,
40 const std::complex<float> *beta, std::complex<float> *c,
const blas_int *ldc);
54 void zaxpy_(
const blas_int *n,
const std::complex<double> *alpha,
const std::complex<double> *x,
68 const float *alpha,
const float *a,
const blas_int *lda,
69 const float *x,
const blas_int *incx,
const float *beta,
70 const float *y,
const blas_int *incy);
73 const double *alpha,
const double *a,
const blas_int *lda,
74 const double *x,
const blas_int *incx,
const double *beta,
75 const double *y,
const blas_int *incy);
78 const std::complex<double> *alpha,
const std::complex<double> *a,
const blas_int *lda,
79 const std::complex<double> *x,
const blas_int *incx,
const std::complex<double> *beta,
80 const std::complex<double> *y,
const blas_int *incy);
83 const std::complex<float> *alpha,
const std::complex<float> *a,
const blas_int *lda,
84 const std::complex<float> *x,
const blas_int *incx,
const std::complex<float> *beta,
85 const std::complex<float> *y,
const blas_int *incy);
88 const double *y,
const blas_int *incy);
90 const float *y,
const blas_int *incy);
92 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
93 std::complex<double>
zdotc_(
const blas_int *n,
const std::complex<double> *x,
95 std::complex<double>
zdotu_(
const blas_int *n,
const std::complex<double> *x,
102 void zdotc_(std::complex<double>* res,
const blas_int *n,
const std::complex<double> *x,
104 void zdotu_(std::complex<double>* res,
const blas_int *n,
const std::complex<double> *x,
106 void cdotc_(std::complex<float>* res,
const blas_int *n,
const std::complex<float> *x,
108 void cdotu_(std::complex<float>* res,
const blas_int *n,
const std::complex<float> *x,
276 const double *alpha,
const double *a,
const blas_int *lda,
const double *b,
const blas_int *ldb,
277 const double *beta,
double *c,
const blas_int *ldc)
279 dgemm_(transa, transb, m, n, k,alpha, a, lda, b, ldb, beta, c, ldc);
282 const float *alpha,
const float *a,
const blas_int *lda,
const float *b,
const blas_int *ldb,
283 const float *beta,
float *c,
const blas_int *ldc)
285 sgemm_(transa, transb, m, n, k,alpha, a, lda, b, ldb, beta, c, ldc);
289 const std::complex<double> *alpha,
const std::complex<double> *a,
const blas_int *lda,
const std::complex<double> *b,
const blas_int *ldb,
290 const std::complex<double> *beta, std::complex<double> *c,
const blas_int *ldc)
292 zgemm_(transa, transb, m, n, k, (
const std::complex<double>*) alpha, (
const std::complex<double>*)a, lda, (
const std::complex<double>*)b, ldb,
293 (
const std::complex<double>*)beta, (std::complex<double>*)c, ldc);
297 const std::complex<float> *alpha,
const std::complex<float> *a,
const blas_int *lda,
const std::complex<float> *b,
const blas_int *ldb,
298 const std::complex<float> *beta, std::complex<float> *c,
const blas_int *ldc)
300 cgemm_(transa, transb, m, n, k, (
const std::complex<float>*) alpha, (
const std::complex<float>*)a, lda, (
const std::complex<float>*)b, ldb,
301 (
const std::complex<float>*)beta, (std::complex<float>*)c, ldc);
308 return dasum_(n, x, incx);
313 dcopy_(&n, x, &incx, y, &incy);
317 scopy_(&n, x, &incx, y, &incy);
322 daxpy_(n, alpha, x, incx, y, incy);
325 inline void zaxpy(
const blas_int *n,
const std::complex<double> *alpha,
const std::complex<double> *x,
const blas_int *incx, std::complex<double> *y,
const blas_int *incy)
327 zaxpy_(n, alpha, x, incx, y, incy);
332 return dnrm2_(n, x, incx);
342 return snrm2_(n, x, incx);
454 const blas_int *incx,
const float *beta,
const float *y,
const blas_int *incy)
456 sgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
459 const blas_int *incx,
const double *beta,
const double *y,
const blas_int *incy)
461 dgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
463 inline void zgemv(
const char *trans,
const blas_int *m,
const blas_int *n,
const std::complex<double> *alpha,
const std::complex<double> *a,
const blas_int *lda,
464 const std::complex<double> *x,
const blas_int *incx,
const std::complex<double> *beta,
const std::complex<double> *y,
const blas_int *incy)
466 zgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
468 inline void cgemv(
const char *trans,
const blas_int *m,
const blas_int *n,
const std::complex<float> *alpha,
const std::complex<float> *a,
const blas_int *lda,
469 const std::complex<float> *x,
const blas_int *incx,
const std::complex<float> *beta,
const std::complex<float> *y,
const blas_int *incy)
471 cgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
476 return ddot_(n, x, incx, y, incy);
480 return sdot_(n, x, incx, y, incy);
483 inline void zdotc(std::complex<double> *res,
const blas_int *n,
const std::complex<double> *x,
const blas_int *incx,
const std::complex<double> *y,
const blas_int *incy)
485 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
486 *res =
zdotc_(n, x, incx, y, incy);
488 zdotc_(res,n, x, incx, y, incy);
491 inline void zdotu(std::complex<double> *res,
const blas_int *n,
const std::complex<double> *x,
const blas_int *incx,
const std::complex<double> *y,
const blas_int *incy)
493 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
494 *res =
zdotu_(n, x, incx, y, incy);
496 zdotu_(res,n, x, incx, y, incy);
499 inline void cdotc(std::complex<float> *res,
const blas_int *n,
const std::complex<float> *x,
const blas_int *incx,
const std::complex<float> *y,
const blas_int *incy)
501 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
502 *res =
cdotc_(n, x, incx, y, incy);
504 cdotc_(res,n, x, incx, y, incy);
507 inline void cdotu(std::complex<float> *res,
const blas_int *n,
const std::complex<float> *x,
const blas_int *incx,
const std::complex<float> *y,
const blas_int *incy)
509 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
510 *res =
cdotu_(n, x, incx, y, incy);
512 cdotu_(res,n, x, incx, y, incy);
float snrm2_(const blas_int *n, const float *x, const blas_int *incx)
void dgemv_(const char *trans, const blas_int *m, const blas_int *n, const double *alpha, const double *a, const blas_int *lda, const double *x, const blas_int *incx, const double *beta, const double *y, const blas_int *incy)
void scopy_(const blas_int *n, const float *x, const blas_int *incx, float *y, const blas_int *incy)
float scnrm2(const blas_int *n, const std::complex< float > *x, const blas_int *incx)
Definition lapack_wrapper.hpp:345
void cdotu(std::complex< float > *res, const blas_int *n, const std::complex< float > *x, const blas_int *incx, const std::complex< float > *y, const blas_int *incy)
Definition lapack_wrapper.hpp:507
void cgemv_(const char *trans, const blas_int *m, const blas_int *n, const std::complex< float > *alpha, const std::complex< float > *a, const blas_int *lda, const std::complex< float > *x, const blas_int *incx, const std::complex< float > *beta, const std::complex< float > *y, const blas_int *incy)
double dznrm2(const blas_int *n, const std::complex< double > *x, const blas_int *incx)
Definition lapack_wrapper.hpp:335
std::complex< double > zdotc_(const blas_int *n, const std::complex< double > *x, const blas_int *incx, const std::complex< double > *y, const blas_int *incy)
double dznrm2_(const blas_int *n, const std::complex< double > *x, const blas_int *incx)
void zgemv_(const char *trans, const blas_int *m, const blas_int *n, const std::complex< double > *alpha, const std::complex< double > *a, const blas_int *lda, const std::complex< double > *x, const blas_int *incx, const std::complex< double > *beta, const std::complex< double > *y, const blas_int *incy)
float scnrm2_(const blas_int *n, const std::complex< float > *x, const blas_int *incx)
std::complex< float > cdotc_(const blas_int *n, const std::complex< float > *x, const blas_int *incx, const std::complex< float > *y, const blas_int *incy)
double dnrm2_(const blas_int *n, const double *x, const blas_int *incx)
double ddot(const blas_int *n, const double *x, const blas_int *incx, const double *y, const blas_int *incy)
Definition lapack_wrapper.hpp:474
void daxpy(const blas_int *n, const double *alpha, const double *x, const blas_int *incx, double *y, const blas_int *incy)
Definition lapack_wrapper.hpp:320
void daxpy_(const blas_int *n, const double *alpha, const double *x, const blas_int *incx, double *y, const blas_int *incy)
void cgemv(const char *trans, const blas_int *m, const blas_int *n, const std::complex< float > *alpha, const std::complex< float > *a, const blas_int *lda, const std::complex< float > *x, const blas_int *incx, const std::complex< float > *beta, const std::complex< float > *y, const blas_int *incy)
Definition lapack_wrapper.hpp:468
void zdotc(std::complex< double > *res, const blas_int *n, const std::complex< double > *x, const blas_int *incx, const std::complex< double > *y, const blas_int *incy)
Definition lapack_wrapper.hpp:483
void cgemm_(const char *transa, const char *transb, const blas_int *m, const blas_int *n, const blas_int *k, const std::complex< float > *alpha, const std::complex< float > *a, const blas_int *lda, const std::complex< float > *b, const blas_int *ldb, const std::complex< float > *beta, std::complex< float > *c, const blas_int *ldc)
void zscal(const blas_int *n, const std::complex< double > *a, std::complex< double > *x, const *blas_int incx)
Definition lapack_wrapper.hpp:355
void sgemv_(const char *trans, const blas_int *m, const blas_int *n, const float *alpha, const float *a, const blas_int *lda, const float *x, const blas_int *incx, const float *beta, const float *y, const blas_int *incy)
void sgemm(const char *transa, const char *transb, const blas_int *m, const blas_int *n, const blas_int *k, const float *alpha, const float *a, const blas_int *lda, const float *b, const blas_int *ldb, const float *beta, float *c, const blas_int *ldc)
Definition lapack_wrapper.hpp:281
void zdscal(const blas_int *n, const double *a, std::complex< double > *x, const blas_int *incx)
Definition lapack_wrapper.hpp:360
double dnrm2(const blas_int *n, const double *x, const blas_int *incx)
Definition lapack_wrapper.hpp:330
void zgemv(const char *trans, const blas_int *m, const blas_int *n, const std::complex< double > *alpha, const std::complex< double > *a, const blas_int *lda, const std::complex< double > *x, const blas_int *incx, const std::complex< double > *beta, const std::complex< double > *y, const blas_int *incy)
Definition lapack_wrapper.hpp:463
double dasum(const blas_int *n, const double *x, const blas_int *incx)
Definition lapack_wrapper.hpp:306
std::complex< float > cdotu_(const blas_int *n, const std::complex< float > *x, const blas_int *incx, const std::complex< float > *y, const blas_int *incy)
void zgemm(const char *transa, const char *transb, const blas_int *m, const blas_int *n, const blas_int *k, const std::complex< double > *alpha, const std::complex< double > *a, const blas_int *lda, const std::complex< double > *b, const blas_int *ldb, const std::complex< double > *beta, std::complex< double > *c, const blas_int *ldc)
Definition lapack_wrapper.hpp:288
void zgemm_(const char *transa, const char *transb, const blas_int *m, const blas_int *n, const blas_int *k, const std::complex< double > *alpha, const std::complex< double > *a, const blas_int *lda, const std::complex< double > *b, const blas_int *ldb, const std::complex< double > *beta, std::complex< double > *c, const blas_int *ldc)
void sgemm_(const char *transa, const char *transb, const blas_int *m, const blas_int *n, const blas_int *k, const float *alpha, const float *a, const blas_int *lda, const float *b, const blas_int *ldb, const float *beta, float *c, const blas_int *ldc)
void dgemm_(const char *transa, const char *transb, const blas_int *m, const blas_int *n, const blas_int *k, const double *alpha, const double *a, const blas_int *lda, const double *b, const blas_int *ldb, const double *beta, double *c, const blas_int *ldc)
int32_t blas_int
Definition lapack_wrapper.hpp:21
void dgemm(const char *transa, const char *transb, const blas_int *m, const blas_int *n, const blas_int *k, const double *alpha, const double *a, const blas_int *lda, const double *b, const blas_int *ldb, const double *beta, double *c, const blas_int *ldc)
Definition lapack_wrapper.hpp:275
void zdotu(std::complex< double > *res, const blas_int *n, const std::complex< double > *x, const blas_int *incx, const std::complex< double > *y, const blas_int *incy)
Definition lapack_wrapper.hpp:491
void dgemv(const char *trans, const blas_int *m, const blas_int *n, const double *alpha, const double *a, const blas_int *lda, const double *x, const blas_int *incx, const double *beta, const double *y, const blas_int *incy)
Definition lapack_wrapper.hpp:458
void dcopy(const blas_int &n, const double *x, const blas_int &incx, double *y, const blas_int &incy)
Definition lapack_wrapper.hpp:311
void sgemv(const char *trans, const blas_int *m, const blas_int *n, const float *alpha, const float *a, const blas_int *lda, const float *x, const blas_int *incx, const float *beta, const float *y, const blas_int *incy)
Definition lapack_wrapper.hpp:453
void scopy(const blas_int &n, const float *x, const blas_int &incx, float *y, const blas_int &incy)
Definition lapack_wrapper.hpp:315
float sdot_(const blas_int *n, const float *x, const blas_int *incx, const float *y, const blas_int *incy)
double dasum_(const blas_int *n, const double *x, const blas_int *incx)
void zdscal_(const blas_int *n, const double *a, std::complex< double > *x, const blas_int *incx)
void dcopy_(const blas_int *n, const double *x, const blas_int *incx, double *y, const blas_int *incy)
double ddot_(const blas_int *n, const double *x, const blas_int *incx, const double *y, const blas_int *incy)
void dscal(const blas_int *n, const double *a, double *x, const blas_int *incx)
Definition lapack_wrapper.hpp:351
void zscal_(const blas_int *n, const std::complex< double > *a, std::complex< double > *x, const blas_int *incx)
float sdot(const blas_int *n, const float *x, const blas_int *incx, const float *y, const blas_int *incy)
Definition lapack_wrapper.hpp:478
void zaxpy_(const blas_int *n, const std::complex< double > *alpha, const std::complex< double > *x, const blas_int *incx, std::complex< double > *y, const blas_int *incy)
float snrm2(const blas_int *n, const float *x, const blas_int *incx)
Definition lapack_wrapper.hpp:340
void zaxpy(const blas_int *n, const std::complex< double > *alpha, const std::complex< double > *x, const blas_int *incx, std::complex< double > *y, const blas_int *incy)
Definition lapack_wrapper.hpp:325
std::complex< double > zdotu_(const blas_int *n, const std::complex< double > *x, const blas_int *incx, const std::complex< double > *y, const blas_int *incy)
void cdotc(std::complex< float > *res, const blas_int *n, const std::complex< float > *x, const blas_int *incx, const std::complex< float > *y, const blas_int *incy)
Definition lapack_wrapper.hpp:499
void dscal_(const blas_int *n, const double *a, double *x, const blas_int *incx)
void cgemm(const char *transa, const char *transb, const blas_int *m, const blas_int *n, const blas_int *k, const std::complex< float > *alpha, const std::complex< float > *a, const blas_int *lda, const std::complex< float > *b, const blas_int *ldb, const std::complex< float > *beta, std::complex< float > *c, const blas_int *ldc)
Definition lapack_wrapper.hpp:296