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