]> gitweb.factorcode.org Git - factor.git/blob - extra/math/blas/ffi/ffi.factor
core, basis, extra: Remove DOS line endings from files.
[factor.git] / extra / math / blas / ffi / ffi.factor
1 USING: alien.fortran kernel math.blas.config namespaces ;
2 FROM: alien.libraries => deploy-library ;
3 IN: math.blas.ffi
4
5 <<
6 "blas" blas-library blas-fortran-abi [ get ] bi@
7 add-fortran-library
8
9 deploy-blas? get [ "blas" deploy-library ] when
10 >>
11
12 LIBRARY: blas
13
14 ! Level 1 BLAS (scalar-vector and vector-vector)
15
16 FUNCTION: REAL SDSDOT
17     ( INTEGER N, REAL ALPHA, REAL(*) X, INTEGER INCX, REAL(*) Y, INTEGER INCY ) ;
18 FUNCTION: DOUBLE-PRECISION DSDOT
19     ( INTEGER N, DOUBLE-PRECISION(*) X, INTEGER INCX, REAL(*) Y, INTEGER INCY ) ;
20 FUNCTION: REAL SDOT
21     ( INTEGER N, REAL(*) X, INTEGER INCX, REAL(*) Y, INTEGER INCY ) ;
22 FUNCTION: DOUBLE-PRECISION DDOT
23     ( INTEGER N, DOUBLE-PRECISION(*) X, INTEGER INCX, DOUBLE-PRECISION(*) Y, INTEGER INCY ) ;
24
25 FUNCTION: COMPLEX CDOTU
26     ( INTEGER N, COMPLEX(*) X, INTEGER INCX, COMPLEX(*) Y, INTEGER INCY ) ;
27 FUNCTION: COMPLEX CDOTC
28     ( INTEGER N, COMPLEX(*) X, INTEGER INCX, COMPLEX(*) Y, INTEGER INCY ) ;
29
30 FUNCTION: DOUBLE-COMPLEX ZDOTU
31     ( INTEGER N, DOUBLE-COMPLEX(*) X, INTEGER INCX, DOUBLE-COMPLEX(*) Y, INTEGER INCY ) ;
32 FUNCTION: DOUBLE-COMPLEX ZDOTC
33     ( INTEGER N, DOUBLE-COMPLEX(*) X, INTEGER INCX, DOUBLE-COMPLEX(*) Y, INTEGER INCY ) ;
34
35 FUNCTION: REAL SNRM2
36     ( INTEGER N, REAL(*) X, INTEGER INCX ) ;
37 FUNCTION: REAL SASUM
38     ( INTEGER N, REAL(*) X, INTEGER INCX ) ;
39
40 FUNCTION: DOUBLE-PRECISION DNRM2
41     ( INTEGER N, DOUBLE-PRECISION(*) X, INTEGER INCX ) ;
42 FUNCTION: DOUBLE-PRECISION DASUM
43     ( INTEGER N, DOUBLE-PRECISION(*) X, INTEGER INCX ) ;
44
45 FUNCTION: REAL SCNRM2
46     ( INTEGER N, COMPLEX(*) X, INTEGER INCX ) ;
47 FUNCTION: REAL SCASUM
48     ( INTEGER N, COMPLEX(*) X, INTEGER INCX ) ;
49
50 FUNCTION: DOUBLE-PRECISION DZNRM2
51     ( INTEGER N, DOUBLE-COMPLEX(*) X, INTEGER INCX ) ;
52 FUNCTION: DOUBLE-PRECISION DZASUM
53     ( INTEGER N, DOUBLE-COMPLEX(*) X, INTEGER INCX ) ;
54
55 FUNCTION: INTEGER ISAMAX
56     ( INTEGER N, REAL(*) X, INTEGER INCX ) ;
57 FUNCTION: INTEGER IDAMAX
58     ( INTEGER N, DOUBLE-PRECISION(*) X, INTEGER INCX ) ;
59 FUNCTION: INTEGER ICAMAX
60     ( INTEGER N, COMPLEX(*) X, INTEGER INCX ) ;
61 FUNCTION: INTEGER IZAMAX
62     ( INTEGER N, DOUBLE-COMPLEX(*) X, INTEGER INCX ) ;
63
64 SUBROUTINE: SSWAP
65     ( INTEGER N, REAL(*) X, INTEGER INCX, REAL(*) Y, INTEGER INCY ) ;
66 SUBROUTINE: SCOPY
67     ( INTEGER N, REAL(*) X, INTEGER INCX, REAL(*) Y, INTEGER INCY ) ;
68 SUBROUTINE: SAXPY
69     ( INTEGER N, REAL ALPHA, REAL(*) X, INTEGER INCX, REAL(*) Y, INTEGER INCY ) ;
70
71 SUBROUTINE: DSWAP
72     ( INTEGER N, DOUBLE-PRECISION(*) X, INTEGER INCX, DOUBLE-PRECISION(*) Y, INTEGER INCY ) ;
73 SUBROUTINE: DCOPY
74     ( INTEGER N, DOUBLE-PRECISION(*) X, INTEGER INCX, DOUBLE-PRECISION(*) Y, INTEGER INCY ) ;
75 SUBROUTINE: DAXPY
76     ( INTEGER N, DOUBLE-PRECISION ALPHA, DOUBLE-PRECISION(*) X, INTEGER INCX, DOUBLE-PRECISION(*) Y, INTEGER INCY ) ;
77
78 SUBROUTINE: CSWAP
79     ( INTEGER N, COMPLEX(*) X, INTEGER INCX, COMPLEX(*) Y, INTEGER INCY ) ;
80 SUBROUTINE: CCOPY
81     ( INTEGER N, COMPLEX(*) X, INTEGER INCX, COMPLEX(*) Y, INTEGER INCY ) ;
82 SUBROUTINE: CAXPY
83     ( INTEGER N, COMPLEX ALPHA, COMPLEX(*) X, INTEGER INCX, COMPLEX(*) Y, INTEGER INCY ) ;
84
85 SUBROUTINE: ZSWAP
86     ( INTEGER N, DOUBLE-COMPLEX(*) X, INTEGER INCX, DOUBLE-COMPLEX(*) Y, INTEGER INCY ) ;
87 SUBROUTINE: ZCOPY
88     ( INTEGER N, DOUBLE-COMPLEX(*) X, INTEGER INCX, DOUBLE-COMPLEX(*) Y, INTEGER INCY ) ;
89 SUBROUTINE: ZAXPY
90     ( INTEGER N, DOUBLE-COMPLEX ALPHA, DOUBLE-COMPLEX(*) X, INTEGER INCX, DOUBLE-COMPLEX(*) Y, INTEGER INCY ) ;
91
92 SUBROUTINE: SSCAL
93     ( INTEGER N, REAL ALPHA, REAL(*) X, INTEGER INCX ) ;
94 SUBROUTINE: DSCAL
95     ( INTEGER N, DOUBLE-PRECISION ALPHA, DOUBLE-PRECISION(*) X, INTEGER INCX ) ;
96 SUBROUTINE: CSCAL
97     ( INTEGER N, COMPLEX ALPHA, COMPLEX(*) X, INTEGER INCX ) ;
98 SUBROUTINE: ZSCAL
99     ( INTEGER N, DOUBLE-COMPLEX ALPHA, DOUBLE-COMPLEX(*) X, INTEGER INCX ) ;
100 SUBROUTINE: CSSCAL
101     ( INTEGER N, REAL ALPHA, COMPLEX(*) X, INTEGER INCX ) ;
102 SUBROUTINE: ZDSCAL
103     ( INTEGER N, DOUBLE-PRECISION ALPHA, DOUBLE-COMPLEX(*) X, INTEGER INCX ) ;
104
105 SUBROUTINE: SROTG
106     ( REAL(*) A, REAL(*) B, REAL(*) C, REAL(*) S ) ;
107 SUBROUTINE: SROTMG
108     ( REAL(*) D1, REAL(*) D2, REAL(*) B1, REAL B2, REAL(*) P ) ;
109 SUBROUTINE: SROT
110     ( INTEGER N, REAL(*) X, INTEGER INCX, REAL(*) Y, INTEGER INCY, REAL C, REAL S ) ;
111 SUBROUTINE: SROTM
112     ( INTEGER N, REAL(*) X, INTEGER INCX, REAL(*) Y, INTEGER INCY, REAL(*) P ) ;
113
114 SUBROUTINE: DROTG
115     ( DOUBLE-PRECISION(*) A, DOUBLE-PRECISION(*) B, DOUBLE-PRECISION(*) C, DOUBLE-PRECISION(*) S ) ;
116 SUBROUTINE: DROTMG
117     ( DOUBLE-PRECISION(*) D1, DOUBLE-PRECISION(*) D2, DOUBLE-PRECISION(*) B1, DOUBLE-PRECISION B2, DOUBLE-PRECISION(*) P ) ;
118 SUBROUTINE: DROT
119     ( INTEGER N, DOUBLE-PRECISION(*) X, INTEGER INCX, DOUBLE-PRECISION(*) Y, INTEGER INCY, DOUBLE-PRECISION C, DOUBLE-PRECISION S ) ;
120 SUBROUTINE: DROTM
121     ( INTEGER N, DOUBLE-PRECISION(*) X, INTEGER INCX, DOUBLE-PRECISION(*) Y, INTEGER INCY, DOUBLE-PRECISION(*) P ) ;
122
123 ! LEVEL 2 BLAS (MATRIX-VECTOR)
124
125 SUBROUTINE: SGEMV ( CHARACTER*1 TRANSA, INTEGER M, INTEGER N,
126                  REAL ALPHA, REAL(*) A, INTEGER LDA,
127                  REAL(*) X, INTEGER INCX, REAL BETA,
128                  REAL(*) Y, INTEGER INCY ) ;
129 SUBROUTINE: SGBMV ( CHARACTER*1 TRANSA, INTEGER M, INTEGER N,
130                  INTEGER KL, INTEGER KU, REAL ALPHA,
131                  REAL(*) A, INTEGER LDA, REAL(*) X,
132                  INTEGER INCX, REAL BETA, REAL(*) Y, INTEGER INCY ) ;
133 SUBROUTINE: STRMV ( CHARACTER*1 UPLO,
134                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
135                  INTEGER N, REAL(*) A, INTEGER LDA,
136                  REAL(*) X, INTEGER INCX ) ;
137 SUBROUTINE: STBMV ( CHARACTER*1 UPLO,
138                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
139                  INTEGER N, INTEGER K, REAL(*) A, INTEGER LDA,
140                  REAL(*) X, INTEGER INCX ) ;
141 SUBROUTINE: STPMV ( CHARACTER*1 UPLO,
142                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
143                  INTEGER N, REAL(*) AP, REAL(*) X, INTEGER INCX ) ;
144 SUBROUTINE: STRSV ( CHARACTER*1 UPLO,
145                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
146                  INTEGER N, REAL(*) A, INTEGER LDA, REAL(*) X,
147                  INTEGER INCX ) ;
148 SUBROUTINE: STBSV ( CHARACTER*1 UPLO,
149                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
150                  INTEGER N, INTEGER K, REAL(*) A, INTEGER LDA,
151                  REAL(*) X, INTEGER INCX ) ;
152 SUBROUTINE: STPSV ( CHARACTER*1 UPLO,
153                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
154                  INTEGER N, REAL(*) AP, REAL(*) X, INTEGER INCX ) ;
155
156 SUBROUTINE: DGEMV ( CHARACTER*1 TRANSA, INTEGER M, INTEGER N,
157                  DOUBLE-PRECISION ALPHA, DOUBLE-PRECISION(*) A, INTEGER LDA,
158                  DOUBLE-PRECISION(*) X, INTEGER INCX, DOUBLE-PRECISION BETA,
159                  DOUBLE-PRECISION(*) Y, INTEGER INCY ) ;
160 SUBROUTINE: DGBMV ( CHARACTER*1 TRANSA, INTEGER M, INTEGER N,
161                  INTEGER KL, INTEGER KU, DOUBLE-PRECISION ALPHA,
162                  DOUBLE-PRECISION(*) A, INTEGER LDA, DOUBLE-PRECISION(*) X,
163                  INTEGER INCX, DOUBLE-PRECISION BETA, DOUBLE-PRECISION(*) Y, INTEGER INCY ) ;
164 SUBROUTINE: DTRMV ( CHARACTER*1 UPLO,
165                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
166                  INTEGER N, DOUBLE-PRECISION(*) A, INTEGER LDA,
167                  DOUBLE-PRECISION(*) X, INTEGER INCX ) ;
168 SUBROUTINE: DTBMV ( CHARACTER*1 UPLO,
169                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
170                  INTEGER N, INTEGER K, DOUBLE-PRECISION(*) A, INTEGER LDA,
171                  DOUBLE-PRECISION(*) X, INTEGER INCX ) ;
172 SUBROUTINE: DTPMV ( CHARACTER*1 UPLO,
173                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
174                  INTEGER N, DOUBLE-PRECISION(*) AP, DOUBLE-PRECISION(*) X, INTEGER INCX ) ;
175 SUBROUTINE: DTRSV ( CHARACTER*1 UPLO,
176                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
177                  INTEGER N, DOUBLE-PRECISION(*) A, INTEGER LDA, DOUBLE-PRECISION(*) X,
178                  INTEGER INCX ) ;
179 SUBROUTINE: DTBSV ( CHARACTER*1 UPLO,
180                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
181                  INTEGER N, INTEGER K, DOUBLE-PRECISION(*) A, INTEGER LDA,
182                  DOUBLE-PRECISION(*) X, INTEGER INCX ) ;
183 SUBROUTINE: DTPSV ( CHARACTER*1 UPLO,
184                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
185                  INTEGER N, DOUBLE-PRECISION(*) AP, DOUBLE-PRECISION(*) X, INTEGER INCX ) ;
186
187 SUBROUTINE: CGEMV ( CHARACTER*1 TRANSA, INTEGER M, INTEGER N,
188                  COMPLEX ALPHA, COMPLEX(*) A, INTEGER LDA,
189                  COMPLEX(*) X, INTEGER INCX, COMPLEX BETA,
190                  COMPLEX(*) Y, INTEGER INCY ) ;
191 SUBROUTINE: CGBMV ( CHARACTER*1 TRANSA, INTEGER M, INTEGER N,
192                  INTEGER KL, INTEGER KU, COMPLEX ALPHA,
193                  COMPLEX(*) A, INTEGER LDA, COMPLEX(*) X,
194                  INTEGER INCX, COMPLEX BETA, COMPLEX(*) Y, INTEGER INCY ) ;
195 SUBROUTINE: CTRMV ( CHARACTER*1 UPLO,
196                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
197                  INTEGER N, COMPLEX(*) A, INTEGER LDA,
198                  COMPLEX(*) X, INTEGER INCX ) ;
199 SUBROUTINE: CTBMV ( CHARACTER*1 UPLO,
200                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
201                  INTEGER N, INTEGER K, COMPLEX(*) A, INTEGER LDA,
202                  COMPLEX(*) X, INTEGER INCX ) ;
203 SUBROUTINE: CTPMV ( CHARACTER*1 UPLO,
204                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
205                  INTEGER N, COMPLEX(*) AP, COMPLEX(*) X, INTEGER INCX ) ;
206 SUBROUTINE: CTRSV ( CHARACTER*1 UPLO,
207                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
208                  INTEGER N, COMPLEX(*) A, INTEGER LDA, COMPLEX(*) X,
209                  INTEGER INCX ) ;
210 SUBROUTINE: CTBSV ( CHARACTER*1 UPLO,
211                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
212                  INTEGER N, INTEGER K, COMPLEX(*) A, INTEGER LDA,
213                  COMPLEX(*) X, INTEGER INCX ) ;
214 SUBROUTINE: CTPSV ( CHARACTER*1 UPLO,
215                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
216                  INTEGER N, COMPLEX(*) AP, COMPLEX(*) X, INTEGER INCX ) ;
217
218 SUBROUTINE: ZGEMV ( CHARACTER*1 TRANSA, INTEGER M, INTEGER N,
219                  DOUBLE-COMPLEX ALPHA, DOUBLE-COMPLEX(*) A, INTEGER LDA,
220                  DOUBLE-COMPLEX(*) X, INTEGER INCX, DOUBLE-COMPLEX BETA,
221                  DOUBLE-COMPLEX(*) Y, INTEGER INCY ) ;
222 SUBROUTINE: ZGBMV ( CHARACTER*1 TRANSA, INTEGER M, INTEGER N,
223                  INTEGER KL, INTEGER KU, DOUBLE-COMPLEX ALPHA,
224                  DOUBLE-COMPLEX(*) A, INTEGER LDA, DOUBLE-COMPLEX(*) X,
225                  INTEGER INCX, DOUBLE-COMPLEX BETA, DOUBLE-COMPLEX(*) Y, INTEGER INCY ) ;
226 SUBROUTINE: ZTRMV ( CHARACTER*1 UPLO,
227                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
228                  INTEGER N, DOUBLE-COMPLEX(*) A, INTEGER LDA,
229                  DOUBLE-COMPLEX(*) X, INTEGER INCX ) ;
230 SUBROUTINE: ZTBMV ( CHARACTER*1 UPLO,
231                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
232                  INTEGER N, INTEGER K, DOUBLE-COMPLEX(*) A, INTEGER LDA,
233                  DOUBLE-COMPLEX(*) X, INTEGER INCX ) ;
234 SUBROUTINE: ZTPMV ( CHARACTER*1 UPLO,
235                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
236                  INTEGER N, DOUBLE-COMPLEX(*) AP, DOUBLE-COMPLEX(*) X, INTEGER INCX ) ;
237 SUBROUTINE: ZTRSV ( CHARACTER*1 UPLO,
238                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
239                  INTEGER N, DOUBLE-COMPLEX(*) A, INTEGER LDA, DOUBLE-COMPLEX(*) X,
240                  INTEGER INCX ) ;
241 SUBROUTINE: ZTBSV ( CHARACTER*1 UPLO,
242                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
243                  INTEGER N, INTEGER K, DOUBLE-COMPLEX(*) A, INTEGER LDA,
244                  DOUBLE-COMPLEX(*) X, INTEGER INCX ) ;
245 SUBROUTINE: ZTPSV ( CHARACTER*1 UPLO,
246                  CHARACTER*1 TRANSA, CHARACTER*1 DIAG,
247                  INTEGER N, DOUBLE-COMPLEX(*) AP, DOUBLE-COMPLEX(*) X, INTEGER INCX ) ;
248
249
250 SUBROUTINE: SSYMV ( CHARACTER*1 UPLO,
251                  INTEGER N, REAL ALPHA, REAL(*) A,
252                  INTEGER LDA, REAL(*) X, INTEGER INCX,
253                  REAL BETA, REAL(*) Y, INTEGER INCY ) ;
254 SUBROUTINE: SSBMV ( CHARACTER*1 UPLO,
255                  INTEGER N, INTEGER K, REAL ALPHA, REAL(*) A,
256                  INTEGER LDA, REAL(*) X, INTEGER INCX,
257                  REAL BETA, REAL(*) Y, INTEGER INCY ) ;
258 SUBROUTINE: SSPMV ( CHARACTER*1 UPLO,
259                  INTEGER N, REAL ALPHA, REAL(*) AP,
260                  REAL(*) X, INTEGER INCX,
261                  REAL BETA, REAL(*) Y, INTEGER INCY ) ;
262 SUBROUTINE: SGER ( INTEGER M, INTEGER N,
263                 REAL ALPHA, REAL(*) X, INTEGER INCX,
264                 REAL(*) Y, INTEGER INCY, REAL(*) A, INTEGER LDA ) ;
265 SUBROUTINE: SSYR ( CHARACTER*1 UPLO,
266                 INTEGER N, REAL ALPHA, REAL(*) X,
267                 INTEGER INCX, REAL(*) A, INTEGER LDA ) ;
268 SUBROUTINE: SSPR ( CHARACTER*1 UPLO,
269                 INTEGER N, REAL ALPHA, REAL(*) X,
270                 INTEGER INCX, REAL(*) AP ) ;
271 SUBROUTINE: SSYR2 ( CHARACTER*1 UPLO,
272                 INTEGER N, REAL ALPHA, REAL(*) X,
273                 INTEGER INCX, REAL(*) Y, INTEGER INCY, REAL(*) A,
274                 INTEGER LDA ) ;
275 SUBROUTINE: SSPR2 ( CHARACTER*1 UPLO,
276                 INTEGER N, REAL ALPHA, REAL(*) X,
277                 INTEGER INCX, REAL(*) Y, INTEGER INCY, REAL(*) A ) ;
278
279 SUBROUTINE: DSYMV ( CHARACTER*1 UPLO,
280                  INTEGER N, DOUBLE-PRECISION ALPHA, DOUBLE-PRECISION(*) A,
281                  INTEGER LDA, DOUBLE-PRECISION(*) X, INTEGER INCX,
282                  DOUBLE-PRECISION BETA, DOUBLE-PRECISION(*) Y, INTEGER INCY ) ;
283 SUBROUTINE: DSBMV ( CHARACTER*1 UPLO,
284                  INTEGER N, INTEGER K, DOUBLE-PRECISION ALPHA, DOUBLE-PRECISION(*) A,
285                  INTEGER LDA, DOUBLE-PRECISION(*) X, INTEGER INCX,
286                  DOUBLE-PRECISION BETA, DOUBLE-PRECISION(*) Y, INTEGER INCY ) ;
287 SUBROUTINE: DSPMV ( CHARACTER*1 UPLO,
288                  INTEGER N, DOUBLE-PRECISION ALPHA, DOUBLE-PRECISION(*) AP,
289                  DOUBLE-PRECISION(*) X, INTEGER INCX,
290                  DOUBLE-PRECISION BETA, DOUBLE-PRECISION(*) Y, INTEGER INCY ) ;
291 SUBROUTINE: DGER ( INTEGER M, INTEGER N,
292                 DOUBLE-PRECISION ALPHA, DOUBLE-PRECISION(*) X, INTEGER INCX,
293                 DOUBLE-PRECISION(*) Y, INTEGER INCY, DOUBLE-PRECISION(*) A, INTEGER LDA ) ;
294 SUBROUTINE: DSYR ( CHARACTER*1 UPLO,
295                 INTEGER N, DOUBLE-PRECISION ALPHA, DOUBLE-PRECISION(*) X,
296                 INTEGER INCX, DOUBLE-PRECISION(*) A, INTEGER LDA ) ;
297 SUBROUTINE: DSPR ( CHARACTER*1 UPLO,
298                 INTEGER N, DOUBLE-PRECISION ALPHA, DOUBLE-PRECISION(*) X,
299                 INTEGER INCX, DOUBLE-PRECISION(*) AP ) ;
300 SUBROUTINE: DSYR2 ( CHARACTER*1 UPLO,
301                 INTEGER N, DOUBLE-PRECISION ALPHA, DOUBLE-PRECISION(*) X,
302                 INTEGER INCX, DOUBLE-PRECISION(*) Y, INTEGER INCY, DOUBLE-PRECISION(*) A,
303                 INTEGER LDA ) ;
304 SUBROUTINE: DSPR2 ( CHARACTER*1 UPLO,
305                 INTEGER N, DOUBLE-PRECISION ALPHA, DOUBLE-PRECISION(*) X,
306                 INTEGER INCX, DOUBLE-PRECISION(*) Y, INTEGER INCY, DOUBLE-PRECISION(*) A ) ;
307
308
309 SUBROUTINE: CHEMV ( CHARACTER*1 UPLO,
310                  INTEGER N, COMPLEX ALPHA, COMPLEX(*) A,
311                  INTEGER LDA, COMPLEX(*) X, INTEGER INCX,
312                  COMPLEX BETA, COMPLEX(*) Y, INTEGER INCY ) ;
313 SUBROUTINE: CHBMV ( CHARACTER*1 UPLO,
314                  INTEGER N, INTEGER K, COMPLEX ALPHA, COMPLEX(*) A,
315                  INTEGER LDA, COMPLEX(*) X, INTEGER INCX,
316                  COMPLEX BETA, COMPLEX(*) Y, INTEGER INCY ) ;
317 SUBROUTINE: CHPMV ( CHARACTER*1 UPLO,
318                  INTEGER N, COMPLEX ALPHA, COMPLEX(*) AP,
319                  COMPLEX(*) X, INTEGER INCX,
320                  COMPLEX BETA, COMPLEX(*) Y, INTEGER INCY ) ;
321 SUBROUTINE: CGERU ( INTEGER M, INTEGER N,
322                  COMPLEX ALPHA, COMPLEX(*) X, INTEGER INCX,
323                  COMPLEX(*) Y, INTEGER INCY, COMPLEX(*) A, INTEGER LDA ) ;
324 SUBROUTINE: CGERC ( INTEGER M, INTEGER N,
325                  COMPLEX ALPHA, COMPLEX(*) X, INTEGER INCX,
326                  COMPLEX(*) Y, INTEGER INCY, COMPLEX(*) A, INTEGER LDA ) ;
327 SUBROUTINE: CHER ( CHARACTER*1 UPLO,
328                 INTEGER N, REAL ALPHA, COMPLEX(*) X, INTEGER INCX,
329                 COMPLEX(*) A, INTEGER LDA ) ;
330 SUBROUTINE: CHPR ( CHARACTER*1 UPLO,
331                 INTEGER N, REAL ALPHA, COMPLEX(*) X,
332                 INTEGER INCX, COMPLEX(*) A ) ;
333 SUBROUTINE: CHER2 ( CHARACTER*1 UPLO, INTEGER N,
334                 COMPLEX ALPHA, COMPLEX(*) X, INTEGER INCX,
335                 COMPLEX(*) Y, INTEGER INCY, COMPLEX(*) A, INTEGER LDA ) ;
336 SUBROUTINE: CHPR2 ( CHARACTER*1 UPLO, INTEGER N,
337                 COMPLEX ALPHA, COMPLEX(*) X, INTEGER INCX,
338                 COMPLEX(*) Y, INTEGER INCY, COMPLEX(*) AP ) ;
339
340 SUBROUTINE: ZHEMV ( CHARACTER*1 UPLO,
341                  INTEGER N, DOUBLE-COMPLEX ALPHA, DOUBLE-COMPLEX(*) A,
342                  INTEGER LDA, DOUBLE-COMPLEX(*) X, INTEGER INCX,
343                  DOUBLE-COMPLEX BETA, DOUBLE-COMPLEX(*) Y, INTEGER INCY ) ;
344 SUBROUTINE: ZHBMV ( CHARACTER*1 UPLO,
345                  INTEGER N, INTEGER K, DOUBLE-COMPLEX ALPHA, DOUBLE-COMPLEX(*) A,
346                  INTEGER LDA, DOUBLE-COMPLEX(*) X, INTEGER INCX,
347                  DOUBLE-COMPLEX BETA, DOUBLE-COMPLEX(*) Y, INTEGER INCY ) ;
348 SUBROUTINE: ZHPMV ( CHARACTER*1 UPLO,
349                  INTEGER N, DOUBLE-COMPLEX ALPHA, DOUBLE-COMPLEX(*) AP,
350                  DOUBLE-COMPLEX(*) X, INTEGER INCX,
351                  DOUBLE-COMPLEX BETA, DOUBLE-COMPLEX(*) Y, INTEGER INCY ) ;
352 SUBROUTINE: ZGERU ( INTEGER M, INTEGER N,
353                  DOUBLE-COMPLEX ALPHA, DOUBLE-COMPLEX(*) X, INTEGER INCX,
354                  DOUBLE-COMPLEX(*) Y, INTEGER INCY, DOUBLE-COMPLEX(*) A, INTEGER LDA ) ;
355 SUBROUTINE: ZGERC ( INTEGER M, INTEGER N,
356                  DOUBLE-COMPLEX ALPHA, DOUBLE-COMPLEX(*) X, INTEGER INCX,
357                  DOUBLE-COMPLEX(*) Y, INTEGER INCY, DOUBLE-COMPLEX(*) A, INTEGER LDA ) ;
358 SUBROUTINE: ZHER ( CHARACTER*1 UPLO,
359                 INTEGER N, REAL ALPHA, DOUBLE-COMPLEX(*) X, INTEGER INCX,
360                 DOUBLE-COMPLEX(*) A, INTEGER LDA ) ;
361 SUBROUTINE: ZHPR ( CHARACTER*1 UPLO,
362                 INTEGER N, REAL ALPHA, DOUBLE-COMPLEX(*) X,
363                 INTEGER INCX, DOUBLE-COMPLEX(*) A ) ;
364 SUBROUTINE: ZHER2 ( CHARACTER*1 UPLO, INTEGER N,
365                 DOUBLE-COMPLEX ALPHA, DOUBLE-COMPLEX(*) X, INTEGER INCX,
366                 DOUBLE-COMPLEX(*) Y, INTEGER INCY, DOUBLE-COMPLEX(*) A, INTEGER LDA ) ;
367 SUBROUTINE: ZHPR2 ( CHARACTER*1 UPLO, INTEGER N,
368                 DOUBLE-COMPLEX ALPHA, DOUBLE-COMPLEX(*) X, INTEGER INCX,
369                 DOUBLE-COMPLEX(*) Y, INTEGER INCY, DOUBLE-COMPLEX(*) AP ) ;
370
371 ! LEVEL 3 BLAS (MATRIX-MATRIX) 
372
373 SUBROUTINE: SGEMM ( CHARACTER*1 TRANSA,
374                  CHARACTER*1 TRANSB, INTEGER M, INTEGER N,
375                  INTEGER K, REAL ALPHA, REAL(*) A,
376                  INTEGER LDA, REAL(*) B, INTEGER LDB,
377                  REAL BETA, REAL(*) C, INTEGER LDC ) ;
378 SUBROUTINE: SSYMM ( CHARACTER*1 SIDE,
379                  CHARACTER*1 UPLO, INTEGER M, INTEGER N,
380                  REAL ALPHA, REAL(*) A, INTEGER LDA,
381                  REAL(*) B, INTEGER LDB, REAL BETA,
382                  REAL(*) C, INTEGER LDC ) ;
383 SUBROUTINE: SSYRK ( CHARACTER*1 UPLO,
384                  CHARACTER*1 TRANS, INTEGER N, INTEGER K,
385                  REAL ALPHA, REAL(*) A, INTEGER LDA,
386                  REAL BETA, REAL(*) C, INTEGER LDC ) ;
387 SUBROUTINE: SSYR2K ( CHARACTER*1 UPLO,
388                   CHARACTER*1 TRANS, INTEGER N, INTEGER K,
389                   REAL ALPHA, REAL(*) A, INTEGER LDA,
390                   REAL(*) B, INTEGER LDB, REAL BETA,
391                   REAL(*) C, INTEGER LDC ) ;
392 SUBROUTINE: STRMM ( CHARACTER*1 SIDE,
393                  CHARACTER*1 UPLO, CHARACTER*1 TRANSA,
394                  CHARACTER*1 DIAG, INTEGER M, INTEGER N,
395                  REAL ALPHA, REAL(*) A, INTEGER LDA,
396                  REAL(*) B, INTEGER LDB ) ;
397 SUBROUTINE: STRSM ( CHARACTER*1 SIDE,
398                  CHARACTER*1 UPLO, CHARACTER*1 TRANSA,
399                  CHARACTER*1 DIAG, INTEGER M, INTEGER N,
400                  REAL ALPHA, REAL(*) A, INTEGER LDA,
401                  REAL(*) B, INTEGER LDB ) ;
402
403 SUBROUTINE: DGEMM ( CHARACTER*1 TRANSA,
404                  CHARACTER*1 TRANSB, INTEGER M, INTEGER N,
405                  INTEGER K, DOUBLE-PRECISION ALPHA, DOUBLE-PRECISION(*) A,
406                  INTEGER LDA, DOUBLE-PRECISION(*) B, INTEGER LDB,
407                  DOUBLE-PRECISION BETA, DOUBLE-PRECISION(*) C, INTEGER LDC ) ;
408 SUBROUTINE: DSYMM ( CHARACTER*1 SIDE,
409                  CHARACTER*1 UPLO, INTEGER M, INTEGER N,
410                  DOUBLE-PRECISION ALPHA, DOUBLE-PRECISION(*) A, INTEGER LDA,
411                  DOUBLE-PRECISION(*) B, INTEGER LDB, DOUBLE-PRECISION BETA,
412                  DOUBLE-PRECISION(*) C, INTEGER LDC ) ;
413 SUBROUTINE: DSYRK ( CHARACTER*1 UPLO,
414                  CHARACTER*1 TRANS, INTEGER N, INTEGER K,
415                  DOUBLE-PRECISION ALPHA, DOUBLE-PRECISION(*) A, INTEGER LDA,
416                  DOUBLE-PRECISION BETA, DOUBLE-PRECISION(*) C, INTEGER LDC ) ;
417 SUBROUTINE: DSYR2K ( CHARACTER*1 UPLO,
418                   CHARACTER*1 TRANS, INTEGER N, INTEGER K,
419                   DOUBLE-PRECISION ALPHA, DOUBLE-PRECISION(*) A, INTEGER LDA,
420                   DOUBLE-PRECISION(*) B, INTEGER LDB, DOUBLE-PRECISION BETA,
421                   DOUBLE-PRECISION(*) C, INTEGER LDC ) ;
422 SUBROUTINE: DTRMM ( CHARACTER*1 SIDE,
423                  CHARACTER*1 UPLO, CHARACTER*1 TRANSA,
424                  CHARACTER*1 DIAG, INTEGER M, INTEGER N,
425                  DOUBLE-PRECISION ALPHA, DOUBLE-PRECISION(*) A, INTEGER LDA,
426                  DOUBLE-PRECISION(*) B, INTEGER LDB ) ;
427 SUBROUTINE: DTRSM ( CHARACTER*1 SIDE,
428                  CHARACTER*1 UPLO, CHARACTER*1 TRANSA,
429                  CHARACTER*1 DIAG, INTEGER M, INTEGER N,
430                  DOUBLE-PRECISION ALPHA, DOUBLE-PRECISION(*) A, INTEGER LDA,
431                  DOUBLE-PRECISION(*) B, INTEGER LDB ) ;
432
433 SUBROUTINE: CGEMM ( CHARACTER*1 TRANSA,
434                  CHARACTER*1 TRANSB, INTEGER M, INTEGER N,
435                  INTEGER K, COMPLEX ALPHA, COMPLEX(*) A,
436                  INTEGER LDA, COMPLEX(*) B, INTEGER LDB,
437                  COMPLEX BETA, COMPLEX(*) C, INTEGER LDC ) ;
438 SUBROUTINE: CSYMM ( CHARACTER*1 SIDE,
439                  CHARACTER*1 UPLO, INTEGER M, INTEGER N,
440                  COMPLEX ALPHA, COMPLEX(*) A, INTEGER LDA,
441                  COMPLEX(*) B, INTEGER LDB, COMPLEX BETA,
442                  COMPLEX(*) C, INTEGER LDC ) ;
443 SUBROUTINE: CSYRK ( CHARACTER*1 UPLO,
444                  CHARACTER*1 TRANS, INTEGER N, INTEGER K,
445                  COMPLEX ALPHA, COMPLEX(*) A, INTEGER LDA,
446                  COMPLEX BETA, COMPLEX(*) C, INTEGER LDC ) ;
447 SUBROUTINE: CSYR2K ( CHARACTER*1 UPLO,
448                   CHARACTER*1 TRANS, INTEGER N, INTEGER K,
449                   COMPLEX ALPHA, COMPLEX(*) A, INTEGER LDA,
450                   COMPLEX(*) B, INTEGER LDB, COMPLEX BETA,
451                   COMPLEX(*) C, INTEGER LDC ) ;
452 SUBROUTINE: CTRMM ( CHARACTER*1 SIDE,
453                  CHARACTER*1 UPLO, CHARACTER*1 TRANSA,
454                  CHARACTER*1 DIAG, INTEGER M, INTEGER N,
455                  COMPLEX ALPHA, COMPLEX(*) A, INTEGER LDA,
456                  COMPLEX(*) B, INTEGER LDB ) ;
457 SUBROUTINE: CTRSM ( CHARACTER*1 SIDE,
458                  CHARACTER*1 UPLO, CHARACTER*1 TRANSA,
459                  CHARACTER*1 DIAG, INTEGER M, INTEGER N,
460                  COMPLEX ALPHA, COMPLEX(*) A, INTEGER LDA,
461                  COMPLEX(*) B, INTEGER LDB ) ;
462
463 SUBROUTINE: ZGEMM ( CHARACTER*1 TRANSA,
464                  CHARACTER*1 TRANSB, INTEGER M, INTEGER N,
465                  INTEGER K, DOUBLE-COMPLEX ALPHA, DOUBLE-COMPLEX(*) A,
466                  INTEGER LDA, DOUBLE-COMPLEX(*) B, INTEGER LDB,
467                  DOUBLE-COMPLEX BETA, DOUBLE-COMPLEX(*) C, INTEGER LDC ) ;
468 SUBROUTINE: ZSYMM ( CHARACTER*1 SIDE,
469                  CHARACTER*1 UPLO, INTEGER M, INTEGER N,
470                  DOUBLE-COMPLEX ALPHA, DOUBLE-COMPLEX(*) A, INTEGER LDA,
471                  DOUBLE-COMPLEX(*) B, INTEGER LDB, DOUBLE-COMPLEX BETA,
472                  DOUBLE-COMPLEX(*) C, INTEGER LDC ) ;
473 SUBROUTINE: ZSYRK ( CHARACTER*1 UPLO,
474                  CHARACTER*1 TRANS, INTEGER N, INTEGER K,
475                  DOUBLE-COMPLEX ALPHA, DOUBLE-COMPLEX(*) A, INTEGER LDA,
476                  DOUBLE-COMPLEX BETA, DOUBLE-COMPLEX(*) C, INTEGER LDC ) ;
477 SUBROUTINE: ZSYR2K ( CHARACTER*1 UPLO,
478                   CHARACTER*1 TRANS, INTEGER N, INTEGER K,
479                   DOUBLE-COMPLEX ALPHA, DOUBLE-COMPLEX(*) A, INTEGER LDA,
480                   DOUBLE-COMPLEX(*) B, INTEGER LDB, DOUBLE-COMPLEX BETA,
481                   DOUBLE-COMPLEX(*) C, INTEGER LDC ) ;
482 SUBROUTINE: ZTRMM ( CHARACTER*1 SIDE,
483                  CHARACTER*1 UPLO, CHARACTER*1 TRANSA,
484                  CHARACTER*1 DIAG, INTEGER M, INTEGER N,
485                  DOUBLE-COMPLEX ALPHA, DOUBLE-COMPLEX(*) A, INTEGER LDA,
486                  DOUBLE-COMPLEX(*) B, INTEGER LDB ) ;
487 SUBROUTINE: ZTRSM ( CHARACTER*1 SIDE,
488                  CHARACTER*1 UPLO, CHARACTER*1 TRANSA,
489                  CHARACTER*1 DIAG, INTEGER M, INTEGER N,
490                  DOUBLE-COMPLEX ALPHA, DOUBLE-COMPLEX(*) A, INTEGER LDA,
491                  DOUBLE-COMPLEX(*) B, INTEGER LDB ) ;
492
493 SUBROUTINE: CHEMM ( CHARACTER*1 SIDE,
494                  CHARACTER*1 UPLO, INTEGER M, INTEGER N,
495                  COMPLEX ALPHA, COMPLEX(*) A, INTEGER LDA,
496                  COMPLEX(*) B, INTEGER LDB, COMPLEX BETA,
497                  COMPLEX(*) C, INTEGER LDC ) ;
498 SUBROUTINE: CHERK ( CHARACTER*1 UPLO,
499                  CHARACTER*1 TRANS, INTEGER N, INTEGER K,
500                  REAL ALPHA, COMPLEX(*) A, INTEGER LDA,
501                  REAL BETA, COMPLEX(*) C, INTEGER LDC ) ;
502 SUBROUTINE: CHER2K ( CHARACTER*1 UPLO,
503                   CHARACTER*1 TRANS, INTEGER N, INTEGER K,
504                   COMPLEX ALPHA, COMPLEX(*) A, INTEGER LDA,
505                   COMPLEX(*) B, INTEGER LDB, REAL BETA,
506                   COMPLEX(*) C, INTEGER LDC ) ;
507 SUBROUTINE: ZHEMM ( CHARACTER*1 SIDE,
508                  CHARACTER*1 UPLO, INTEGER M, INTEGER N,
509                  DOUBLE-COMPLEX ALPHA, DOUBLE-COMPLEX(*) A, INTEGER LDA,
510                  DOUBLE-COMPLEX(*) B, INTEGER LDB, DOUBLE-COMPLEX BETA,
511                  DOUBLE-COMPLEX(*) C, INTEGER LDC ) ;
512 SUBROUTINE: ZHERK ( CHARACTER*1 UPLO,
513                  CHARACTER*1 TRANS, INTEGER N, INTEGER K,
514                  REAL ALPHA, DOUBLE-COMPLEX(*) A, INTEGER LDA,
515                  REAL BETA, DOUBLE-COMPLEX(*) C, INTEGER LDC ) ;
516 SUBROUTINE: ZHER2K ( CHARACTER*1 UPLO,
517                   CHARACTER*1 TRANS, INTEGER N, INTEGER K,
518                   DOUBLE-COMPLEX ALPHA, DOUBLE-COMPLEX(*) A, INTEGER LDA,
519                   DOUBLE-COMPLEX(*) B, INTEGER LDB, REAL BETA,
520                   DOUBLE-COMPLEX(*) C, INTEGER LDC ) ;