riscv64: Add RISC-V target
[platform/upstream/openblas.git] / common_interface.h
1 /*********************************************************************/
2 /* Copyright 2009, 2010 The University of Texas at Austin.           */
3 /* All rights reserved.                                              */
4 /*                                                                   */
5 /* Redistribution and use in source and binary forms, with or        */
6 /* without modification, are permitted provided that the following   */
7 /* conditions are met:                                               */
8 /*                                                                   */
9 /*   1. Redistributions of source code must retain the above         */
10 /*      copyright notice, this list of conditions and the following  */
11 /*      disclaimer.                                                  */
12 /*                                                                   */
13 /*   2. Redistributions in binary form must reproduce the above      */
14 /*      copyright notice, this list of conditions and the following  */
15 /*      disclaimer in the documentation and/or other materials       */
16 /*      provided with the distribution.                              */
17 /*                                                                   */
18 /*    THIS  SOFTWARE IS PROVIDED  BY THE  UNIVERSITY OF  TEXAS AT    */
19 /*    AUSTIN  ``AS IS''  AND ANY  EXPRESS OR  IMPLIED WARRANTIES,    */
20 /*    INCLUDING, BUT  NOT LIMITED  TO, THE IMPLIED  WARRANTIES OF    */
21 /*    MERCHANTABILITY  AND FITNESS FOR  A PARTICULAR  PURPOSE ARE    */
22 /*    DISCLAIMED.  IN  NO EVENT SHALL THE UNIVERSITY  OF TEXAS AT    */
23 /*    AUSTIN OR CONTRIBUTORS BE  LIABLE FOR ANY DIRECT, INDIRECT,    */
24 /*    INCIDENTAL,  SPECIAL, EXEMPLARY,  OR  CONSEQUENTIAL DAMAGES    */
25 /*    (INCLUDING, BUT  NOT LIMITED TO,  PROCUREMENT OF SUBSTITUTE    */
26 /*    GOODS  OR  SERVICES; LOSS  OF  USE,  DATA,  OR PROFITS;  OR    */
27 /*    BUSINESS INTERRUPTION) HOWEVER CAUSED  AND ON ANY THEORY OF    */
28 /*    LIABILITY, WHETHER  IN CONTRACT, STRICT  LIABILITY, OR TORT    */
29 /*    (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING IN ANY WAY OUT    */
30 /*    OF  THE  USE OF  THIS  SOFTWARE,  EVEN  IF ADVISED  OF  THE    */
31 /*    POSSIBILITY OF SUCH DAMAGE.                                    */
32 /*                                                                   */
33 /* The views and conclusions contained in the software and           */
34 /* documentation are those of the authors and should not be          */
35 /* interpreted as representing official policies, either expressed   */
36 /* or implied, of The University of Texas at Austin.                 */
37 /*********************************************************************/
38
39 #ifndef ASSEMBLER
40
41 #ifdef __cplusplus
42 extern "C" {
43         /* Assume C declarations for C++ */
44 #endif  /* __cplusplus */
45
46 int    BLASFUNC(xerbla)(char *, blasint *info, blasint);
47
48 void    openblas_set_num_threads_(int *);
49
50 FLOATRET  BLASFUNC(sdot)  (blasint *, float  *, blasint *, float  *, blasint *);
51 FLOATRET  BLASFUNC(sdsdot)(blasint *, float  *,        float  *, blasint *, float  *, blasint *);
52
53 double BLASFUNC(dsdot) (blasint *, float  *, blasint *, float  *, blasint *);
54 double BLASFUNC(ddot)  (blasint *, double *, blasint *, double *, blasint *);
55 xdouble BLASFUNC(qdot)  (blasint *, xdouble *, blasint *, xdouble *, blasint *);
56
57 float  BLASFUNC(sbdot)     (blasint *, bfloat16 *, blasint *, bfloat16 *, blasint *);
58 void   BLASFUNC(sbstobf16) (blasint *, float *,    blasint *, bfloat16 *, blasint *);
59 void   BLASFUNC(sbdtobf16) (blasint *, double *,   blasint *, bfloat16 *, blasint *);
60 void   BLASFUNC(sbf16tos)  (blasint *, bfloat16 *, blasint *, float *,    blasint *);
61 void   BLASFUNC(dbf16tod)  (blasint *, bfloat16 *, blasint *, double *,   blasint *);
62
63 #ifdef RETURN_BY_STRUCT
64 typedef struct {
65   float r, i;
66 } myccomplex_t;
67
68 typedef struct {
69   double r, i;
70 } myzcomplex_t;
71
72 typedef struct {
73   xdouble r, i;
74 } myxcomplex_t;
75
76 myccomplex_t    BLASFUNC(cdotu)  (blasint *, float  *, blasint *, float  *, blasint *);
77 myccomplex_t    BLASFUNC(cdotc)  (blasint *, float  *, blasint *, float  *, blasint *);
78 myzcomplex_t    BLASFUNC(zdotu)  (blasint *, double  *, blasint *, double  *, blasint *);
79 myzcomplex_t    BLASFUNC(zdotc)  (blasint *, double  *, blasint *, double  *, blasint *);
80 myxcomplex_t    BLASFUNC(xdotu)  (blasint *, xdouble  *, blasint *, xdouble  *, blasint *);
81 myxcomplex_t    BLASFUNC(xdotc)  (blasint *, xdouble  *, blasint *, xdouble  *, blasint *);
82
83 #elif defined RETURN_BY_STACK
84 void  BLASFUNC(cdotu)  (openblas_complex_float   *,  blasint *, float  * , blasint *, float  *,  blasint *);
85 void  BLASFUNC(cdotc)  (openblas_complex_float   *,  blasint *, float  *,  blasint *, float  *,  blasint *);
86 void  BLASFUNC(zdotu)  (openblas_complex_double  *, blasint *, double  *, blasint *, double  *, blasint *);
87 void  BLASFUNC(zdotc)  (openblas_complex_double  *, blasint *, double  *, blasint *, double  *, blasint *);
88 void  BLASFUNC(xdotu)  (openblas_complex_xdouble *, blasint *, xdouble  *, blasint *, xdouble  *, blasint *);
89 void  BLASFUNC(xdotc)  (openblas_complex_xdouble *, blasint *, xdouble  *, blasint *, xdouble  *, blasint *);
90 #else
91 openblas_complex_float   BLASFUNC(cdotu)  (blasint *, float  *, blasint *, float  *, blasint *);
92 openblas_complex_float   BLASFUNC(cdotc)  (blasint *, float  *, blasint *, float  *, blasint *);
93 openblas_complex_double  BLASFUNC(zdotu)  (blasint *, double  *, blasint *, double  *, blasint *);
94 openblas_complex_double  BLASFUNC(zdotc)  (blasint *, double  *, blasint *, double  *, blasint *);
95 openblas_complex_xdouble BLASFUNC(xdotu)  (blasint *, xdouble  *, blasint *, xdouble  *, blasint *);
96 openblas_complex_xdouble BLASFUNC(xdotc)  (blasint *, xdouble  *, blasint *, xdouble  *, blasint *);
97 #endif
98
99 void    BLASFUNC(saxpy) (blasint *, float  *, float  *, blasint *, float  *, blasint *);
100 void    BLASFUNC(daxpy) (blasint *, double *, double *, blasint *, double *, blasint *);
101 void    BLASFUNC(qaxpy) (blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *);
102 void    BLASFUNC(caxpy) (blasint *, float  *, float  *, blasint *, float  *, blasint *);
103 void    BLASFUNC(zaxpy) (blasint *, double *, double *, blasint *, double *, blasint *);
104 void    BLASFUNC(xaxpy) (blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *);
105 void    BLASFUNC(caxpyc)(blasint *, float  *, float  *, blasint *, float  *, blasint *);
106 void    BLASFUNC(zaxpyc)(blasint *, double *, double *, blasint *, double *, blasint *);
107 void    BLASFUNC(xaxpyc)(blasint *, xdouble *, xdouble *, blasint *, xdouble *, blasint *);
108
109 void    BLASFUNC(scopy) (blasint *, float  *, blasint *, float  *, blasint *);
110 void    BLASFUNC(dcopy) (blasint *, double *, blasint *, double *, blasint *);
111 void    BLASFUNC(qcopy) (blasint *, xdouble *, blasint *, xdouble *, blasint *);
112 void    BLASFUNC(ccopy) (blasint *, float  *, blasint *, float  *, blasint *);
113 void    BLASFUNC(zcopy) (blasint *, double *, blasint *, double *, blasint *);
114 void    BLASFUNC(xcopy) (blasint *, xdouble *, blasint *, xdouble *, blasint *);
115
116 void    BLASFUNC(sswap) (blasint *, float  *, blasint *, float  *, blasint *);
117 void    BLASFUNC(dswap) (blasint *, double *, blasint *, double *, blasint *);
118 void    BLASFUNC(qswap) (blasint *, xdouble *, blasint *, xdouble *, blasint *);
119 void    BLASFUNC(cswap) (blasint *, float  *, blasint *, float  *, blasint *);
120 void    BLASFUNC(zswap) (blasint *, double *, blasint *, double *, blasint *);
121 void    BLASFUNC(xswap) (blasint *, xdouble *, blasint *, xdouble *, blasint *);
122
123 FLOATRET  BLASFUNC(sasum) (blasint *, float  *, blasint *);
124 FLOATRET  BLASFUNC(scasum)(blasint *, float  *, blasint *);
125 double BLASFUNC(dasum) (blasint *, double *, blasint *);
126 xdouble BLASFUNC(qasum) (blasint *, xdouble *, blasint *);
127 double BLASFUNC(dzasum)(blasint *, double *, blasint *);
128 xdouble BLASFUNC(qxasum)(blasint *, xdouble *, blasint *);
129
130 FLOATRET  BLASFUNC(ssum) (blasint *, float  *, blasint *);
131 FLOATRET  BLASFUNC(scsum)(blasint *, float  *, blasint *);
132 double BLASFUNC(dsum) (blasint *, double *, blasint *);
133 xdouble BLASFUNC(qsum) (blasint *, xdouble *, blasint *);
134 double BLASFUNC(dzsum)(blasint *, double *, blasint *);
135 xdouble BLASFUNC(qxsum)(blasint *, xdouble *, blasint *);
136
137 blasint    BLASFUNC(isamax)(blasint *, float  *, blasint *);
138 blasint    BLASFUNC(idamax)(blasint *, double *, blasint *);
139 blasint    BLASFUNC(iqamax)(blasint *, xdouble *, blasint *);
140 blasint    BLASFUNC(icamax)(blasint *, float  *, blasint *);
141 blasint    BLASFUNC(izamax)(blasint *, double *, blasint *);
142 blasint    BLASFUNC(ixamax)(blasint *, xdouble *, blasint *);
143
144 blasint    BLASFUNC(ismax) (blasint *, float  *, blasint *);
145 blasint    BLASFUNC(idmax) (blasint *, double *, blasint *);
146 blasint    BLASFUNC(iqmax) (blasint *, xdouble *, blasint *);
147 blasint    BLASFUNC(icmax) (blasint *, float  *, blasint *);
148 blasint    BLASFUNC(izmax) (blasint *, double *, blasint *);
149 blasint    BLASFUNC(ixmax) (blasint *, xdouble *, blasint *);
150
151 blasint    BLASFUNC(isamin)(blasint *, float  *, blasint *);
152 blasint    BLASFUNC(idamin)(blasint *, double *, blasint *);
153 blasint    BLASFUNC(iqamin)(blasint *, xdouble *, blasint *);
154 blasint    BLASFUNC(icamin)(blasint *, float  *, blasint *);
155 blasint    BLASFUNC(izamin)(blasint *, double *, blasint *);
156 blasint    BLASFUNC(ixamin)(blasint *, xdouble *, blasint *);
157
158 blasint    BLASFUNC(ismin)(blasint *, float  *, blasint *);
159 blasint    BLASFUNC(idmin)(blasint *, double *, blasint *);
160 blasint    BLASFUNC(iqmin)(blasint *, xdouble *, blasint *);
161 blasint    BLASFUNC(icmin)(blasint *, float  *, blasint *);
162 blasint    BLASFUNC(izmin)(blasint *, double *, blasint *);
163 blasint    BLASFUNC(ixmin)(blasint *, xdouble *, blasint *);
164
165 FLOATRET  BLASFUNC(samax) (blasint *, float  *, blasint *);
166 double BLASFUNC(damax) (blasint *, double *, blasint *);
167 xdouble BLASFUNC(qamax) (blasint *, xdouble *, blasint *);
168 FLOATRET  BLASFUNC(scamax)(blasint *, float  *, blasint *);
169 double BLASFUNC(dzamax)(blasint *, double *, blasint *);
170 xdouble BLASFUNC(qxamax)(blasint *, xdouble *, blasint *);
171
172 FLOATRET  BLASFUNC(samin) (blasint *, float  *, blasint *);
173 double BLASFUNC(damin) (blasint *, double *, blasint *);
174 xdouble BLASFUNC(qamin) (blasint *, xdouble *, blasint *);
175 FLOATRET  BLASFUNC(scamin)(blasint *, float  *, blasint *);
176 double BLASFUNC(dzamin)(blasint *, double *, blasint *);
177 xdouble BLASFUNC(qxamin)(blasint *, xdouble *, blasint *);
178
179 FLOATRET  BLASFUNC(smax)  (blasint *, float  *, blasint *);
180 double BLASFUNC(dmax)  (blasint *, double *, blasint *);
181 xdouble BLASFUNC(qmax)  (blasint *, xdouble *, blasint *);
182 FLOATRET  BLASFUNC(scmax) (blasint *, float  *, blasint *);
183 double BLASFUNC(dzmax) (blasint *, double *, blasint *);
184 xdouble BLASFUNC(qxmax) (blasint *, xdouble *, blasint *);
185
186 FLOATRET  BLASFUNC(smin)  (blasint *, float  *, blasint *);
187 double BLASFUNC(dmin)  (blasint *, double *, blasint *);
188 xdouble BLASFUNC(qmin)  (blasint *, xdouble *, blasint *);
189 FLOATRET  BLASFUNC(scmin) (blasint *, float  *, blasint *);
190 double BLASFUNC(dzmin) (blasint *, double *, blasint *);
191 xdouble BLASFUNC(qxmin) (blasint *, xdouble *, blasint *);
192
193 void    BLASFUNC(sscal) (blasint *,  float  *, float  *, blasint *);
194 void    BLASFUNC(dscal) (blasint *,  double *, double *, blasint *);
195 void    BLASFUNC(qscal) (blasint *,  xdouble *, xdouble *, blasint *);
196 void    BLASFUNC(cscal) (blasint *,  float  *, float  *, blasint *);
197 void    BLASFUNC(zscal) (blasint *,  double *, double *, blasint *);
198 void    BLASFUNC(xscal) (blasint *,  xdouble *, xdouble *, blasint *);
199 void    BLASFUNC(csscal)(blasint *,  float  *, float  *, blasint *);
200 void    BLASFUNC(zdscal)(blasint *,  double *, double *, blasint *);
201 void    BLASFUNC(xqscal)(blasint *,  xdouble *, xdouble *, blasint *);
202
203 FLOATRET  BLASFUNC(snrm2) (blasint *, float  *, blasint *);
204 FLOATRET  BLASFUNC(scnrm2)(blasint *, float  *, blasint *);
205
206 double BLASFUNC(dnrm2) (blasint *, double *, blasint *);
207 xdouble BLASFUNC(qnrm2) (blasint *, xdouble *, blasint *);
208 double BLASFUNC(dznrm2)(blasint *, double *, blasint *);
209 xdouble BLASFUNC(qxnrm2)(blasint *, xdouble *, blasint *);
210
211 void  BLASFUNC(srot)  (blasint *, float  *, blasint *, float  *, blasint *, float  *, float  *);
212 void  BLASFUNC(drot)  (blasint *, double *, blasint *, double *, blasint *, double *, double *);
213 void  BLASFUNC(qrot)  (blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *);
214 void  BLASFUNC(csrot) (blasint *, float  *, blasint *, float  *, blasint *, float  *, float  *);
215 void  BLASFUNC(zdrot) (blasint *, double *, blasint *, double *, blasint *, double *, double *);
216 void  BLASFUNC(xqrot) (blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *);
217
218 void  BLASFUNC(srotg) (float  *, float  *, float  *, float  *);
219 void  BLASFUNC(drotg) (double *, double *, double *, double *);
220 void  BLASFUNC(qrotg) (xdouble *, xdouble *, xdouble *, xdouble *);
221 void  BLASFUNC(crotg) (float  *, float  *, float  *, float  *);
222 void  BLASFUNC(zrotg) (double *, double *, double *, double *);
223 void  BLASFUNC(xrotg) (xdouble *, xdouble *, xdouble *, xdouble *);
224
225 void  BLASFUNC(srotmg)(float  *, float  *, float  *, float  *, float  *);
226 void  BLASFUNC(drotmg)(double *, double *, double *, double *, double *);
227
228 void  BLASFUNC(srotm) (blasint *, float  *, blasint *, float  *, blasint *, float  *);
229 void  BLASFUNC(drotm) (blasint *, double *, blasint *, double *, blasint *, double *);
230 void  BLASFUNC(qrotm) (blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *);
231
232 /* Level 2 routines */
233
234 void BLASFUNC(sger)(blasint *,    blasint *, float *,  float *, blasint *,
235                    float *,  blasint *, float *,  blasint *);
236 void BLASFUNC(dger)(blasint *,    blasint *, double *, double *, blasint *,
237                    double *, blasint *, double *, blasint *);
238 void BLASFUNC(qger)(blasint *,    blasint *, xdouble *, xdouble *, blasint *,
239                    xdouble *, blasint *, xdouble *, blasint *);
240 void BLASFUNC(cgeru)(blasint *,    blasint *, float *,  float *, blasint *,
241                     float *,  blasint *, float *,  blasint *);
242 void BLASFUNC(cgerc)(blasint *,    blasint *, float *,  float *, blasint *,
243                     float *,  blasint *, float *,  blasint *);
244 void BLASFUNC(zgeru)(blasint *,    blasint *, double *, double *, blasint *,
245                     double *, blasint *, double *, blasint *);
246 void BLASFUNC(zgerc)(blasint *,    blasint *, double *, double *, blasint *,
247                     double *, blasint *, double *, blasint *);
248 void BLASFUNC(xgeru)(blasint *,    blasint *, xdouble *, xdouble *, blasint *,
249                     xdouble *, blasint *, xdouble *, blasint *);
250 void BLASFUNC(xgerc)(blasint *,    blasint *, xdouble *, xdouble *, blasint *,
251                     xdouble *, blasint *, xdouble *, blasint *);
252
253 void BLASFUNC(sbgemv)(char *, blasint *, blasint *, float  *, bfloat16 *, blasint *,
254             bfloat16  *, blasint *, float  *, float  *, blasint *);
255 void BLASFUNC(sgemv)(char *, blasint *, blasint *, float  *, float  *, blasint *,
256                     float  *, blasint *, float  *, float  *, blasint *);
257 void BLASFUNC(dgemv)(char *, blasint *, blasint *, double *, double *, blasint *,
258                     double *, blasint *, double *, double *, blasint *);
259 void BLASFUNC(qgemv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
260                     xdouble *, blasint *, xdouble *, xdouble *, blasint *);
261 void BLASFUNC(cgemv)(char *, blasint *, blasint *, float  *, float  *, blasint *,
262                     float  *, blasint *, float  *, float  *, blasint *);
263 void BLASFUNC(zgemv)(char *, blasint *, blasint *, double *, double *, blasint *,
264                     double *, blasint *, double *, double *, blasint *);
265 void BLASFUNC(xgemv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
266                     xdouble *, blasint *, xdouble *, xdouble *, blasint *);
267
268 void BLASFUNC(strsv) (char *, char *, char *, blasint *, float  *, blasint *,
269                      float  *, blasint *);
270 void BLASFUNC(dtrsv) (char *, char *, char *, blasint *, double *, blasint *,
271                      double *, blasint *);
272 void BLASFUNC(qtrsv) (char *, char *, char *, blasint *, xdouble *, blasint *,
273                      xdouble *, blasint *);
274 void BLASFUNC(ctrsv) (char *, char *, char *, blasint *, float  *, blasint *,
275                      float  *, blasint *);
276 void BLASFUNC(ztrsv) (char *, char *, char *, blasint *, double *, blasint *,
277                      double *, blasint *);
278 void BLASFUNC(xtrsv) (char *, char *, char *, blasint *, xdouble *, blasint *,
279                      xdouble *, blasint *);
280
281 void BLASFUNC(strmv) (char *, char *, char *, blasint *, float  *, blasint *,
282                      float  *, blasint *);
283 void BLASFUNC(dtrmv) (char *, char *, char *, blasint *, double *, blasint *,
284                      double *, blasint *);
285 void BLASFUNC(qtrmv) (char *, char *, char *, blasint *, xdouble *, blasint *,
286                      xdouble *, blasint *);
287 void BLASFUNC(ctrmv) (char *, char *, char *, blasint *, float  *, blasint *,
288                      float  *, blasint *);
289 void BLASFUNC(ztrmv) (char *, char *, char *, blasint *, double *, blasint *,
290                      double *, blasint *);
291 void BLASFUNC(xtrmv) (char *, char *, char *, blasint *, xdouble *, blasint *,
292                      xdouble *, blasint *);
293
294 void BLASFUNC(stpsv) (char *, char *, char *, blasint *, float  *, float  *, blasint *);
295 void BLASFUNC(dtpsv) (char *, char *, char *, blasint *, double *, double *, blasint *);
296 void BLASFUNC(qtpsv) (char *, char *, char *, blasint *, xdouble *, xdouble *, blasint *);
297 void BLASFUNC(ctpsv) (char *, char *, char *, blasint *, float  *, float  *, blasint *);
298 void BLASFUNC(ztpsv) (char *, char *, char *, blasint *, double *, double *, blasint *);
299 void BLASFUNC(xtpsv) (char *, char *, char *, blasint *, xdouble *, xdouble *, blasint *);
300
301 void BLASFUNC(stpmv) (char *, char *, char *, blasint *, float  *, float  *, blasint *);
302 void BLASFUNC(dtpmv) (char *, char *, char *, blasint *, double *, double *, blasint *);
303 void BLASFUNC(qtpmv) (char *, char *, char *, blasint *, xdouble *, xdouble *, blasint *);
304 void BLASFUNC(ctpmv) (char *, char *, char *, blasint *, float  *, float  *, blasint *);
305 void BLASFUNC(ztpmv) (char *, char *, char *, blasint *, double *, double *, blasint *);
306 void BLASFUNC(xtpmv) (char *, char *, char *, blasint *, xdouble *, xdouble *, blasint *);
307
308 void BLASFUNC(stbmv) (char *, char *, char *, blasint *, blasint *, float  *, blasint *, float  *, blasint *);
309 void BLASFUNC(dtbmv) (char *, char *, char *, blasint *, blasint *, double *, blasint *, double *, blasint *);
310 void BLASFUNC(qtbmv) (char *, char *, char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
311 void BLASFUNC(ctbmv) (char *, char *, char *, blasint *, blasint *, float  *, blasint *, float  *, blasint *);
312 void BLASFUNC(ztbmv) (char *, char *, char *, blasint *, blasint *, double *, blasint *, double *, blasint *);
313 void BLASFUNC(xtbmv) (char *, char *, char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
314
315 void BLASFUNC(stbsv) (char *, char *, char *, blasint *, blasint *, float  *, blasint *, float  *, blasint *);
316 void BLASFUNC(dtbsv) (char *, char *, char *, blasint *, blasint *, double *, blasint *, double *, blasint *);
317 void BLASFUNC(qtbsv) (char *, char *, char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
318 void BLASFUNC(ctbsv) (char *, char *, char *, blasint *, blasint *, float  *, blasint *, float  *, blasint *);
319 void BLASFUNC(ztbsv) (char *, char *, char *, blasint *, blasint *, double *, blasint *, double *, blasint *);
320 void BLASFUNC(xtbsv) (char *, char *, char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
321
322 void BLASFUNC(ssymv) (char *, blasint *, float  *, float *, blasint *,
323                      float  *, blasint *, float *, float *, blasint *);
324 void BLASFUNC(dsymv) (char *, blasint *, double  *, double *, blasint *,
325                      double  *, blasint *, double *, double *, blasint *);
326 void BLASFUNC(qsymv) (char *, blasint *, xdouble  *, xdouble *, blasint *,
327                      xdouble  *, blasint *, xdouble *, xdouble *, blasint *);
328 void BLASFUNC(csymv) (char *, blasint *, float  *, float *, blasint *,
329                      float  *, blasint *, float *, float *, blasint *);
330 void BLASFUNC(zsymv) (char *, blasint *, double  *, double *, blasint *,
331                      double  *, blasint *, double *, double *, blasint *);
332 void BLASFUNC(xsymv) (char *, blasint *, xdouble  *, xdouble *, blasint *,
333                      xdouble  *, blasint *, xdouble *, xdouble *, blasint *);
334
335 void BLASFUNC(sspmv) (char *, blasint *, float  *, float *,
336                      float  *, blasint *, float *, float *, blasint *);
337 void BLASFUNC(dspmv) (char *, blasint *, double  *, double *,
338                      double  *, blasint *, double *, double *, blasint *);
339 void BLASFUNC(qspmv) (char *, blasint *, xdouble  *, xdouble *,
340                      xdouble  *, blasint *, xdouble *, xdouble *, blasint *);
341 void BLASFUNC(cspmv) (char *, blasint *, float  *, float *,
342                      float  *, blasint *, float *, float *, blasint *);
343 void BLASFUNC(zspmv) (char *, blasint *, double  *, double *,
344                      double  *, blasint *, double *, double *, blasint *);
345 void BLASFUNC(xspmv) (char *, blasint *, xdouble  *, xdouble *,
346                      xdouble  *, blasint *, xdouble *, xdouble *, blasint *);
347
348 void BLASFUNC(ssyr) (char *, blasint *, float   *, float  *, blasint *,
349                     float  *, blasint *);
350 void BLASFUNC(dsyr) (char *, blasint *, double  *, double *, blasint *,
351                     double *, blasint *);
352 void BLASFUNC(qsyr) (char *, blasint *, xdouble  *, xdouble *, blasint *,
353                     xdouble *, blasint *);
354 void BLASFUNC(csyr) (char *, blasint *, float   *, float  *, blasint *,
355                     float  *, blasint *);
356 void BLASFUNC(zsyr) (char *, blasint *, double  *, double *, blasint *,
357                     double *, blasint *);
358 void BLASFUNC(xsyr) (char *, blasint *, xdouble  *, xdouble *, blasint *,
359                     xdouble *, blasint *);
360
361 void BLASFUNC(ssyr2) (char *, blasint *, float   *,
362                      float  *, blasint *, float  *, blasint *, float  *, blasint *);
363 void BLASFUNC(dsyr2) (char *, blasint *, double  *,
364                      double *, blasint *, double *, blasint *, double *, blasint *);
365 void BLASFUNC(qsyr2) (char *, blasint *, xdouble  *,
366                      xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
367 void BLASFUNC(csyr2) (char *, blasint *, float   *,
368                      float  *, blasint *, float  *, blasint *, float  *, blasint *);
369 void BLASFUNC(zsyr2) (char *, blasint *, double  *,
370                      double *, blasint *, double *, blasint *, double *, blasint *);
371 void BLASFUNC(xsyr2) (char *, blasint *, xdouble  *,
372                      xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
373
374 void BLASFUNC(sspr) (char *, blasint *, float   *, float  *, blasint *,
375                     float  *);
376 void BLASFUNC(dspr) (char *, blasint *, double  *, double *, blasint *,
377                     double *);
378 void BLASFUNC(qspr) (char *, blasint *, xdouble  *, xdouble *, blasint *,
379                     xdouble *);
380 void BLASFUNC(cspr) (char *, blasint *, float   *, float  *, blasint *,
381                     float  *);
382 void BLASFUNC(zspr) (char *, blasint *, double  *, double *, blasint *,
383                     double *);
384 void BLASFUNC(xspr) (char *, blasint *, xdouble  *, xdouble *, blasint *,
385                     xdouble *);
386
387 void BLASFUNC(sspr2) (char *, blasint *, float   *,
388                      float  *, blasint *, float  *, blasint *, float  *);
389 void BLASFUNC(dspr2) (char *, blasint *, double  *,
390                      double *, blasint *, double *, blasint *, double *);
391 void BLASFUNC(qspr2) (char *, blasint *, xdouble  *,
392                      xdouble *, blasint *, xdouble *, blasint *, xdouble *);
393 void BLASFUNC(cspr2) (char *, blasint *, float   *,
394                      float  *, blasint *, float  *, blasint *, float  *);
395 void BLASFUNC(zspr2) (char *, blasint *, double  *,
396                      double *, blasint *, double *, blasint *, double *);
397 void BLASFUNC(xspr2) (char *, blasint *, xdouble  *,
398                      xdouble *, blasint *, xdouble *, blasint *, xdouble *);
399
400 void BLASFUNC(cher) (char *, blasint *, float   *, float  *, blasint *,
401                     float  *, blasint *);
402 void BLASFUNC(zher) (char *, blasint *, double  *, double *, blasint *,
403                     double *, blasint *);
404 void BLASFUNC(xher) (char *, blasint *, xdouble  *, xdouble *, blasint *,
405                     xdouble *, blasint *);
406
407 void BLASFUNC(chpr) (char *, blasint *, float   *, float  *, blasint *, float  *);
408 void BLASFUNC(zhpr) (char *, blasint *, double  *, double *, blasint *, double *);
409 void BLASFUNC(xhpr) (char *, blasint *, xdouble  *, xdouble *, blasint *, xdouble *);
410
411 void BLASFUNC(cher2) (char *, blasint *, float   *,
412                      float  *, blasint *, float  *, blasint *, float  *, blasint *);
413 void BLASFUNC(zher2) (char *, blasint *, double  *,
414                      double *, blasint *, double *, blasint *, double *, blasint *);
415 void BLASFUNC(xher2) (char *, blasint *, xdouble  *,
416                      xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
417
418 void BLASFUNC(chpr2) (char *, blasint *, float   *,
419                      float  *, blasint *, float  *, blasint *, float  *);
420 void BLASFUNC(zhpr2) (char *, blasint *, double  *,
421                      double *, blasint *, double *, blasint *, double *);
422 void BLASFUNC(xhpr2) (char *, blasint *, xdouble  *,
423                      xdouble *, blasint *, xdouble *, blasint *, xdouble *);
424
425 void BLASFUNC(chemv) (char *, blasint *, float  *, float *, blasint *,
426                      float  *, blasint *, float *, float *, blasint *);
427 void BLASFUNC(zhemv) (char *, blasint *, double  *, double *, blasint *,
428                      double  *, blasint *, double *, double *, blasint *);
429 void BLASFUNC(xhemv) (char *, blasint *, xdouble  *, xdouble *, blasint *,
430                      xdouble  *, blasint *, xdouble *, xdouble *, blasint *);
431
432 void BLASFUNC(chpmv) (char *, blasint *, float  *, float *,
433                      float  *, blasint *, float *, float *, blasint *);
434 void BLASFUNC(zhpmv) (char *, blasint *, double  *, double *,
435                      double  *, blasint *, double *, double *, blasint *);
436 void BLASFUNC(xhpmv) (char *, blasint *, xdouble  *, xdouble *,
437                      xdouble  *, blasint *, xdouble *, xdouble *, blasint *);
438
439 int BLASFUNC(snorm)(char *, blasint *, blasint *, float  *, blasint *);
440 int BLASFUNC(dnorm)(char *, blasint *, blasint *, double *, blasint *);
441 int BLASFUNC(cnorm)(char *, blasint *, blasint *, float  *, blasint *);
442 int BLASFUNC(znorm)(char *, blasint *, blasint *, double *, blasint *);
443
444 void BLASFUNC(sgbmv)(char *, blasint *, blasint *, blasint *, blasint *, float  *, float  *, blasint *,
445                     float  *, blasint *, float  *, float  *, blasint *);
446 void BLASFUNC(dgbmv)(char *, blasint *, blasint *, blasint *, blasint *, double *, double *, blasint *,
447                     double *, blasint *, double *, double *, blasint *);
448 void BLASFUNC(qgbmv)(char *, blasint *, blasint *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
449                     xdouble *, blasint *, xdouble *, xdouble *, blasint *);
450 void BLASFUNC(cgbmv)(char *, blasint *, blasint *, blasint *, blasint *, float  *, float  *, blasint *,
451                     float  *, blasint *, float  *, float  *, blasint *);
452 void BLASFUNC(zgbmv)(char *, blasint *, blasint *, blasint *, blasint *, double *, double *, blasint *,
453                     double *, blasint *, double *, double *, blasint *);
454 void BLASFUNC(xgbmv)(char *, blasint *, blasint *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
455                     xdouble *, blasint *, xdouble *, xdouble *, blasint *);
456
457 void BLASFUNC(ssbmv)(char *, blasint *, blasint *, float  *, float  *, blasint *,
458                     float  *, blasint *, float  *, float  *, blasint *);
459 void BLASFUNC(dsbmv)(char *, blasint *, blasint *, double *, double *, blasint *,
460                     double *, blasint *, double *, double *, blasint *);
461 void BLASFUNC(qsbmv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
462                     xdouble *, blasint *, xdouble *, xdouble *, blasint *);
463 void BLASFUNC(csbmv)(char *, blasint *, blasint *, float  *, float  *, blasint *,
464                     float  *, blasint *, float  *, float  *, blasint *);
465 void BLASFUNC(zsbmv)(char *, blasint *, blasint *, double *, double *, blasint *,
466                     double *, blasint *, double *, double *, blasint *);
467 void BLASFUNC(xsbmv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
468                     xdouble *, blasint *, xdouble *, xdouble *, blasint *);
469
470 void BLASFUNC(chbmv)(char *, blasint *, blasint *, float  *, float  *, blasint *,
471                     float  *, blasint *, float  *, float  *, blasint *);
472 void BLASFUNC(zhbmv)(char *, blasint *, blasint *, double *, double *, blasint *,
473                     double *, blasint *, double *, double *, blasint *);
474 void BLASFUNC(xhbmv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
475                     xdouble *, blasint *, xdouble *, xdouble *, blasint *);
476
477 /* Level 3 routines */
478
479 void BLASFUNC(sbgemm)(char *, char *, blasint *, blasint *, blasint *, float *,
480            bfloat16 *, blasint *, bfloat16 *, blasint *, float *, float *, blasint *);
481 void BLASFUNC(sgemm)(char *, char *, blasint *, blasint *, blasint *, float *,
482            float  *, blasint *, float  *, blasint *, float  *, float  *, blasint *);
483 void BLASFUNC(dgemm)(char *, char *, blasint *, blasint *, blasint *, double *,
484            double *, blasint *, double *, blasint *, double *, double *, blasint *);
485 void BLASFUNC(qgemm)(char *, char *, blasint *, blasint *, blasint *, xdouble *,
486            xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *);
487 void BLASFUNC(cgemm)(char *, char *, blasint *, blasint *, blasint *, float *,
488            float  *, blasint *, float  *, blasint *, float  *, float  *, blasint *);
489 void BLASFUNC(zgemm)(char *, char *, blasint *, blasint *, blasint *, double *,
490            double *, blasint *, double *, blasint *, double *, double *, blasint *);
491 void BLASFUNC(xgemm)(char *, char *, blasint *, blasint *, blasint *, xdouble *,
492            xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *);
493
494 void BLASFUNC(cgemm3m)(char *, char *, blasint *, blasint *, blasint *, float *,
495            float  *, blasint *, float  *, blasint *, float  *, float  *, blasint *);
496 void BLASFUNC(zgemm3m)(char *, char *, blasint *, blasint *, blasint *, double *,
497            double *, blasint *, double *, blasint *, double *, double *, blasint *);
498 void BLASFUNC(xgemm3m)(char *, char *, blasint *, blasint *, blasint *, xdouble *,
499            xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *);
500
501 int BLASFUNC(sge2mm)(char *, char *, char *, blasint *, blasint *,
502                      float *, float  *, blasint *, float  *, blasint *,
503                      float *, float  *, blasint *);
504 int BLASFUNC(dge2mm)(char *, char *, char *, blasint *, blasint *,
505                      double *, double  *, blasint *, double  *, blasint *,
506                      double *, double  *, blasint *);
507 int BLASFUNC(cge2mm)(char *, char *, char *, blasint *, blasint *,
508                      float *, float  *, blasint *, float  *, blasint *,
509                      float *, float  *, blasint *);
510 int BLASFUNC(zge2mm)(char *, char *, char *, blasint *, blasint *,
511                      double *, double  *, blasint *, double  *, blasint *,
512                      double *, double  *, blasint *);
513
514 void BLASFUNC(strsm)(char *, char *, char *, char *, blasint *, blasint *,
515            float *,  float *, blasint *, float *, blasint *);
516 void BLASFUNC(dtrsm)(char *, char *, char *, char *, blasint *, blasint *,
517            double *,  double *, blasint *, double *, blasint *);
518 void BLASFUNC(qtrsm)(char *, char *, char *, char *, blasint *, blasint *,
519            xdouble *,  xdouble *, blasint *, xdouble *, blasint *);
520 void BLASFUNC(ctrsm)(char *, char *, char *, char *, blasint *, blasint *,
521            float *,  float *, blasint *, float *, blasint *);
522 void BLASFUNC(ztrsm)(char *, char *, char *, char *, blasint *, blasint *,
523            double *,  double *, blasint *, double *, blasint *);
524 void BLASFUNC(xtrsm)(char *, char *, char *, char *, blasint *, blasint *,
525            xdouble *,  xdouble *, blasint *, xdouble *, blasint *);
526
527 void BLASFUNC(strmm)(char *, char *, char *, char *, blasint *, blasint *,
528            float *,  float *, blasint *, float *, blasint *);
529 void BLASFUNC(dtrmm)(char *, char *, char *, char *, blasint *, blasint *,
530            double *,  double *, blasint *, double *, blasint *);
531 void BLASFUNC(qtrmm)(char *, char *, char *, char *, blasint *, blasint *,
532            xdouble *,  xdouble *, blasint *, xdouble *, blasint *);
533 void BLASFUNC(ctrmm)(char *, char *, char *, char *, blasint *, blasint *,
534            float *,  float *, blasint *, float *, blasint *);
535 void BLASFUNC(ztrmm)(char *, char *, char *, char *, blasint *, blasint *,
536            double *,  double *, blasint *, double *, blasint *);
537 void BLASFUNC(xtrmm)(char *, char *, char *, char *, blasint *, blasint *,
538            xdouble *,  xdouble *, blasint *, xdouble *, blasint *);
539
540 void BLASFUNC(ssymm)(char *, char *, blasint *, blasint *, float  *, float  *, blasint *,
541            float  *, blasint *, float  *, float  *, blasint *);
542 void BLASFUNC(dsymm)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
543            double *, blasint *, double *, double *, blasint *);
544 void BLASFUNC(qsymm)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
545            xdouble *, blasint *, xdouble *, xdouble *, blasint *);
546 void BLASFUNC(csymm)(char *, char *, blasint *, blasint *, float  *, float  *, blasint *,
547            float  *, blasint *, float  *, float  *, blasint *);
548 void BLASFUNC(zsymm)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
549            double *, blasint *, double *, double *, blasint *);
550 void BLASFUNC(xsymm)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
551            xdouble *, blasint *, xdouble *, xdouble *, blasint *);
552
553 void BLASFUNC(csymm3m)(char *, char *, blasint *, blasint *, float  *, float  *, blasint *,
554            float  *, blasint *, float  *, float  *, blasint *);
555 void BLASFUNC(zsymm3m)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
556            double *, blasint *, double *, double *, blasint *);
557 void BLASFUNC(xsymm3m)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
558            xdouble *, blasint *, xdouble *, xdouble *, blasint *);
559
560 void BLASFUNC(ssyrk)(char *, char *, blasint *, blasint *, float  *, float  *, blasint *,
561            float  *, float  *, blasint *);
562 void BLASFUNC(dsyrk)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
563            double *, double *, blasint *);
564 void BLASFUNC(qsyrk)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
565            xdouble *, xdouble *, blasint *);
566 void BLASFUNC(csyrk)(char *, char *, blasint *, blasint *, float  *, float  *, blasint *,
567            float  *, float  *, blasint *);
568 void BLASFUNC(zsyrk)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
569            double *, double *, blasint *);
570 void BLASFUNC(xsyrk)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
571            xdouble *, xdouble *, blasint *);
572
573 void BLASFUNC(ssyr2k)(char *, char *, blasint *, blasint *, float  *, float  *, blasint *,
574            float *, blasint *, float  *, float  *, blasint *);
575 void BLASFUNC(dsyr2k)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
576            double*, blasint *, double *, double *, blasint *);
577 void BLASFUNC(qsyr2k)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
578            xdouble*, blasint *, xdouble *, xdouble *, blasint *);
579 void BLASFUNC(csyr2k)(char *, char *, blasint *, blasint *, float  *, float  *, blasint *,
580            float *, blasint *, float  *, float  *, blasint *);
581 void BLASFUNC(zsyr2k)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
582            double*, blasint *, double *, double *, blasint *);
583 void BLASFUNC(xsyr2k)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
584            xdouble*, blasint *, xdouble *, xdouble *, blasint *);
585
586 void BLASFUNC(chemm)(char *, char *, blasint *, blasint *, float  *, float  *, blasint *,
587            float  *, blasint *, float  *, float  *, blasint *);
588 void BLASFUNC(zhemm)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
589            double *, blasint *, double *, double *, blasint *);
590 void BLASFUNC(xhemm)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
591            xdouble *, blasint *, xdouble *, xdouble *, blasint *);
592
593 void BLASFUNC(chemm3m)(char *, char *, blasint *, blasint *, float  *, float  *, blasint *,
594            float  *, blasint *, float  *, float  *, blasint *);
595 void BLASFUNC(zhemm3m)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
596            double *, blasint *, double *, double *, blasint *);
597 void BLASFUNC(xhemm3m)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
598            xdouble *, blasint *, xdouble *, xdouble *, blasint *);
599
600 void BLASFUNC(cherk)(char *, char *, blasint *, blasint *, float  *, float  *, blasint *,
601            float  *, float  *, blasint *);
602 void BLASFUNC(zherk)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
603            double *, double *, blasint *);
604 void BLASFUNC(xherk)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
605            xdouble *, xdouble *, blasint *);
606
607 void BLASFUNC(cher2k)(char *, char *, blasint *, blasint *, float  *, float  *, blasint *,
608            float *, blasint *, float  *, float  *, blasint *);
609 void BLASFUNC(zher2k)(char *, char *, blasint *, blasint *, double *, double *, blasint *,
610            double*, blasint *, double *, double *, blasint *);
611 void BLASFUNC(xher2k)(char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
612            xdouble*, blasint *, xdouble *, xdouble *, blasint *);
613
614 int BLASFUNC(cher2m)(char *, char *, char *, blasint *, blasint *, float  *, float  *, blasint *,
615            float *, blasint *, float  *, float  *, blasint *);
616 int BLASFUNC(zher2m)(char *, char *, char *, blasint *, blasint *, double *, double *, blasint *,
617            double*, blasint *, double *, double *, blasint *);
618 int BLASFUNC(xher2m)(char *, char *, char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
619            xdouble*, blasint *, xdouble *, xdouble *, blasint *);
620
621 int BLASFUNC(sgemt)(char *, blasint *, blasint *, float  *, float  *, blasint *,
622                     float  *, blasint *);
623 int BLASFUNC(dgemt)(char *, blasint *, blasint *, double *, double *, blasint *,
624                     double *, blasint *);
625 int BLASFUNC(cgemt)(char *, blasint *, blasint *, float  *, float  *, blasint *,
626                     float  *, blasint *);
627 int BLASFUNC(zgemt)(char *, blasint *, blasint *, double *, double *, blasint *,
628                     double *, blasint *);
629
630 int BLASFUNC(sgema)(char *, char *, blasint *, blasint *, float  *,
631                     float  *, blasint *, float *, float  *, blasint *, float *, blasint *);
632 int BLASFUNC(dgema)(char *, char *, blasint *, blasint *, double *,
633                     double *, blasint *, double*, double *, blasint *, double*, blasint *);
634 int BLASFUNC(cgema)(char *, char *, blasint *, blasint *, float  *,
635                     float  *, blasint *, float *, float  *, blasint *, float *, blasint *);
636 int BLASFUNC(zgema)(char *, char *, blasint *, blasint *, double *,
637                     double *, blasint *, double*, double *, blasint *, double*, blasint *);
638
639 int BLASFUNC(sgems)(char *, char *, blasint *, blasint *, float  *,
640                     float  *, blasint *, float *, float  *, blasint *, float *, blasint *);
641 int BLASFUNC(dgems)(char *, char *, blasint *, blasint *, double *,
642                     double *, blasint *, double*, double *, blasint *, double*, blasint *);
643 int BLASFUNC(cgems)(char *, char *, blasint *, blasint *, float  *,
644                     float  *, blasint *, float *, float  *, blasint *, float *, blasint *);
645 int BLASFUNC(zgems)(char *, char *, blasint *, blasint *, double *,
646                     double *, blasint *, double*, double *, blasint *, double*, blasint *);
647
648 int BLASFUNC(sgemc)(char *, char *, blasint *, blasint *, blasint *, float *,
649            float  *, blasint *, float  *, blasint *, float  *, blasint *, float  *, float  *, blasint *);
650 int BLASFUNC(dgemc)(char *, char *, blasint *, blasint *, blasint *, double *,
651            double *, blasint *, double *, blasint *, double *, blasint *, double *, double *, blasint *);
652 int BLASFUNC(qgemc)(char *, char *, blasint *, blasint *, blasint *, xdouble *,
653            xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *,  xdouble *, xdouble *, blasint *);
654 int BLASFUNC(cgemc)(char *, char *, blasint *, blasint *, blasint *, float *,
655            float  *, blasint *, float  *, blasint *, float  *, blasint *, float  *, float  *, blasint *);
656 int BLASFUNC(zgemc)(char *, char *, blasint *, blasint *, blasint *, double *,
657            double *, blasint *, double *, blasint *, double *, blasint *, double *, double *, blasint *);
658 int BLASFUNC(xgemc)(char *, char *, blasint *, blasint *, blasint *, xdouble *,
659            xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *, xdouble *, xdouble *, blasint *);
660
661 /* Lapack routines */
662
663 int BLASFUNC(sgetf2)(blasint *, blasint *, float  *, blasint *, blasint *, blasint *);
664 int BLASFUNC(dgetf2)(blasint *, blasint *, double *, blasint *, blasint *, blasint *);
665 int BLASFUNC(qgetf2)(blasint *, blasint *, xdouble *, blasint *, blasint *, blasint *);
666 int BLASFUNC(cgetf2)(blasint *, blasint *, float  *, blasint *, blasint *, blasint *);
667 int BLASFUNC(zgetf2)(blasint *, blasint *, double *, blasint *, blasint *, blasint *);
668 int BLASFUNC(xgetf2)(blasint *, blasint *, xdouble *, blasint *, blasint *, blasint *);
669
670 int BLASFUNC(sgetrf)(blasint *, blasint *, float  *, blasint *, blasint *, blasint *);
671 int BLASFUNC(dgetrf)(blasint *, blasint *, double *, blasint *, blasint *, blasint *);
672 int BLASFUNC(qgetrf)(blasint *, blasint *, xdouble *, blasint *, blasint *, blasint *);
673 int BLASFUNC(cgetrf)(blasint *, blasint *, float  *, blasint *, blasint *, blasint *);
674 int BLASFUNC(zgetrf)(blasint *, blasint *, double *, blasint *, blasint *, blasint *);
675 int BLASFUNC(xgetrf)(blasint *, blasint *, xdouble *, blasint *, blasint *, blasint *);
676
677 int BLASFUNC(slaswp)(blasint *, float  *, blasint *, blasint *, blasint *, blasint *, blasint *);
678 int BLASFUNC(dlaswp)(blasint *, double *, blasint *, blasint *, blasint *, blasint *, blasint *);
679 int BLASFUNC(qlaswp)(blasint *, xdouble *, blasint *, blasint *, blasint *, blasint *, blasint *);
680 int BLASFUNC(claswp)(blasint *, float  *, blasint *, blasint *, blasint *, blasint *, blasint *);
681 int BLASFUNC(zlaswp)(blasint *, double *, blasint *, blasint *, blasint *, blasint *, blasint *);
682 int BLASFUNC(xlaswp)(blasint *, xdouble *, blasint *, blasint *, blasint *, blasint *, blasint *);
683
684 int BLASFUNC(sgetrs)(char *, blasint *, blasint *, float  *, blasint *, blasint *, float  *, blasint *, blasint *);
685 int BLASFUNC(dgetrs)(char *, blasint *, blasint *, double *, blasint *, blasint *, double *, blasint *, blasint *);
686 int BLASFUNC(qgetrs)(char *, blasint *, blasint *, xdouble *, blasint *, blasint *, xdouble *, blasint *, blasint *);
687 int BLASFUNC(cgetrs)(char *, blasint *, blasint *, float  *, blasint *, blasint *, float  *, blasint *, blasint *);
688 int BLASFUNC(zgetrs)(char *, blasint *, blasint *, double *, blasint *, blasint *, double *, blasint *, blasint *);
689 int BLASFUNC(xgetrs)(char *, blasint *, blasint *, xdouble *, blasint *, blasint *, xdouble *, blasint *, blasint *);
690
691 int BLASFUNC(sgesv)(blasint *, blasint *, float  *, blasint *, blasint *, float *, blasint *, blasint *);
692 int BLASFUNC(dgesv)(blasint *, blasint *, double *, blasint *, blasint *, double*, blasint *, blasint *);
693 int BLASFUNC(qgesv)(blasint *, blasint *, xdouble *, blasint *, blasint *, xdouble*, blasint *, blasint *);
694 int BLASFUNC(cgesv)(blasint *, blasint *, float  *, blasint *, blasint *, float *, blasint *, blasint *);
695 int BLASFUNC(zgesv)(blasint *, blasint *, double *, blasint *, blasint *, double*, blasint *, blasint *);
696 int BLASFUNC(xgesv)(blasint *, blasint *, xdouble *, blasint *, blasint *, xdouble*, blasint *, blasint *);
697
698 int BLASFUNC(spotf2)(char *, blasint *, float  *, blasint *, blasint *);
699 int BLASFUNC(dpotf2)(char *, blasint *, double *, blasint *, blasint *);
700 int BLASFUNC(qpotf2)(char *, blasint *, xdouble *, blasint *, blasint *);
701 int BLASFUNC(cpotf2)(char *, blasint *, float  *, blasint *, blasint *);
702 int BLASFUNC(zpotf2)(char *, blasint *, double *, blasint *, blasint *);
703 int BLASFUNC(xpotf2)(char *, blasint *, xdouble *, blasint *, blasint *);
704
705 int BLASFUNC(spotrf)(char *, blasint *, float  *, blasint *, blasint *);
706 int BLASFUNC(dpotrf)(char *, blasint *, double *, blasint *, blasint *);
707 int BLASFUNC(qpotrf)(char *, blasint *, xdouble *, blasint *, blasint *);
708 int BLASFUNC(cpotrf)(char *, blasint *, float  *, blasint *, blasint *);
709 int BLASFUNC(zpotrf)(char *, blasint *, double *, blasint *, blasint *);
710 int BLASFUNC(xpotrf)(char *, blasint *, xdouble *, blasint *, blasint *);
711
712 int BLASFUNC(spotri)(char *, blasint *, float  *, blasint *, blasint *);
713 int BLASFUNC(dpotri)(char *, blasint *, double *, blasint *, blasint *);
714 int BLASFUNC(qpotri)(char *, blasint *, xdouble *, blasint *, blasint *);
715 int BLASFUNC(cpotri)(char *, blasint *, float  *, blasint *, blasint *);
716 int BLASFUNC(zpotri)(char *, blasint *, double *, blasint *, blasint *);
717 int BLASFUNC(xpotri)(char *, blasint *, xdouble *, blasint *, blasint *);
718
719 int BLASFUNC(spotrs)(char *, blasint *, blasint *, float   *, blasint *, float   *, blasint *, blasint *);
720 int BLASFUNC(dpotrs)(char *, blasint *, blasint *, double  *, blasint *, double  *, blasint *, blasint *);
721 int BLASFUNC(qpotrs)(char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *, blasint *);
722 int BLASFUNC(cpotrs)(char *, blasint *, blasint *, float   *, blasint *, float   *, blasint *, blasint *);
723 int BLASFUNC(zpotrs)(char *, blasint *, blasint *, double  *, blasint *, double  *, blasint *, blasint *);
724 int BLASFUNC(xpotrs)(char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *, blasint *);
725
726 int BLASFUNC(slauu2)(char *, blasint *, float  *, blasint *, blasint *);
727 int BLASFUNC(dlauu2)(char *, blasint *, double *, blasint *, blasint *);
728 int BLASFUNC(qlauu2)(char *, blasint *, xdouble *, blasint *, blasint *);
729 int BLASFUNC(clauu2)(char *, blasint *, float  *, blasint *, blasint *);
730 int BLASFUNC(zlauu2)(char *, blasint *, double *, blasint *, blasint *);
731 int BLASFUNC(xlauu2)(char *, blasint *, xdouble *, blasint *, blasint *);
732
733 int BLASFUNC(slauum)(char *, blasint *, float  *, blasint *, blasint *);
734 int BLASFUNC(dlauum)(char *, blasint *, double *, blasint *, blasint *);
735 int BLASFUNC(qlauum)(char *, blasint *, xdouble *, blasint *, blasint *);
736 int BLASFUNC(clauum)(char *, blasint *, float  *, blasint *, blasint *);
737 int BLASFUNC(zlauum)(char *, blasint *, double *, blasint *, blasint *);
738 int BLASFUNC(xlauum)(char *, blasint *, xdouble *, blasint *, blasint *);
739
740 int BLASFUNC(strti2)(char *, char *, blasint *, float  *, blasint *, blasint *);
741 int BLASFUNC(dtrti2)(char *, char *, blasint *, double *, blasint *, blasint *);
742 int BLASFUNC(qtrti2)(char *, char *, blasint *, xdouble *, blasint *, blasint *);
743 int BLASFUNC(ctrti2)(char *, char *, blasint *, float  *, blasint *, blasint *);
744 int BLASFUNC(ztrti2)(char *, char *, blasint *, double *, blasint *, blasint *);
745 int BLASFUNC(xtrti2)(char *, char *, blasint *, xdouble *, blasint *, blasint *);
746
747 int BLASFUNC(strtri)(char *, char *, blasint *, float  *, blasint *, blasint *);
748 int BLASFUNC(dtrtri)(char *, char *, blasint *, double *, blasint *, blasint *);
749 int BLASFUNC(qtrtri)(char *, char *, blasint *, xdouble *, blasint *, blasint *);
750 int BLASFUNC(ctrtri)(char *, char *, blasint *, float  *, blasint *, blasint *);
751 int BLASFUNC(ztrtri)(char *, char *, blasint *, double *, blasint *, blasint *);
752 int BLASFUNC(xtrtri)(char *, char *, blasint *, xdouble *, blasint *, blasint *);
753
754
755 FLOATRET  BLASFUNC(slamch)(char *);
756 double    BLASFUNC(dlamch)(char *);
757 xdouble   BLASFUNC(qlamch)(char *);
758
759 FLOATRET  BLASFUNC(slamc3)(float *, float *);
760 double    BLASFUNC(dlamc3)(double *, double *);
761 xdouble   BLASFUNC(qlamc3)(xdouble *, xdouble *);
762
763 /* BLAS extensions */
764
765 void    BLASFUNC(saxpby) (blasint *, float  *, float  *, blasint *, float *, float  *, blasint *);
766 void    BLASFUNC(daxpby) (blasint *, double  *, double  *, blasint *, double *, double  *, blasint *);
767 void    BLASFUNC(caxpby) (blasint *, float  *, float  *, blasint *, float *, float  *, blasint *);
768 void    BLASFUNC(zaxpby) (blasint *, double  *, double  *, blasint *, double *, double  *, blasint *);
769
770 void    BLASFUNC(somatcopy) (char *, char *, blasint *, blasint *, float  *, float  *, blasint *, float  *, blasint *);
771 void    BLASFUNC(domatcopy) (char *, char *, blasint *, blasint *, double  *, double  *, blasint *, double  *, blasint *);
772 void    BLASFUNC(comatcopy) (char *, char *, blasint *, blasint *, float  *, float  *, blasint *, float  *, blasint *);
773 void    BLASFUNC(zomatcopy) (char *, char *, blasint *, blasint *, double  *, double  *, blasint *, double  *, blasint *);
774
775 void    BLASFUNC(simatcopy) (char *, char *, blasint *, blasint *, float  *, float  *, blasint *, blasint *);
776 void    BLASFUNC(dimatcopy) (char *, char *, blasint *, blasint *, double  *, double  *, blasint *, blasint *);
777 void    BLASFUNC(cimatcopy) (char *, char *, blasint *, blasint *, float  *, float  *, blasint *, blasint *);
778 void    BLASFUNC(zimatcopy) (char *, char *, blasint *, blasint *, double  *, double  *, blasint *, blasint *);
779
780 void    BLASFUNC(sgeadd) (blasint *, blasint *, float *, float *, blasint *, float *, float *, blasint*); 
781 void    BLASFUNC(dgeadd) (blasint *, blasint *, double *, double *, blasint *, double *, double *, blasint*); 
782 void    BLASFUNC(cgeadd) (blasint *, blasint *, float *, float *, blasint *, float *, float *, blasint*); 
783 void    BLASFUNC(zgeadd) (blasint *, blasint *, double *, double *, blasint *, double *, double *, blasint*); 
784
785
786 #ifdef __cplusplus
787 }
788
789 #endif  /* __cplusplus */
790
791 #endif