1#ifndef __LAPACK_WRAPPER_H__
2#define __LAPACK_WRAPPER_H__
22 const blas_int *k,
const double *alpha,
const double *a,
const blas_int *lda,
23 const double *b,
const blas_int *ldb,
const double *beta,
double *c,
27 const float *b,
const blas_int *ldb,
const float *beta,
float *c,
const blas_int *ldc);
29 const blas_int *k,
const std::complex<double> *alpha,
const std::complex<double> *a,
31 const std::complex<double> *beta, std::complex<double> *c,
const blas_int *ldc);
33 const blas_int *k,
const std::complex<float> *alpha,
const std::complex<float> *a,
35 const std::complex<float> *beta, std::complex<float> *c,
const blas_int *ldc);
56void zaxpy_(
const blas_int *n,
const std::complex<double> *alpha,
const std::complex<double> *x,
58void caxpy_(
const blas_int *n,
const std::complex<float> *alpha,
const std::complex<float> *x,
62void zscal_(
const blas_int *n,
const std::complex<double> *a, std::complex<double> *x,
64void cscal_(
const blas_int *n,
const std::complex<float> *a, std::complex<float> *x,
75 const float *beta,
const float *y,
const blas_int *incy);
79 const double *beta,
const double *y,
const blas_int *incy);
82 const std::complex<double> *alpha,
const std::complex<double> *a,
const blas_int *lda,
83 const std::complex<double> *x,
const blas_int *incx,
const std::complex<double> *beta,
84 const std::complex<double> *y,
const blas_int *incy);
87 const std::complex<float> *alpha,
const std::complex<float> *a,
const blas_int *lda,
88 const std::complex<float> *x,
const blas_int *incx,
const std::complex<float> *beta,
89 const std::complex<float> *y,
const blas_int *incy);
96 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
98 const std::complex<double> *y,
const blas_int *incy);
100 const std::complex<double> *y,
const blas_int *incy);
102 const std::complex<float> *y,
const blas_int *incy);
104 const std::complex<float> *y,
const blas_int *incy);
106void zdotc_(std::complex<double> *res,
const blas_int *n,
const std::complex<double> *x,
108void zdotu_(std::complex<double> *res,
const blas_int *n,
const std::complex<double> *x,
110void cdotc_(std::complex<float> *res,
const blas_int *n,
const std::complex<float> *x,
112void cdotu_(std::complex<float> *res,
const blas_int *n,
const std::complex<float> *x,
281 const blas_int *k,
const double *alpha,
const double *a,
const blas_int *lda,
282 const double *b,
const blas_int *ldb,
const double *beta,
double *c,
284 dgemm_(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
288 const float *b,
const blas_int *ldb,
const float *beta,
float *c,
290 sgemm_(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
294 const blas_int *k,
const std::complex<double> *alpha,
295 const std::complex<double> *a,
const blas_int *lda,
const std::complex<double> *b,
296 const blas_int *ldb,
const std::complex<double> *beta, std::complex<double> *c,
298 zgemm_(transa, transb, m, n, k, (
const std::complex<double> *)alpha,
299 (
const std::complex<double> *)a, lda, (
const std::complex<double> *)b, ldb,
300 (
const std::complex<double> *)beta, (std::complex<double> *)c, ldc);
304 const blas_int *k,
const std::complex<float> *alpha,
const std::complex<float> *a,
306 const std::complex<float> *beta, std::complex<float> *c,
const blas_int *ldc) {
307 cgemm_(transa, transb, m, n, k, (
const std::complex<float> *)alpha,
308 (
const std::complex<float> *)a, lda, (
const std::complex<float> *)b, ldb,
309 (
const std::complex<float> *)beta, (std::complex<float> *)c, ldc);
313 return dasum_(n, x, incx);
318 dcopy_(&n, x, &incx, y, &incy);
322 scopy_(&n, x, &incx, y, &incy);
327 daxpy_(n, alpha, x, incx, y, incy);
331 saxpy_(n, alpha, x, incx, y, incy);
335 const std::complex<double> *x,
const blas_int *incx, std::complex<double> *y,
337 zaxpy_(n, alpha, x, incx, y, incy);
339inline void caxpy(
const blas_int *n,
const std::complex<float> *alpha,
const std::complex<float> *x,
341 caxpy_(n, alpha, x, incx, y, incy);
345 return dnrm2_(n, x, incx);
353 return snrm2_(n, x, incx);
366inline void zscal(
const blas_int *n,
const std::complex<double> *a, std::complex<double> *x,
370inline void cscal(
const blas_int *n,
const std::complex<float> *a, std::complex<float> *x,
469 const float *beta,
const float *y,
const blas_int *incy) {
470 sgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
473 const double *a,
const blas_int *lda,
const double *x,
const blas_int *incx,
474 const double *beta,
const double *y,
const blas_int *incy) {
475 dgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
478 const std::complex<double> *alpha,
const std::complex<double> *a,
480 const std::complex<double> *beta,
const std::complex<double> *y,
482 zgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
485 const std::complex<float> *alpha,
const std::complex<float> *a,
487 const std::complex<float> *beta,
const std::complex<float> *y,
489 cgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
494 return ddot_(n, x, incx, y, incy);
498 return sdot_(n, x, incx, y, incy);
501inline void zdotc(std::complex<double> *res,
const blas_int *n,
const std::complex<double> *x,
502 const blas_int *incx,
const std::complex<double> *y,
const blas_int *incy) {
503 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
504 *res =
zdotc_(n, x, incx, y, incy);
506 zdotc_(res, n, x, incx, y, incy);
509inline void zdotu(std::complex<double> *res,
const blas_int *n,
const std::complex<double> *x,
510 const blas_int *incx,
const std::complex<double> *y,
const blas_int *incy) {
511 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
512 *res =
zdotu_(n, x, incx, y, incy);
514 zdotu_(res, n, x, incx, y, incy);
517inline void cdotc(std::complex<float> *res,
const blas_int *n,
const std::complex<float> *x,
519 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
520 *res =
cdotc_(n, x, incx, y, incy);
522 cdotc_(res, n, x, incx, y, incy);
525inline void cdotu(std::complex<float> *res,
const blas_int *n,
const std::complex<float> *x,
527 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
528 *res =
cdotu_(n, x, incx, y, incy);
530 cdotu_(res, n, x, incx, y, incy);
int32_t blas_int
Definition Type.hpp:25
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:356
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:525
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:348
void zscal(const blas_int *n, const std::complex< double > *a, std::complex< double > *x, const blas_int *incx)
Definition lapack_wrapper.hpp:366
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 cscal(const blas_int *n, const std::complex< float > *a, std::complex< float > *x, const blas_int *incx)
Definition lapack_wrapper.hpp:370
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:492
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:325
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:484
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:501
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 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:286
void zdscal(const blas_int *n, const double *a, std::complex< double > *x, const blas_int *incx)
Definition lapack_wrapper.hpp:374
void caxpy_(const blas_int *n, const std::complex< float > *alpha, const std::complex< float > *x, const blas_int *incx, std::complex< float > *y, const blas_int *incy)
double dnrm2(const blas_int *n, const double *x, const blas_int *incx)
Definition lapack_wrapper.hpp:344
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:477
void cscal_(const blas_int *n, const std::complex< float > *a, std::complex< float > *x, const blas_int *incx)
double dasum(const blas_int *n, const double *x, const blas_int *incx)
Definition lapack_wrapper.hpp:312
void saxpy_(const blas_int *n, const float *alpha, const float *x, const blas_int *incx, float *y, const blas_int *incy)
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:293
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 sscal_(const blas_int *n, const float *a, float *x, const blas_int *incx)
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)
void saxpy(const blas_int *n, const float *alpha, const float *x, const blas_int *incx, float *y, const blas_int *incy)
Definition lapack_wrapper.hpp:329
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:280
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:509
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:472
void dcopy(const blas_int &n, const double *x, const blas_int &incx, double *y, const blas_int &incy)
Definition lapack_wrapper.hpp:316
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:467
void scopy(const blas_int &n, const float *x, const blas_int &incx, float *y, const blas_int &incy)
Definition lapack_wrapper.hpp:320
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 sscal(const blas_int *n, const float *a, float *x, const blas_int *incx)
Definition lapack_wrapper.hpp:363
void dscal(const blas_int *n, const double *a, double *x, const blas_int *incx)
Definition lapack_wrapper.hpp:360
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:496
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:352
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:334
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:517
void caxpy(const blas_int *n, const std::complex< float > *alpha, const std::complex< float > *x, const blas_int *incx, std::complex< float > *y, const blas_int *incy)
Definition lapack_wrapper.hpp:339
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:303