16namespace nda::blas::f77 {
18 void axpy(
int n,
float alpha,
const float *x,
int incx,
float *y,
int incy);
19 void axpy(
int n, std::complex<float> alpha,
const std::complex<float> *x,
int incx, std::complex<float> *y,
int incy);
20 void axpy(
int n,
double alpha,
const double *x,
int incx,
double *y,
int incy);
21 void axpy(
int n, std::complex<double> alpha,
const std::complex<double> *x,
int incx, std::complex<double> *y,
int incy);
23 void copy(
int n,
const float *x,
int incx,
float *y,
int incy);
24 void copy(
int n,
const std::complex<float> *x,
int incx, std::complex<float> *y,
int incy);
25 void copy(
int n,
const double *x,
int incx,
double *y,
int incy);
26 void copy(
int n,
const std::complex<double> *x,
int incx, std::complex<double> *y,
int incy);
28 float dot(
int m,
const float *x,
int incx,
const float *y,
int incy);
29 std::complex<float> dot(
int m,
const std::complex<float> *x,
int incx,
const std::complex<float> *y,
int incy);
30 std::complex<float> dotc(
int m,
const std::complex<float> *x,
int incx,
const std::complex<float> *y,
int incy);
31 double dot(
int m,
const double *x,
int incx,
const double *y,
int incy);
32 std::complex<double> dot(
int m,
const std::complex<double> *x,
int incx,
const std::complex<double> *y,
int incy);
33 std::complex<double> dotc(
int m,
const std::complex<double> *x,
int incx,
const std::complex<double> *y,
int incy);
35 void gemm(
char op_a,
char op_b,
int m,
int n,
int k,
float alpha,
const float *a,
int lda,
const float *b,
int ldb,
float beta,
float *c,
int ldc);
36 void gemm(
char op_a,
char op_b,
int m,
int n,
int k, std::complex<float> alpha,
const std::complex<float> *a,
int lda,
const std::complex<float> *b,
37 int ldb, std::complex<float> beta, std::complex<float> *c,
int ldc);
38 void gemm(
char op_a,
char op_b,
int m,
int n,
int k,
double alpha,
const double *a,
int lda,
const double *b,
int ldb,
double beta,
double *c,
40 void gemm(
char op_a,
char op_b,
int m,
int n,
int k, std::complex<double> alpha,
const std::complex<double> *a,
int lda,
41 const std::complex<double> *b,
int ldb, std::complex<double> beta, std::complex<double> *c,
int ldc);
43 void gemm_batch(
char op_a,
char op_b,
int m,
int n,
int k,
float alpha,
const float **a,
int lda,
const float **b,
int ldb,
float beta,
float **c,
44 int ldc,
int batch_count);
45 void gemm_batch(
char op_a,
char op_b,
int m,
int n,
int k, std::complex<float> alpha,
const std::complex<float> **a,
int lda,
46 const std::complex<float> **b,
int ldb, std::complex<float> beta, std::complex<float> **c,
int ldc,
int batch_count);
47 void gemm_batch(
char op_a,
char op_b,
int m,
int n,
int k,
double alpha,
const double **a,
int lda,
const double **b,
int ldb,
double beta,
48 double **c,
int ldc,
int batch_count);
49 void gemm_batch(
char op_a,
char op_b,
int m,
int n,
int k, std::complex<double> alpha,
const std::complex<double> **a,
int lda,
50 const std::complex<double> **b,
int ldb, std::complex<double> beta, std::complex<double> **c,
int ldc,
int batch_count);
52 void gemm_vbatch(
char op_a,
char op_b,
int *m,
int *n,
int *k,
float alpha,
const float **a,
int *lda,
const float **b,
int *ldb,
float beta,
53 float **c,
int *ldc,
int batch_count);
54 void gemm_vbatch(
char op_a,
char op_b,
int *m,
int *n,
int *k, std::complex<float> alpha,
const std::complex<float> **a,
int *lda,
55 const std::complex<float> **b,
int *ldb, std::complex<float> beta, std::complex<float> **c,
int *ldc,
int batch_count);
56 void gemm_vbatch(
char op_a,
char op_b,
int *m,
int *n,
int *k,
double alpha,
const double **a,
int *lda,
const double **b,
int *ldb,
double beta,
57 double **c,
int *ldc,
int batch_count);
58 void gemm_vbatch(
char op_a,
char op_b,
int *m,
int *n,
int *k, std::complex<double> alpha,
const std::complex<double> **a,
int *lda,
59 const std::complex<double> **b,
int *ldb, std::complex<double> beta, std::complex<double> **c,
int *ldc,
int batch_count);
61 void gemm_batch_strided(
char op_a,
char op_b,
int m,
int n,
int k,
float alpha,
const float *a,
int lda,
int stride_a,
const float *b,
int ldb,
62 int stride_b,
float beta,
float *c,
int ldc,
int stride_c,
int batch_count);
63 void gemm_batch_strided(
char op_a,
char op_b,
int m,
int n,
int k, std::complex<float> alpha,
const std::complex<float> *a,
int lda,
int stride_a,
64 const std::complex<float> *b,
int ldb,
int stride_b, std::complex<float> beta, std::complex<float> *c,
int ldc,
65 int stride_c,
int batch_count);
66 void gemm_batch_strided(
char op_a,
char op_b,
int m,
int n,
int k,
double alpha,
const double *a,
int lda,
int stride_a,
const double *b,
int ldb,
67 int stride_b,
double beta,
double *c,
int ldc,
int stride_c,
int batch_count);
68 void gemm_batch_strided(
char op_a,
char op_b,
int m,
int n,
int k, std::complex<double> alpha,
const std::complex<double> *a,
int lda,
int stride_a,
69 const std::complex<double> *b,
int ldb,
int stride_b, std::complex<double> beta, std::complex<double> *c,
int ldc,
70 int stride_c,
int batch_count);
72 void gemv(
char op,
int m,
int n,
float alpha,
const float *a,
int lda,
const float *x,
int incx,
float beta,
float *y,
int incy);
73 void gemv(
char op,
int m,
int n, std::complex<float> alpha,
const std::complex<float> *a,
int lda,
const std::complex<float> *x,
int incx,
74 std::complex<float> beta, std::complex<float> *y,
int incy);
75 void gemv(
char op,
int m,
int n,
double alpha,
const double *a,
int lda,
const double *x,
int incx,
double beta,
double *y,
int incy);
76 void gemv(
char op,
int m,
int n, std::complex<double> alpha,
const std::complex<double> *a,
int lda,
const std::complex<double> *x,
int incx,
77 std::complex<double> beta, std::complex<double> *y,
int incy);
79 void ger(
int m,
int n,
float alpha,
const float *x,
int incx,
const float *y,
int incy,
float *a,
int lda);
80 void ger(
int m,
int n, std::complex<float> alpha,
const std::complex<float> *x,
int incx,
const std::complex<float> *y,
int incy,
81 std::complex<float> *a,
int lda);
82 void gerc(
int m,
int n, std::complex<float> alpha,
const std::complex<float> *x,
int incx,
const std::complex<float> *y,
int incy,
83 std::complex<float> *a,
int lda);
84 void ger(
int m,
int n,
double alpha,
const double *x,
int incx,
const double *y,
int incy,
double *a,
int lda);
85 void ger(
int m,
int n, std::complex<double> alpha,
const std::complex<double> *x,
int incx,
const std::complex<double> *y,
int incy,
86 std::complex<double> *a,
int lda);
87 void gerc(
int m,
int n, std::complex<double> alpha,
const std::complex<double> *x,
int incx,
const std::complex<double> *y,
int incy,
88 std::complex<double> *a,
int lda);
90 void scal(
int m,
float alpha,
float *x,
int incx);
91 void scal(
int m, std::complex<float> alpha, std::complex<float> *x,
int incx);
92 void scal(
int m,
double alpha,
double *x,
int incx);
93 void scal(
int m, std::complex<double> alpha, std::complex<double> *x,
int incx);
95 void swap(
int n,
float *x,
int incx,
float *y,
int incy);
96 void swap(
int n, std::complex<float> *x,
int incx, std::complex<float> *y,
int incy);
97 void swap(
int n,
double *x,
int incx,
double *y,
int incy);
98 void swap(
int n, std::complex<double> *x,
int incx, std::complex<double> *y,
int incy);
105 using namespace nda::blas_lapack;
Provides a C++ interface for the GPU versions of various BLAS routines.