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);
56 void zaxpy_(
const blas_int *n,
const std::complex<double> *alpha,
const std::complex<double> *x,
58 void caxpy_(
const blas_int *n,
const std::complex<float> *alpha,
const std::complex<float> *x,
73 const float *alpha,
const float *a,
const blas_int *lda,
74 const float *x,
const blas_int *incx,
const float *beta,
75 const float *y,
const blas_int *incy);
78 const double *alpha,
const double *a,
const blas_int *lda,
79 const double *x,
const blas_int *incx,
const double *beta,
80 const double *y,
const blas_int *incy);
83 const std::complex<double> *alpha,
const std::complex<double> *a,
const blas_int *lda,
84 const std::complex<double> *x,
const blas_int *incx,
const std::complex<double> *beta,
85 const std::complex<double> *y,
const blas_int *incy);
88 const std::complex<float> *alpha,
const std::complex<float> *a,
const blas_int *lda,
89 const std::complex<float> *x,
const blas_int *incx,
const std::complex<float> *beta,
90 const std::complex<float> *y,
const blas_int *incy);
93 const double *y,
const blas_int *incy);
95 const float *y,
const blas_int *incy);
97 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
98 std::complex<double>
zdotc_(
const blas_int *n,
const std::complex<double> *x,
107 void zdotc_(std::complex<double>* res,
const blas_int *n,
const std::complex<double> *x,
109 void zdotu_(std::complex<double>* res,
const blas_int *n,
const std::complex<double> *x,
111 void cdotc_(std::complex<float>* res,
const blas_int *n,
const std::complex<float> *x,
113 void cdotu_(std::complex<float>* res,
const blas_int *n,
const std::complex<float> *x,
281 const double *alpha,
const double *a,
const blas_int *lda,
const double *b,
const blas_int *ldb,
282 const double *beta,
double *c,
const blas_int *ldc)
284 dgemm_(transa, transb, m, n, k,alpha, a, lda, b, ldb, beta, c, ldc);
287 const float *alpha,
const float *a,
const blas_int *lda,
const float *b,
const blas_int *ldb,
288 const float *beta,
float *c,
const blas_int *ldc)
290 sgemm_(transa, transb, m, n, k,alpha, a, lda, b, ldb, beta, c, ldc);
294 const std::complex<double> *alpha,
const std::complex<double> *a,
const blas_int *lda,
const std::complex<double> *b,
const blas_int *ldb,
295 const std::complex<double> *beta, std::complex<double> *c,
const blas_int *ldc)
297 zgemm_(transa, transb, m, n, k, (
const std::complex<double>*) alpha, (
const std::complex<double>*)a, lda, (
const std::complex<double>*)b, ldb,
298 (
const std::complex<double>*)beta, (std::complex<double>*)c, ldc);
302 const std::complex<float> *alpha,
const std::complex<float> *a,
const blas_int *lda,
const std::complex<float> *b,
const blas_int *ldb,
303 const std::complex<float> *beta, std::complex<float> *c,
const blas_int *ldc)
305 cgemm_(transa, transb, m, n, k, (
const std::complex<float>*) alpha, (
const std::complex<float>*)a, lda, (
const std::complex<float>*)b, ldb,
306 (
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);
334 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)
336 zaxpy_(n, alpha, x, incx, y, incy);
338 inline 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)
340 caxpy_(n, alpha, x, incx, y, incy);
345 return dnrm2_(n, x, incx);
355 return snrm2_(n, x, incx);
474 const blas_int *incx,
const float *beta,
const float *y,
const blas_int *incy)
476 sgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
479 const blas_int *incx,
const double *beta,
const double *y,
const blas_int *incy)
481 dgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
483 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,
484 const std::complex<double> *x,
const blas_int *incx,
const std::complex<double> *beta,
const std::complex<double> *y,
const blas_int *incy)
486 zgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
488 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,
489 const std::complex<float> *x,
const blas_int *incx,
const std::complex<float> *beta,
const std::complex<float> *y,
const blas_int *incy)
491 cgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
496 return ddot_(n, x, incx, y, incy);
500 return sdot_(n, x, incx, y, incy);
503 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)
505 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
506 *res =
zdotc_(n, x, incx, y, incy);
508 zdotc_(res,n, x, incx, y, incy);
511 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)
513 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
514 *res =
zdotu_(n, x, incx, y, incy);
516 zdotu_(res,n, x, incx, y, incy);
519 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)
521 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
522 *res =
cdotc_(n, x, incx, y, incy);
524 cdotc_(res,n, x, incx, y, incy);
527 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)
529 #ifndef FORTRAN_COMPLEX_FUNCTIONS_RETURN_VOID
530 *res =
cdotu_(n, x, incx, y, incy);
532 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:358
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:527
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:372
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:376
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:494
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:488
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:503
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:380
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:343
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:483
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:311
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
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: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:511
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:478
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:473
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:368
void dscal(const blas_int *n, const double *a, double *x, const blas_int *incx)
Definition lapack_wrapper.hpp:364
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:498
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:353
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:519
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:338
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:301