1#ifndef __LAPACK_WRAPPER_H__
2#define __LAPACK_WRAPPER_H__
27 const blas_int *k,
const double *alpha,
const double *a,
const blas_int *lda,
28 const double *b,
const blas_int *ldb,
const double *beta,
double *c,
32 const float *b,
const blas_int *ldb,
const float *beta,
float *c,
const blas_int *ldc);
34 const blas_int *k,
const std::complex<double> *alpha,
const std::complex<double> *a,
36 const std::complex<double> *beta, std::complex<double> *c,
const blas_int *ldc);
38 const blas_int *k,
const std::complex<float> *alpha,
const std::complex<float> *a,
40 const std::complex<float> *beta, std::complex<float> *c,
const blas_int *ldc);
61void zaxpy_(
const blas_int *n,
const std::complex<double> *alpha,
const std::complex<double> *x,
63void caxpy_(
const blas_int *n,
const std::complex<float> *alpha,
const std::complex<float> *x,
67void zscal_(
const blas_int *n,
const std::complex<double> *a, std::complex<double> *x,
69void cscal_(
const blas_int *n,
const std::complex<float> *a, std::complex<float> *x,
80 const float *beta,
const float *y,
const blas_int *incy);
84 const double *beta,
const double *y,
const blas_int *incy);
87 const std::complex<double> *alpha,
const std::complex<double> *a,
const blas_int *lda,
88 const std::complex<double> *x,
const blas_int *incx,
const std::complex<double> *beta,
89 const std::complex<double> *y,
const blas_int *incy);
92 const std::complex<float> *alpha,
const std::complex<float> *a,
const blas_int *lda,
93 const std::complex<float> *x,
const blas_int *incx,
const std::complex<float> *beta,
94 const std::complex<float> *y,
const blas_int *incy);
101 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
103 const std::complex<double> *y,
const blas_int *incy);
105 const std::complex<double> *y,
const blas_int *incy);
107 const std::complex<float> *y,
const blas_int *incy);
109 const std::complex<float> *y,
const blas_int *incy);
111void zdotc_(std::complex<double> *res,
const blas_int *n,
const std::complex<double> *x,
113void zdotu_(std::complex<double> *res,
const blas_int *n,
const std::complex<double> *x,
115void cdotc_(std::complex<float> *res,
const blas_int *n,
const std::complex<float> *x,
117void cdotu_(std::complex<float> *res,
const blas_int *n,
const std::complex<float> *x,
286 const blas_int *k,
const double *alpha,
const double *a,
const blas_int *lda,
287 const double *b,
const blas_int *ldb,
const double *beta,
double *c,
289 dgemm_(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
293 const float *b,
const blas_int *ldb,
const float *beta,
float *c,
295 sgemm_(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
299 const blas_int *k,
const std::complex<double> *alpha,
300 const std::complex<double> *a,
const blas_int *lda,
const std::complex<double> *b,
301 const blas_int *ldb,
const std::complex<double> *beta, std::complex<double> *c,
303 zgemm_(transa, transb, m, n, k, (
const std::complex<double> *)alpha,
304 (
const std::complex<double> *)a, lda, (
const std::complex<double> *)b, ldb,
305 (
const std::complex<double> *)beta, (std::complex<double> *)c, ldc);
309 const blas_int *k,
const std::complex<float> *alpha,
const std::complex<float> *a,
311 const std::complex<float> *beta, std::complex<float> *c,
const blas_int *ldc) {
312 cgemm_(transa, transb, m, n, k, (
const std::complex<float> *)alpha,
313 (
const std::complex<float> *)a, lda, (
const std::complex<float> *)b, ldb,
314 (
const std::complex<float> *)beta, (std::complex<float> *)c, ldc);
318 return dasum_(n, x, incx);
323 dcopy_(&n, x, &incx, y, &incy);
327 scopy_(&n, x, &incx, y, &incy);
332 daxpy_(n, alpha, x, incx, y, incy);
336 saxpy_(n, alpha, x, incx, y, incy);
340 const std::complex<double> *x,
const blas_int *incx, std::complex<double> *y,
342 zaxpy_(n, alpha, x, incx, y, incy);
344inline void caxpy(
const blas_int *n,
const std::complex<float> *alpha,
const std::complex<float> *x,
346 caxpy_(n, alpha, x, incx, y, incy);
350 return dnrm2_(n, x, incx);
358 return snrm2_(n, x, incx);
371inline void zscal(
const blas_int *n,
const std::complex<double> *a, std::complex<double> *x,
375inline void cscal(
const blas_int *n,
const std::complex<float> *a, std::complex<float> *x,
474 const float *beta,
const float *y,
const blas_int *incy) {
475 sgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
478 const double *a,
const blas_int *lda,
const double *x,
const blas_int *incx,
479 const double *beta,
const double *y,
const blas_int *incy) {
480 dgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
483 const std::complex<double> *alpha,
const std::complex<double> *a,
485 const std::complex<double> *beta,
const std::complex<double> *y,
487 zgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
490 const std::complex<float> *alpha,
const std::complex<float> *a,
492 const std::complex<float> *beta,
const std::complex<float> *y,
494 cgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
499 return ddot_(n, x, incx, y, incy);
503 return sdot_(n, x, incx, y, incy);
506inline void zdotc(std::complex<double> *res,
const blas_int *n,
const std::complex<double> *x,
507 const blas_int *incx,
const std::complex<double> *y,
const blas_int *incy) {
508 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
509 *res =
zdotc_(n, x, incx, y, incy);
511 zdotc_(res, n, x, incx, y, incy);
514inline void zdotu(std::complex<double> *res,
const blas_int *n,
const std::complex<double> *x,
515 const blas_int *incx,
const std::complex<double> *y,
const blas_int *incy) {
516 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
517 *res =
zdotu_(n, x, incx, y, incy);
519 zdotu_(res, n, x, incx, y, incy);
522inline void cdotc(std::complex<float> *res,
const blas_int *n,
const std::complex<float> *x,
524 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
525 *res =
cdotc_(n, x, incx, y, incy);
527 cdotc_(res, n, x, incx, y, incy);
530inline void cdotu(std::complex<float> *res,
const blas_int *n,
const std::complex<float> *x,
532 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
533 *res =
cdotu_(n, x, incx, y, incy);
535 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:361
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:530
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:353
void zscal(const blas_int *n, const std::complex< double > *a, std::complex< double > *x, const blas_int *incx)
Definition lapack_wrapper.hpp:371
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:375
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:497
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:330
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:489
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:506
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:291
void zdscal(const blas_int *n, const double *a, std::complex< double > *x, const blas_int *incx)
Definition lapack_wrapper.hpp:379
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:349
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:482
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:317
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:298
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:334
int32_t blas_int
Definition lapack_wrapper.hpp:19
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:285
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:514
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:477
void dcopy(const blas_int &n, const double *x, const blas_int &incx, double *y, const blas_int &incy)
Definition lapack_wrapper.hpp:321
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:472
void scopy(const blas_int &n, const float *x, const blas_int &incx, float *y, const blas_int &incy)
Definition lapack_wrapper.hpp:325
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:368
void dscal(const blas_int *n, const double *a, double *x, const blas_int *incx)
Definition lapack_wrapper.hpp:365
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:501
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:357
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:339
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:522
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:344
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:308