Eigen  5.0.1
 
Loading...
Searching...
No Matches
blas.h
1// SPDX-FileCopyrightText: The Eigen Authors
2// SPDX-License-Identifier: MPL-2.0
3
4#ifndef EIGEN_MISC_BLAS_H
5#define EIGEN_MISC_BLAS_H
6
7extern "C" {
8
9/* EIGEN_BLAS_SYM applies EIGEN_BLAS_SYMBOL_SUFFIX; both come from Core/util/MKL_support.h, this header's only
10 * includer. The declarations here must stay in step with the BLAS call sites under Core/products.
11 */
12#define BLASFUNC(FUNC) EIGEN_BLAS_SYM(FUNC)
13
14/* Level 1 routines */
15
16void BLASFUNC(saxpy)(const EIGEN_BLAS_INT *, const float *, const float *, const EIGEN_BLAS_INT *, float *,
17 const EIGEN_BLAS_INT *);
18void BLASFUNC(daxpy)(const EIGEN_BLAS_INT *, const double *, const double *, const EIGEN_BLAS_INT *, double *,
19 const EIGEN_BLAS_INT *);
20void BLASFUNC(caxpy)(const EIGEN_BLAS_INT *, const float *, const float *, const EIGEN_BLAS_INT *, float *,
21 const EIGEN_BLAS_INT *);
22void BLASFUNC(zaxpy)(const EIGEN_BLAS_INT *, const double *, const double *, const EIGEN_BLAS_INT *, double *,
23 const EIGEN_BLAS_INT *);
24
25/* Level 2 routines */
26
27void BLASFUNC(sgemv)(const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const float *, const float *,
28 const EIGEN_BLAS_INT *, const float *, const EIGEN_BLAS_INT *, const float *, float *,
29 const EIGEN_BLAS_INT *);
30void BLASFUNC(dgemv)(const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const double *, const double *,
31 const EIGEN_BLAS_INT *, const double *, const EIGEN_BLAS_INT *, const double *, double *,
32 const EIGEN_BLAS_INT *);
33void BLASFUNC(cgemv)(const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const float *, const float *,
34 const EIGEN_BLAS_INT *, const float *, const EIGEN_BLAS_INT *, const float *, float *,
35 const EIGEN_BLAS_INT *);
36void BLASFUNC(zgemv)(const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const double *, const double *,
37 const EIGEN_BLAS_INT *, const double *, const EIGEN_BLAS_INT *, const double *, double *,
38 const EIGEN_BLAS_INT *);
39
40void BLASFUNC(strmv)(const char *, const char *, const char *, const EIGEN_BLAS_INT *, const float *,
41 const EIGEN_BLAS_INT *, float *, const EIGEN_BLAS_INT *);
42void BLASFUNC(dtrmv)(const char *, const char *, const char *, const EIGEN_BLAS_INT *, const double *,
43 const EIGEN_BLAS_INT *, double *, const EIGEN_BLAS_INT *);
44void BLASFUNC(ctrmv)(const char *, const char *, const char *, const EIGEN_BLAS_INT *, const float *,
45 const EIGEN_BLAS_INT *, float *, const EIGEN_BLAS_INT *);
46void BLASFUNC(ztrmv)(const char *, const char *, const char *, const EIGEN_BLAS_INT *, const double *,
47 const EIGEN_BLAS_INT *, double *, const EIGEN_BLAS_INT *);
48
49void BLASFUNC(ssymv)(const char *, const EIGEN_BLAS_INT *, const float *, const float *, const EIGEN_BLAS_INT *,
50 const float *, const EIGEN_BLAS_INT *, const float *, float *, const EIGEN_BLAS_INT *);
51void BLASFUNC(dsymv)(const char *, const EIGEN_BLAS_INT *, const double *, const double *, const EIGEN_BLAS_INT *,
52 const double *, const EIGEN_BLAS_INT *, const double *, double *, const EIGEN_BLAS_INT *);
53
54void BLASFUNC(chemv)(const char *, const EIGEN_BLAS_INT *, const float *, const float *, const EIGEN_BLAS_INT *,
55 const float *, const EIGEN_BLAS_INT *, const float *, float *, const EIGEN_BLAS_INT *);
56void BLASFUNC(zhemv)(const char *, const EIGEN_BLAS_INT *, const double *, const double *, const EIGEN_BLAS_INT *,
57 const double *, const EIGEN_BLAS_INT *, const double *, double *, const EIGEN_BLAS_INT *);
58
59/* Level 3 routines */
60
61void BLASFUNC(sgemm)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *,
62 const float *, const float *, const EIGEN_BLAS_INT *, const float *, const EIGEN_BLAS_INT *,
63 const float *, float *, const EIGEN_BLAS_INT *);
64void BLASFUNC(dgemm)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *,
65 const double *, const double *, const EIGEN_BLAS_INT *, const double *, const EIGEN_BLAS_INT *,
66 const double *, double *, const EIGEN_BLAS_INT *);
67void BLASFUNC(cgemm)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *,
68 const float *, const float *, const EIGEN_BLAS_INT *, const float *, const EIGEN_BLAS_INT *,
69 const float *, float *, const EIGEN_BLAS_INT *);
70void BLASFUNC(zgemm)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *,
71 const double *, const double *, const EIGEN_BLAS_INT *, const double *, const EIGEN_BLAS_INT *,
72 const double *, double *, const EIGEN_BLAS_INT *);
73
74void BLASFUNC(strsm)(const char *, const char *, const char *, const char *, const EIGEN_BLAS_INT *,
75 const EIGEN_BLAS_INT *, const float *, const float *, const EIGEN_BLAS_INT *, float *,
76 const EIGEN_BLAS_INT *);
77void BLASFUNC(dtrsm)(const char *, const char *, const char *, const char *, const EIGEN_BLAS_INT *,
78 const EIGEN_BLAS_INT *, const double *, const double *, const EIGEN_BLAS_INT *, double *,
79 const EIGEN_BLAS_INT *);
80void BLASFUNC(ctrsm)(const char *, const char *, const char *, const char *, const EIGEN_BLAS_INT *,
81 const EIGEN_BLAS_INT *, const float *, const float *, const EIGEN_BLAS_INT *, float *,
82 const EIGEN_BLAS_INT *);
83void BLASFUNC(ztrsm)(const char *, const char *, const char *, const char *, const EIGEN_BLAS_INT *,
84 const EIGEN_BLAS_INT *, const double *, const double *, const EIGEN_BLAS_INT *, double *,
85 const EIGEN_BLAS_INT *);
86
87void BLASFUNC(strmm)(const char *, const char *, const char *, const char *, const EIGEN_BLAS_INT *,
88 const EIGEN_BLAS_INT *, const float *, const float *, const EIGEN_BLAS_INT *, float *,
89 const EIGEN_BLAS_INT *);
90void BLASFUNC(dtrmm)(const char *, const char *, const char *, const char *, const EIGEN_BLAS_INT *,
91 const EIGEN_BLAS_INT *, const double *, const double *, const EIGEN_BLAS_INT *, double *,
92 const EIGEN_BLAS_INT *);
93void BLASFUNC(ctrmm)(const char *, const char *, const char *, const char *, const EIGEN_BLAS_INT *,
94 const EIGEN_BLAS_INT *, const float *, const float *, const EIGEN_BLAS_INT *, float *,
95 const EIGEN_BLAS_INT *);
96void BLASFUNC(ztrmm)(const char *, const char *, const char *, const char *, const EIGEN_BLAS_INT *,
97 const EIGEN_BLAS_INT *, const double *, const double *, const EIGEN_BLAS_INT *, double *,
98 const EIGEN_BLAS_INT *);
99
100void BLASFUNC(ssymm)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const float *,
101 const float *, const EIGEN_BLAS_INT *, const float *, const EIGEN_BLAS_INT *, const float *,
102 float *, const EIGEN_BLAS_INT *);
103void BLASFUNC(dsymm)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const double *,
104 const double *, const EIGEN_BLAS_INT *, const double *, const EIGEN_BLAS_INT *, const double *,
105 double *, const EIGEN_BLAS_INT *);
106
107void BLASFUNC(ssyrk)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const float *,
108 const float *, const EIGEN_BLAS_INT *, const float *, float *, const EIGEN_BLAS_INT *);
109void BLASFUNC(dsyrk)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const double *,
110 const double *, const EIGEN_BLAS_INT *, const double *, double *, const EIGEN_BLAS_INT *);
111
112void BLASFUNC(chemm)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const float *,
113 const float *, const EIGEN_BLAS_INT *, const float *, const EIGEN_BLAS_INT *, const float *,
114 float *, const EIGEN_BLAS_INT *);
115void BLASFUNC(zhemm)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const double *,
116 const double *, const EIGEN_BLAS_INT *, const double *, const EIGEN_BLAS_INT *, const double *,
117 double *, const EIGEN_BLAS_INT *);
118
119void BLASFUNC(cherk)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const float *,
120 const float *, const EIGEN_BLAS_INT *, const float *, float *, const EIGEN_BLAS_INT *);
121void BLASFUNC(zherk)(const char *, const char *, const EIGEN_BLAS_INT *, const EIGEN_BLAS_INT *, const double *,
122 const double *, const EIGEN_BLAS_INT *, const double *, double *, const EIGEN_BLAS_INT *);
123
124#undef BLASFUNC
125}
126
127#endif