xref: /aosp_15_r20/external/eigen/Eigen/src/misc/blas.h (revision bf2c37156dfe67e5dfebd6d394bad8b2ab5804d4)
1*bf2c3715SXin Li #ifndef BLAS_H
2*bf2c3715SXin Li #define BLAS_H
3*bf2c3715SXin Li 
4*bf2c3715SXin Li #ifdef __cplusplus
5*bf2c3715SXin Li extern "C"
6*bf2c3715SXin Li {
7*bf2c3715SXin Li #endif
8*bf2c3715SXin Li 
9*bf2c3715SXin Li #define BLASFUNC(FUNC) FUNC##_
10*bf2c3715SXin Li 
11*bf2c3715SXin Li #ifdef __WIN64__
12*bf2c3715SXin Li typedef long long BLASLONG;
13*bf2c3715SXin Li typedef unsigned long long BLASULONG;
14*bf2c3715SXin Li #else
15*bf2c3715SXin Li typedef long BLASLONG;
16*bf2c3715SXin Li typedef unsigned long BLASULONG;
17*bf2c3715SXin Li #endif
18*bf2c3715SXin Li 
19*bf2c3715SXin Li int    BLASFUNC(xerbla)(const char *, int *info, int);
20*bf2c3715SXin Li 
21*bf2c3715SXin Li float  BLASFUNC(sdot)  (int *, float  *, int *, float  *, int *);
22*bf2c3715SXin Li float  BLASFUNC(sdsdot)(int *, float  *,        float  *, int *, float  *, int *);
23*bf2c3715SXin Li 
24*bf2c3715SXin Li double BLASFUNC(dsdot) (int *, float  *, int *, float  *, int *);
25*bf2c3715SXin Li double BLASFUNC(ddot)  (int *, double *, int *, double *, int *);
26*bf2c3715SXin Li double BLASFUNC(qdot)  (int *, double *, int *, double *, int *);
27*bf2c3715SXin Li 
28*bf2c3715SXin Li int  BLASFUNC(cdotuw)  (int *, float  *, int *, float  *, int *, float*);
29*bf2c3715SXin Li int  BLASFUNC(cdotcw)  (int *, float  *, int *, float  *, int *, float*);
30*bf2c3715SXin Li int  BLASFUNC(zdotuw)  (int *, double  *, int *, double  *, int *, double*);
31*bf2c3715SXin Li int  BLASFUNC(zdotcw)  (int *, double  *, int *, double  *, int *, double*);
32*bf2c3715SXin Li 
33*bf2c3715SXin Li int    BLASFUNC(saxpy) (const int *, const float  *, const float  *, const int *, float  *, const int *);
34*bf2c3715SXin Li int    BLASFUNC(daxpy) (const int *, const double *, const double *, const int *, double *, const int *);
35*bf2c3715SXin Li int    BLASFUNC(qaxpy) (const int *, const double *, const double *, const int *, double *, const int *);
36*bf2c3715SXin Li int    BLASFUNC(caxpy) (const int *, const float  *, const float  *, const int *, float  *, const int *);
37*bf2c3715SXin Li int    BLASFUNC(zaxpy) (const int *, const double *, const double *, const int *, double *, const int *);
38*bf2c3715SXin Li int    BLASFUNC(xaxpy) (const int *, const double *, const double *, const int *, double *, const int *);
39*bf2c3715SXin Li int    BLASFUNC(caxpyc)(const int *, const float  *, const float  *, const int *, float  *, const int *);
40*bf2c3715SXin Li int    BLASFUNC(zaxpyc)(const int *, const double *, const double *, const int *, double *, const int *);
41*bf2c3715SXin Li int    BLASFUNC(xaxpyc)(const int *, const double *, const double *, const int *, double *, const int *);
42*bf2c3715SXin Li 
43*bf2c3715SXin Li int    BLASFUNC(scopy) (int *, float  *, int *, float  *, int *);
44*bf2c3715SXin Li int    BLASFUNC(dcopy) (int *, double *, int *, double *, int *);
45*bf2c3715SXin Li int    BLASFUNC(qcopy) (int *, double *, int *, double *, int *);
46*bf2c3715SXin Li int    BLASFUNC(ccopy) (int *, float  *, int *, float  *, int *);
47*bf2c3715SXin Li int    BLASFUNC(zcopy) (int *, double *, int *, double *, int *);
48*bf2c3715SXin Li int    BLASFUNC(xcopy) (int *, double *, int *, double *, int *);
49*bf2c3715SXin Li 
50*bf2c3715SXin Li int    BLASFUNC(sswap) (int *, float  *, int *, float  *, int *);
51*bf2c3715SXin Li int    BLASFUNC(dswap) (int *, double *, int *, double *, int *);
52*bf2c3715SXin Li int    BLASFUNC(qswap) (int *, double *, int *, double *, int *);
53*bf2c3715SXin Li int    BLASFUNC(cswap) (int *, float  *, int *, float  *, int *);
54*bf2c3715SXin Li int    BLASFUNC(zswap) (int *, double *, int *, double *, int *);
55*bf2c3715SXin Li int    BLASFUNC(xswap) (int *, double *, int *, double *, int *);
56*bf2c3715SXin Li 
57*bf2c3715SXin Li float  BLASFUNC(sasum) (int *, float  *, int *);
58*bf2c3715SXin Li float  BLASFUNC(scasum)(int *, float  *, int *);
59*bf2c3715SXin Li double BLASFUNC(dasum) (int *, double *, int *);
60*bf2c3715SXin Li double BLASFUNC(qasum) (int *, double *, int *);
61*bf2c3715SXin Li double BLASFUNC(dzasum)(int *, double *, int *);
62*bf2c3715SXin Li double BLASFUNC(qxasum)(int *, double *, int *);
63*bf2c3715SXin Li 
64*bf2c3715SXin Li int    BLASFUNC(isamax)(int *, float  *, int *);
65*bf2c3715SXin Li int    BLASFUNC(idamax)(int *, double *, int *);
66*bf2c3715SXin Li int    BLASFUNC(iqamax)(int *, double *, int *);
67*bf2c3715SXin Li int    BLASFUNC(icamax)(int *, float  *, int *);
68*bf2c3715SXin Li int    BLASFUNC(izamax)(int *, double *, int *);
69*bf2c3715SXin Li int    BLASFUNC(ixamax)(int *, double *, int *);
70*bf2c3715SXin Li 
71*bf2c3715SXin Li int    BLASFUNC(ismax) (int *, float  *, int *);
72*bf2c3715SXin Li int    BLASFUNC(idmax) (int *, double *, int *);
73*bf2c3715SXin Li int    BLASFUNC(iqmax) (int *, double *, int *);
74*bf2c3715SXin Li int    BLASFUNC(icmax) (int *, float  *, int *);
75*bf2c3715SXin Li int    BLASFUNC(izmax) (int *, double *, int *);
76*bf2c3715SXin Li int    BLASFUNC(ixmax) (int *, double *, int *);
77*bf2c3715SXin Li 
78*bf2c3715SXin Li int    BLASFUNC(isamin)(int *, float  *, int *);
79*bf2c3715SXin Li int    BLASFUNC(idamin)(int *, double *, int *);
80*bf2c3715SXin Li int    BLASFUNC(iqamin)(int *, double *, int *);
81*bf2c3715SXin Li int    BLASFUNC(icamin)(int *, float  *, int *);
82*bf2c3715SXin Li int    BLASFUNC(izamin)(int *, double *, int *);
83*bf2c3715SXin Li int    BLASFUNC(ixamin)(int *, double *, int *);
84*bf2c3715SXin Li 
85*bf2c3715SXin Li int    BLASFUNC(ismin)(int *, float  *, int *);
86*bf2c3715SXin Li int    BLASFUNC(idmin)(int *, double *, int *);
87*bf2c3715SXin Li int    BLASFUNC(iqmin)(int *, double *, int *);
88*bf2c3715SXin Li int    BLASFUNC(icmin)(int *, float  *, int *);
89*bf2c3715SXin Li int    BLASFUNC(izmin)(int *, double *, int *);
90*bf2c3715SXin Li int    BLASFUNC(ixmin)(int *, double *, int *);
91*bf2c3715SXin Li 
92*bf2c3715SXin Li float  BLASFUNC(samax) (int *, float  *, int *);
93*bf2c3715SXin Li double BLASFUNC(damax) (int *, double *, int *);
94*bf2c3715SXin Li double BLASFUNC(qamax) (int *, double *, int *);
95*bf2c3715SXin Li float  BLASFUNC(scamax)(int *, float  *, int *);
96*bf2c3715SXin Li double BLASFUNC(dzamax)(int *, double *, int *);
97*bf2c3715SXin Li double BLASFUNC(qxamax)(int *, double *, int *);
98*bf2c3715SXin Li 
99*bf2c3715SXin Li float  BLASFUNC(samin) (int *, float  *, int *);
100*bf2c3715SXin Li double BLASFUNC(damin) (int *, double *, int *);
101*bf2c3715SXin Li double BLASFUNC(qamin) (int *, double *, int *);
102*bf2c3715SXin Li float  BLASFUNC(scamin)(int *, float  *, int *);
103*bf2c3715SXin Li double BLASFUNC(dzamin)(int *, double *, int *);
104*bf2c3715SXin Li double BLASFUNC(qxamin)(int *, double *, int *);
105*bf2c3715SXin Li 
106*bf2c3715SXin Li float  BLASFUNC(smax)  (int *, float  *, int *);
107*bf2c3715SXin Li double BLASFUNC(dmax)  (int *, double *, int *);
108*bf2c3715SXin Li double BLASFUNC(qmax)  (int *, double *, int *);
109*bf2c3715SXin Li float  BLASFUNC(scmax) (int *, float  *, int *);
110*bf2c3715SXin Li double BLASFUNC(dzmax) (int *, double *, int *);
111*bf2c3715SXin Li double BLASFUNC(qxmax) (int *, double *, int *);
112*bf2c3715SXin Li 
113*bf2c3715SXin Li float  BLASFUNC(smin)  (int *, float  *, int *);
114*bf2c3715SXin Li double BLASFUNC(dmin)  (int *, double *, int *);
115*bf2c3715SXin Li double BLASFUNC(qmin)  (int *, double *, int *);
116*bf2c3715SXin Li float  BLASFUNC(scmin) (int *, float  *, int *);
117*bf2c3715SXin Li double BLASFUNC(dzmin) (int *, double *, int *);
118*bf2c3715SXin Li double BLASFUNC(qxmin) (int *, double *, int *);
119*bf2c3715SXin Li 
120*bf2c3715SXin Li int    BLASFUNC(sscal) (int *,  float  *, float  *, int *);
121*bf2c3715SXin Li int    BLASFUNC(dscal) (int *,  double *, double *, int *);
122*bf2c3715SXin Li int    BLASFUNC(qscal) (int *,  double *, double *, int *);
123*bf2c3715SXin Li int    BLASFUNC(cscal) (int *,  float  *, float  *, int *);
124*bf2c3715SXin Li int    BLASFUNC(zscal) (int *,  double *, double *, int *);
125*bf2c3715SXin Li int    BLASFUNC(xscal) (int *,  double *, double *, int *);
126*bf2c3715SXin Li int    BLASFUNC(csscal)(int *,  float  *, float  *, int *);
127*bf2c3715SXin Li int    BLASFUNC(zdscal)(int *,  double *, double *, int *);
128*bf2c3715SXin Li int    BLASFUNC(xqscal)(int *,  double *, double *, int *);
129*bf2c3715SXin Li 
130*bf2c3715SXin Li float  BLASFUNC(snrm2) (int *, float  *, int *);
131*bf2c3715SXin Li float  BLASFUNC(scnrm2)(int *, float  *, int *);
132*bf2c3715SXin Li 
133*bf2c3715SXin Li double BLASFUNC(dnrm2) (int *, double *, int *);
134*bf2c3715SXin Li double BLASFUNC(qnrm2) (int *, double *, int *);
135*bf2c3715SXin Li double BLASFUNC(dznrm2)(int *, double *, int *);
136*bf2c3715SXin Li double BLASFUNC(qxnrm2)(int *, double *, int *);
137*bf2c3715SXin Li 
138*bf2c3715SXin Li int    BLASFUNC(srot)  (int *, float  *, int *, float  *, int *, float  *, float  *);
139*bf2c3715SXin Li int    BLASFUNC(drot)  (int *, double *, int *, double *, int *, double *, double *);
140*bf2c3715SXin Li int    BLASFUNC(qrot)  (int *, double *, int *, double *, int *, double *, double *);
141*bf2c3715SXin Li int    BLASFUNC(csrot) (int *, float  *, int *, float  *, int *, float  *, float  *);
142*bf2c3715SXin Li int    BLASFUNC(zdrot) (int *, double *, int *, double *, int *, double *, double *);
143*bf2c3715SXin Li int    BLASFUNC(xqrot) (int *, double *, int *, double *, int *, double *, double *);
144*bf2c3715SXin Li 
145*bf2c3715SXin Li int    BLASFUNC(srotg) (float  *, float  *, float  *, float  *);
146*bf2c3715SXin Li int    BLASFUNC(drotg) (double *, double *, double *, double *);
147*bf2c3715SXin Li int    BLASFUNC(qrotg) (double *, double *, double *, double *);
148*bf2c3715SXin Li int    BLASFUNC(crotg) (float  *, float  *, float  *, float  *);
149*bf2c3715SXin Li int    BLASFUNC(zrotg) (double *, double *, double *, double *);
150*bf2c3715SXin Li int    BLASFUNC(xrotg) (double *, double *, double *, double *);
151*bf2c3715SXin Li 
152*bf2c3715SXin Li int    BLASFUNC(srotmg)(float  *, float  *, float  *, float  *, float  *);
153*bf2c3715SXin Li int    BLASFUNC(drotmg)(double *, double *, double *, double *, double *);
154*bf2c3715SXin Li 
155*bf2c3715SXin Li int    BLASFUNC(srotm) (int *, float  *, int *, float  *, int *, float  *);
156*bf2c3715SXin Li int    BLASFUNC(drotm) (int *, double *, int *, double *, int *, double *);
157*bf2c3715SXin Li int    BLASFUNC(qrotm) (int *, double *, int *, double *, int *, double *);
158*bf2c3715SXin Li 
159*bf2c3715SXin Li /* Level 2 routines */
160*bf2c3715SXin Li 
161*bf2c3715SXin Li int BLASFUNC(sger)(int *,    int *, float *,  float *, int *,
162*bf2c3715SXin Li 		   float *,  int *, float *,  int *);
163*bf2c3715SXin Li int BLASFUNC(dger)(int *,    int *, double *, double *, int *,
164*bf2c3715SXin Li 		   double *, int *, double *, int *);
165*bf2c3715SXin Li int BLASFUNC(qger)(int *,    int *, double *, double *, int *,
166*bf2c3715SXin Li 		   double *, int *, double *, int *);
167*bf2c3715SXin Li int BLASFUNC(cgeru)(int *,    int *, float *,  float *, int *,
168*bf2c3715SXin Li 		    float *,  int *, float *,  int *);
169*bf2c3715SXin Li int BLASFUNC(cgerc)(int *,    int *, float *,  float *, int *,
170*bf2c3715SXin Li 		    float *,  int *, float *,  int *);
171*bf2c3715SXin Li int BLASFUNC(zgeru)(int *,    int *, double *, double *, int *,
172*bf2c3715SXin Li 		    double *, int *, double *, int *);
173*bf2c3715SXin Li int BLASFUNC(zgerc)(int *,    int *, double *, double *, int *,
174*bf2c3715SXin Li 		    double *, int *, double *, int *);
175*bf2c3715SXin Li int BLASFUNC(xgeru)(int *,    int *, double *, double *, int *,
176*bf2c3715SXin Li 		    double *, int *, double *, int *);
177*bf2c3715SXin Li int BLASFUNC(xgerc)(int *,    int *, double *, double *, int *,
178*bf2c3715SXin Li 		    double *, int *, double *, int *);
179*bf2c3715SXin Li 
180*bf2c3715SXin Li int BLASFUNC(sgemv)(const char *, const int *, const int *, const float  *, const float  *, const int *, const float  *, const int *, const float  *, float  *, const int *);
181*bf2c3715SXin Li int BLASFUNC(dgemv)(const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
182*bf2c3715SXin Li int BLASFUNC(qgemv)(const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
183*bf2c3715SXin Li int BLASFUNC(cgemv)(const char *, const int *, const int *, const float  *, const float  *, const int *, const float  *, const int *, const float  *, float  *, const int *);
184*bf2c3715SXin Li int BLASFUNC(zgemv)(const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
185*bf2c3715SXin Li int BLASFUNC(xgemv)(const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
186*bf2c3715SXin Li 
187*bf2c3715SXin Li int BLASFUNC(strsv) (const char *, const char *, const char *, const int *, const float  *, const int *, float  *, const int *);
188*bf2c3715SXin Li int BLASFUNC(dtrsv) (const char *, const char *, const char *, const int *, const double *, const int *, double *, const int *);
189*bf2c3715SXin Li int BLASFUNC(qtrsv) (const char *, const char *, const char *, const int *, const double *, const int *, double *, const int *);
190*bf2c3715SXin Li int BLASFUNC(ctrsv) (const char *, const char *, const char *, const int *, const float  *, const int *, float  *, const int *);
191*bf2c3715SXin Li int BLASFUNC(ztrsv) (const char *, const char *, const char *, const int *, const double *, const int *, double *, const int *);
192*bf2c3715SXin Li int BLASFUNC(xtrsv) (const char *, const char *, const char *, const int *, const double *, const int *, double *, const int *);
193*bf2c3715SXin Li 
194*bf2c3715SXin Li int BLASFUNC(stpsv) (char *, char *, char *, int *, float  *, float  *, int *);
195*bf2c3715SXin Li int BLASFUNC(dtpsv) (char *, char *, char *, int *, double *, double *, int *);
196*bf2c3715SXin Li int BLASFUNC(qtpsv) (char *, char *, char *, int *, double *, double *, int *);
197*bf2c3715SXin Li int BLASFUNC(ctpsv) (char *, char *, char *, int *, float  *, float  *, int *);
198*bf2c3715SXin Li int BLASFUNC(ztpsv) (char *, char *, char *, int *, double *, double *, int *);
199*bf2c3715SXin Li int BLASFUNC(xtpsv) (char *, char *, char *, int *, double *, double *, int *);
200*bf2c3715SXin Li 
201*bf2c3715SXin Li int BLASFUNC(strmv) (const char *, const char *, const char *, const int *, const float  *, const int *, float  *, const int *);
202*bf2c3715SXin Li int BLASFUNC(dtrmv) (const char *, const char *, const char *, const int *, const double *, const int *, double *, const int *);
203*bf2c3715SXin Li int BLASFUNC(qtrmv) (const char *, const char *, const char *, const int *, const double *, const int *, double *, const int *);
204*bf2c3715SXin Li int BLASFUNC(ctrmv) (const char *, const char *, const char *, const int *, const float  *, const int *, float  *, const int *);
205*bf2c3715SXin Li int BLASFUNC(ztrmv) (const char *, const char *, const char *, const int *, const double *, const int *, double *, const int *);
206*bf2c3715SXin Li int BLASFUNC(xtrmv) (const char *, const char *, const char *, const int *, const double *, const int *, double *, const int *);
207*bf2c3715SXin Li 
208*bf2c3715SXin Li int BLASFUNC(stpmv) (char *, char *, char *, int *, float  *, float  *, int *);
209*bf2c3715SXin Li int BLASFUNC(dtpmv) (char *, char *, char *, int *, double *, double *, int *);
210*bf2c3715SXin Li int BLASFUNC(qtpmv) (char *, char *, char *, int *, double *, double *, int *);
211*bf2c3715SXin Li int BLASFUNC(ctpmv) (char *, char *, char *, int *, float  *, float  *, int *);
212*bf2c3715SXin Li int BLASFUNC(ztpmv) (char *, char *, char *, int *, double *, double *, int *);
213*bf2c3715SXin Li int BLASFUNC(xtpmv) (char *, char *, char *, int *, double *, double *, int *);
214*bf2c3715SXin Li 
215*bf2c3715SXin Li int BLASFUNC(stbmv) (char *, char *, char *, int *, int *, float  *, int *, float  *, int *);
216*bf2c3715SXin Li int BLASFUNC(dtbmv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
217*bf2c3715SXin Li int BLASFUNC(qtbmv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
218*bf2c3715SXin Li int BLASFUNC(ctbmv) (char *, char *, char *, int *, int *, float  *, int *, float  *, int *);
219*bf2c3715SXin Li int BLASFUNC(ztbmv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
220*bf2c3715SXin Li int BLASFUNC(xtbmv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
221*bf2c3715SXin Li 
222*bf2c3715SXin Li int BLASFUNC(stbsv) (char *, char *, char *, int *, int *, float  *, int *, float  *, int *);
223*bf2c3715SXin Li int BLASFUNC(dtbsv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
224*bf2c3715SXin Li int BLASFUNC(qtbsv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
225*bf2c3715SXin Li int BLASFUNC(ctbsv) (char *, char *, char *, int *, int *, float  *, int *, float  *, int *);
226*bf2c3715SXin Li int BLASFUNC(ztbsv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
227*bf2c3715SXin Li int BLASFUNC(xtbsv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
228*bf2c3715SXin Li 
229*bf2c3715SXin Li int BLASFUNC(ssymv) (const char *, const int *, const float  *, const float  *, const int *, const float  *, const int *, const float  *, float  *, const int *);
230*bf2c3715SXin Li int BLASFUNC(dsymv) (const char *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
231*bf2c3715SXin Li int BLASFUNC(qsymv) (const char *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
232*bf2c3715SXin Li 
233*bf2c3715SXin Li int BLASFUNC(sspmv) (char *, int *, float  *, float *,
234*bf2c3715SXin Li 		     float  *, int *, float *, float *, int *);
235*bf2c3715SXin Li int BLASFUNC(dspmv) (char *, int *, double  *, double *,
236*bf2c3715SXin Li 		     double  *, int *, double *, double *, int *);
237*bf2c3715SXin Li int BLASFUNC(qspmv) (char *, int *, double  *, double *,
238*bf2c3715SXin Li 		     double  *, int *, double *, double *, int *);
239*bf2c3715SXin Li 
240*bf2c3715SXin Li int BLASFUNC(ssyr) (const char *, const int *, const float   *, const float  *, const int *, float  *, const int *);
241*bf2c3715SXin Li int BLASFUNC(dsyr) (const char *, const int *, const double  *, const double *, const int *, double *, const int *);
242*bf2c3715SXin Li int BLASFUNC(qsyr) (const char *, const int *, const double  *, const double *, const int *, double *, const int *);
243*bf2c3715SXin Li 
244*bf2c3715SXin Li int BLASFUNC(ssyr2) (const char *, const int *, const float   *, const float  *, const int *, const float  *, const int *, float  *, const int *);
245*bf2c3715SXin Li int BLASFUNC(dsyr2) (const char *, const int *, const double  *, const double *, const int *, const double *, const int *, double *, const int *);
246*bf2c3715SXin Li int BLASFUNC(qsyr2) (const char *, const int *, const double  *, const double *, const int *, const double *, const int *, double *, const int *);
247*bf2c3715SXin Li int BLASFUNC(csyr2) (const char *, const int *, const float   *, const float  *, const int *, const float  *, const int *, float  *, const int *);
248*bf2c3715SXin Li int BLASFUNC(zsyr2) (const char *, const int *, const double  *, const double *, const int *, const double *, const int *, double *, const int *);
249*bf2c3715SXin Li int BLASFUNC(xsyr2) (const char *, const int *, const double  *, const double *, const int *, const double *, const int *, double *, const int *);
250*bf2c3715SXin Li 
251*bf2c3715SXin Li int BLASFUNC(sspr) (char *, int *, float   *, float  *, int *,
252*bf2c3715SXin Li 		    float  *);
253*bf2c3715SXin Li int BLASFUNC(dspr) (char *, int *, double  *, double *, int *,
254*bf2c3715SXin Li 		    double *);
255*bf2c3715SXin Li int BLASFUNC(qspr) (char *, int *, double  *, double *, int *,
256*bf2c3715SXin Li 		    double *);
257*bf2c3715SXin Li 
258*bf2c3715SXin Li int BLASFUNC(sspr2) (char *, int *, float   *,
259*bf2c3715SXin Li 		     float  *, int *, float  *, int *, float  *);
260*bf2c3715SXin Li int BLASFUNC(dspr2) (char *, int *, double  *,
261*bf2c3715SXin Li 		     double *, int *, double *, int *, double *);
262*bf2c3715SXin Li int BLASFUNC(qspr2) (char *, int *, double  *,
263*bf2c3715SXin Li 		     double *, int *, double *, int *, double *);
264*bf2c3715SXin Li int BLASFUNC(cspr2) (char *, int *, float   *,
265*bf2c3715SXin Li 		     float  *, int *, float  *, int *, float  *);
266*bf2c3715SXin Li int BLASFUNC(zspr2) (char *, int *, double  *,
267*bf2c3715SXin Li 		     double *, int *, double *, int *, double *);
268*bf2c3715SXin Li int BLASFUNC(xspr2) (char *, int *, double  *,
269*bf2c3715SXin Li 		     double *, int *, double *, int *, double *);
270*bf2c3715SXin Li 
271*bf2c3715SXin Li int BLASFUNC(cher) (char *, int *, float   *, float  *, int *,
272*bf2c3715SXin Li 		    float  *, int *);
273*bf2c3715SXin Li int BLASFUNC(zher) (char *, int *, double  *, double *, int *,
274*bf2c3715SXin Li 		    double *, int *);
275*bf2c3715SXin Li int BLASFUNC(xher) (char *, int *, double  *, double *, int *,
276*bf2c3715SXin Li 		    double *, int *);
277*bf2c3715SXin Li 
278*bf2c3715SXin Li int BLASFUNC(chpr) (char *, int *, float   *, float  *, int *, float  *);
279*bf2c3715SXin Li int BLASFUNC(zhpr) (char *, int *, double  *, double *, int *, double *);
280*bf2c3715SXin Li int BLASFUNC(xhpr) (char *, int *, double  *, double *, int *, double *);
281*bf2c3715SXin Li 
282*bf2c3715SXin Li int BLASFUNC(cher2) (char *, int *, float   *,
283*bf2c3715SXin Li 		     float  *, int *, float  *, int *, float  *, int *);
284*bf2c3715SXin Li int BLASFUNC(zher2) (char *, int *, double  *,
285*bf2c3715SXin Li 		     double *, int *, double *, int *, double *, int *);
286*bf2c3715SXin Li int BLASFUNC(xher2) (char *, int *, double  *,
287*bf2c3715SXin Li 		     double *, int *, double *, int *, double *, int *);
288*bf2c3715SXin Li 
289*bf2c3715SXin Li int BLASFUNC(chpr2) (char *, int *, float   *,
290*bf2c3715SXin Li 		     float  *, int *, float  *, int *, float  *);
291*bf2c3715SXin Li int BLASFUNC(zhpr2) (char *, int *, double  *,
292*bf2c3715SXin Li 		     double *, int *, double *, int *, double *);
293*bf2c3715SXin Li int BLASFUNC(xhpr2) (char *, int *, double  *,
294*bf2c3715SXin Li 		     double *, int *, double *, int *, double *);
295*bf2c3715SXin Li 
296*bf2c3715SXin Li int BLASFUNC(chemv) (const char *, const int *, const float  *, const float  *, const int *, const float  *, const int *, const float  *, float  *, const int *);
297*bf2c3715SXin Li int BLASFUNC(zhemv) (const char *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
298*bf2c3715SXin Li int BLASFUNC(xhemv) (const char *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
299*bf2c3715SXin Li 
300*bf2c3715SXin Li int BLASFUNC(chpmv) (char *, int *, float  *, float *,
301*bf2c3715SXin Li 		     float  *, int *, float *, float *, int *);
302*bf2c3715SXin Li int BLASFUNC(zhpmv) (char *, int *, double  *, double *,
303*bf2c3715SXin Li 		     double  *, int *, double *, double *, int *);
304*bf2c3715SXin Li int BLASFUNC(xhpmv) (char *, int *, double  *, double *,
305*bf2c3715SXin Li 		     double  *, int *, double *, double *, int *);
306*bf2c3715SXin Li 
307*bf2c3715SXin Li int BLASFUNC(snorm)(char *, int *, int *, float  *, int *);
308*bf2c3715SXin Li int BLASFUNC(dnorm)(char *, int *, int *, double *, int *);
309*bf2c3715SXin Li int BLASFUNC(cnorm)(char *, int *, int *, float  *, int *);
310*bf2c3715SXin Li int BLASFUNC(znorm)(char *, int *, int *, double *, int *);
311*bf2c3715SXin Li 
312*bf2c3715SXin Li int BLASFUNC(sgbmv)(char *, int *, int *, int *, int *, float  *, float  *, int *,
313*bf2c3715SXin Li 		    float  *, int *, float  *, float  *, int *);
314*bf2c3715SXin Li int BLASFUNC(dgbmv)(char *, int *, int *, int *, int *, double *, double *, int *,
315*bf2c3715SXin Li 		    double *, int *, double *, double *, int *);
316*bf2c3715SXin Li int BLASFUNC(qgbmv)(char *, int *, int *, int *, int *, double *, double *, int *,
317*bf2c3715SXin Li 		    double *, int *, double *, double *, int *);
318*bf2c3715SXin Li int BLASFUNC(cgbmv)(char *, int *, int *, int *, int *, float  *, float  *, int *,
319*bf2c3715SXin Li 		    float  *, int *, float  *, float  *, int *);
320*bf2c3715SXin Li int BLASFUNC(zgbmv)(char *, int *, int *, int *, int *, double *, double *, int *,
321*bf2c3715SXin Li 		    double *, int *, double *, double *, int *);
322*bf2c3715SXin Li int BLASFUNC(xgbmv)(char *, int *, int *, int *, int *, double *, double *, int *,
323*bf2c3715SXin Li 		    double *, int *, double *, double *, int *);
324*bf2c3715SXin Li 
325*bf2c3715SXin Li int BLASFUNC(ssbmv)(char *, int *, int *, float  *, float  *, int *,
326*bf2c3715SXin Li 		    float  *, int *, float  *, float  *, int *);
327*bf2c3715SXin Li int BLASFUNC(dsbmv)(char *, int *, int *, double *, double *, int *,
328*bf2c3715SXin Li 		    double *, int *, double *, double *, int *);
329*bf2c3715SXin Li int BLASFUNC(qsbmv)(char *, int *, int *, double *, double *, int *,
330*bf2c3715SXin Li 		    double *, int *, double *, double *, int *);
331*bf2c3715SXin Li int BLASFUNC(csbmv)(char *, int *, int *, float  *, float  *, int *,
332*bf2c3715SXin Li 		    float  *, int *, float  *, float  *, int *);
333*bf2c3715SXin Li int BLASFUNC(zsbmv)(char *, int *, int *, double *, double *, int *,
334*bf2c3715SXin Li 		    double *, int *, double *, double *, int *);
335*bf2c3715SXin Li int BLASFUNC(xsbmv)(char *, int *, int *, double *, double *, int *,
336*bf2c3715SXin Li 		    double *, int *, double *, double *, int *);
337*bf2c3715SXin Li 
338*bf2c3715SXin Li int BLASFUNC(chbmv)(char *, int *, int *, float  *, float  *, int *,
339*bf2c3715SXin Li 		    float  *, int *, float  *, float  *, int *);
340*bf2c3715SXin Li int BLASFUNC(zhbmv)(char *, int *, int *, double *, double *, int *,
341*bf2c3715SXin Li 		    double *, int *, double *, double *, int *);
342*bf2c3715SXin Li int BLASFUNC(xhbmv)(char *, int *, int *, double *, double *, int *,
343*bf2c3715SXin Li 		    double *, int *, double *, double *, int *);
344*bf2c3715SXin Li 
345*bf2c3715SXin Li /* Level 3 routines */
346*bf2c3715SXin Li 
347*bf2c3715SXin Li int BLASFUNC(sgemm)(const char *, const char *, const int *, const int *, const int *, const float  *, const float  *, const int *, const float  *, const int *, const float  *, float  *, const int *);
348*bf2c3715SXin Li int BLASFUNC(dgemm)(const char *, const char *, const int *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
349*bf2c3715SXin Li int BLASFUNC(qgemm)(const char *, const char *, const int *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
350*bf2c3715SXin Li int BLASFUNC(cgemm)(const char *, const char *, const int *, const int *, const int *, const float  *, const float  *, const int *, const float  *, const int *, const float  *, float  *, const int *);
351*bf2c3715SXin Li int BLASFUNC(zgemm)(const char *, const char *, const int *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
352*bf2c3715SXin Li int BLASFUNC(xgemm)(const char *, const char *, const int *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
353*bf2c3715SXin Li 
354*bf2c3715SXin Li int BLASFUNC(cgemm3m)(char *, char *, int *, int *, int *, float *,
355*bf2c3715SXin Li 	   float  *, int *, float  *, int *, float  *, float  *, int *);
356*bf2c3715SXin Li int BLASFUNC(zgemm3m)(char *, char *, int *, int *, int *, double *,
357*bf2c3715SXin Li 	   double *, int *, double *, int *, double *, double *, int *);
358*bf2c3715SXin Li int BLASFUNC(xgemm3m)(char *, char *, int *, int *, int *, double *,
359*bf2c3715SXin Li 	   double *, int *, double *, int *, double *, double *, int *);
360*bf2c3715SXin Li 
361*bf2c3715SXin Li int BLASFUNC(sge2mm)(char *, char *, char *, int *, int *,
362*bf2c3715SXin Li 		     float *, float  *, int *, float  *, int *,
363*bf2c3715SXin Li 		     float *, float  *, int *);
364*bf2c3715SXin Li int BLASFUNC(dge2mm)(char *, char *, char *, int *, int *,
365*bf2c3715SXin Li 		     double *, double  *, int *, double  *, int *,
366*bf2c3715SXin Li 		     double *, double  *, int *);
367*bf2c3715SXin Li int BLASFUNC(cge2mm)(char *, char *, char *, int *, int *,
368*bf2c3715SXin Li 		     float *, float  *, int *, float  *, int *,
369*bf2c3715SXin Li 		     float *, float  *, int *);
370*bf2c3715SXin Li int BLASFUNC(zge2mm)(char *, char *, char *, int *, int *,
371*bf2c3715SXin Li 		     double *, double  *, int *, double  *, int *,
372*bf2c3715SXin Li 		     double *, double  *, int *);
373*bf2c3715SXin Li 
374*bf2c3715SXin Li int BLASFUNC(strsm)(const char *, const char *, const char *, const char *, const int *, const int *, const float *,  const float *,  const int *, float *,  const int *);
375*bf2c3715SXin Li int BLASFUNC(dtrsm)(const char *, const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, double *, const int *);
376*bf2c3715SXin Li int BLASFUNC(qtrsm)(const char *, const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, double *, const int *);
377*bf2c3715SXin Li int BLASFUNC(ctrsm)(const char *, const char *, const char *, const char *, const int *, const int *, const float *,  const float *,  const int *, float *,  const int *);
378*bf2c3715SXin Li int BLASFUNC(ztrsm)(const char *, const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, double *, const int *);
379*bf2c3715SXin Li int BLASFUNC(xtrsm)(const char *, const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, double *, const int *);
380*bf2c3715SXin Li 
381*bf2c3715SXin Li int BLASFUNC(strmm)(const char *, const char *, const char *, const char *, const int *, const int *, const float *,  const float *,  const int *, float *,  const int *);
382*bf2c3715SXin Li int BLASFUNC(dtrmm)(const char *, const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, double *, const int *);
383*bf2c3715SXin Li int BLASFUNC(qtrmm)(const char *, const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, double *, const int *);
384*bf2c3715SXin Li int BLASFUNC(ctrmm)(const char *, const char *, const char *, const char *, const int *, const int *, const float *,  const float *,  const int *, float *,  const int *);
385*bf2c3715SXin Li int BLASFUNC(ztrmm)(const char *, const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, double *, const int *);
386*bf2c3715SXin Li int BLASFUNC(xtrmm)(const char *, const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, double *, const int *);
387*bf2c3715SXin Li 
388*bf2c3715SXin Li int BLASFUNC(ssymm)(const char *, const char *, const int *, const int *, const float  *, const float  *, const int *, const float  *, const int *, const float  *, float  *, const int *);
389*bf2c3715SXin Li int BLASFUNC(dsymm)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
390*bf2c3715SXin Li int BLASFUNC(qsymm)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
391*bf2c3715SXin Li int BLASFUNC(csymm)(const char *, const char *, const int *, const int *, const float  *, const float  *, const int *, const float  *, const int *, const float  *, float  *, const int *);
392*bf2c3715SXin Li int BLASFUNC(zsymm)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
393*bf2c3715SXin Li int BLASFUNC(xsymm)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
394*bf2c3715SXin Li 
395*bf2c3715SXin Li int BLASFUNC(csymm3m)(char *, char *, int *, int *, float  *, float  *, int *, float  *, int *, float  *, float  *, int *);
396*bf2c3715SXin Li int BLASFUNC(zsymm3m)(char *, char *, int *, int *, double *, double *, int *, double *, int *, double *, double *, int *);
397*bf2c3715SXin Li int BLASFUNC(xsymm3m)(char *, char *, int *, int *, double *, double *, int *, double *, int *, double *, double *, int *);
398*bf2c3715SXin Li 
399*bf2c3715SXin Li int BLASFUNC(ssyrk)(const char *, const char *, const int *, const int *, const float  *, const float  *, const int *, const float  *, float  *, const int *);
400*bf2c3715SXin Li int BLASFUNC(dsyrk)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, double *, const int *);
401*bf2c3715SXin Li int BLASFUNC(qsyrk)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, double *, const int *);
402*bf2c3715SXin Li int BLASFUNC(csyrk)(const char *, const char *, const int *, const int *, const float  *, const float  *, const int *, const float  *, float  *, const int *);
403*bf2c3715SXin Li int BLASFUNC(zsyrk)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, double *, const int *);
404*bf2c3715SXin Li int BLASFUNC(xsyrk)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, double *, const int *);
405*bf2c3715SXin Li 
406*bf2c3715SXin Li int BLASFUNC(ssyr2k)(const char *, const char *, const int *, const int *, const float  *, const float  *, const int *, const float *, const int *, const float  *, float  *, const int *);
407*bf2c3715SXin Li int BLASFUNC(dsyr2k)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double*, const int *, const double *, double *, const int *);
408*bf2c3715SXin Li int BLASFUNC(qsyr2k)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double*, const int *, const double *, double *, const int *);
409*bf2c3715SXin Li int BLASFUNC(csyr2k)(const char *, const char *, const int *, const int *, const float  *, const float  *, const int *, const float *, const int *, const float  *, float  *, const int *);
410*bf2c3715SXin Li int BLASFUNC(zsyr2k)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double*, const int *, const double *, double *, const int *);
411*bf2c3715SXin Li int BLASFUNC(xsyr2k)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double*, const int *, const double *, double *, const int *);
412*bf2c3715SXin Li 
413*bf2c3715SXin Li int BLASFUNC(chemm)(const char *, const char *, const int *, const int *, const float  *, const float  *, const int *, const float  *, const int *, const float  *, float  *, const int *);
414*bf2c3715SXin Li int BLASFUNC(zhemm)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
415*bf2c3715SXin Li int BLASFUNC(xhemm)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
416*bf2c3715SXin Li 
417*bf2c3715SXin Li int BLASFUNC(chemm3m)(char *, char *, int *, int *, float  *, float  *, int *,
418*bf2c3715SXin Li 	   float  *, int *, float  *, float  *, int *);
419*bf2c3715SXin Li int BLASFUNC(zhemm3m)(char *, char *, int *, int *, double *, double *, int *,
420*bf2c3715SXin Li 	   double *, int *, double *, double *, int *);
421*bf2c3715SXin Li int BLASFUNC(xhemm3m)(char *, char *, int *, int *, double *, double *, int *,
422*bf2c3715SXin Li 	   double *, int *, double *, double *, int *);
423*bf2c3715SXin Li 
424*bf2c3715SXin Li int BLASFUNC(cherk)(const char *, const char *, const int *, const int *, const float  *, const float  *, const int *, const float  *, float  *, const int *);
425*bf2c3715SXin Li int BLASFUNC(zherk)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, double *, const int *);
426*bf2c3715SXin Li int BLASFUNC(xherk)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, double *, const int *);
427*bf2c3715SXin Li 
428*bf2c3715SXin Li int BLASFUNC(cher2k)(const char *, const char *, const int *, const int *, const float  *, const float  *, const int *, const float  *, const int *, const float  *, float  *, const int *);
429*bf2c3715SXin Li int BLASFUNC(zher2k)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
430*bf2c3715SXin Li int BLASFUNC(xher2k)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
431*bf2c3715SXin Li int BLASFUNC(cher2m)(const char *, const char *, const char *, const int *, const int *, const float  *, const float  *, const int *, const float *, const int *, const float  *, float  *, const int *);
432*bf2c3715SXin Li int BLASFUNC(zher2m)(const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double*, const int *, const double *, double *, const int *);
433*bf2c3715SXin Li int BLASFUNC(xher2m)(const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double*, const int *, const double *, double *, const int *);
434*bf2c3715SXin Li 
435*bf2c3715SXin Li 
436*bf2c3715SXin Li #ifdef __cplusplus
437*bf2c3715SXin Li }
438*bf2c3715SXin Li #endif
439*bf2c3715SXin Li 
440*bf2c3715SXin Li #endif
441