1
/* -------------------------------------------------------------- */
2
/* (C)Copyright 2007,2008, */
3
/* International Business Machines Corporation */
4
/* All Rights Reserved. */
6
/* Redistribution and use in source and binary forms, with or */
7
/* without modification, are permitted provided that the */
8
/* following conditions are met: */
10
/* - Redistributions of source code must retain the above copyright*/
11
/* notice, this list of conditions and the following disclaimer. */
13
/* - 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. */
18
/* - Neither the name of IBM Corporation nor the names of its */
19
/* contributors may be used to endorse or promote products */
20
/* derived from this software without specific prior written */
23
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
24
/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
25
/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
26
/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
27
/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
28
/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
29
/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
30
/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
31
/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
32
/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
33
/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
34
/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
35
/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
36
/* -------------------------------------------------------------- */
37
/* PROLOG END TAG zYx */
39
/* *****************************************************************************
40
* Purpose : Prototypes for BLAS functions
42
**************************************************************************** */
52
typedef struct { float r, i; } blas_complex;
53
typedef struct { double r, i; } blas_doublecomplex;
55
#define complex blas_complex
56
#define doublecomplex blas_doublecomplex
60
extern double snrm2_(int *, float *, int *);
61
extern double sasum_(int *, float *, int *);
62
extern int sswap_(int *, float *, int *, float *, int *);
63
extern int srot_(int *, float *, int *, float *, int *, float *, float *);
64
extern int srotg_(float *, float *, float *, float *);
65
extern int sscal_(int *, float *, float *, int *);
66
extern int isamax_(int *, float *, int *);
67
extern double sdot_(int *, float *, int *, float *, int *);
68
extern int scopy_(int *, float *, int *, float *, int *);
69
extern int saxpy_(int *, float *, float *, int *, float *, int *) ;
72
extern int drotg_(double *, double *, double *, double *);
73
extern double dnrm2_(int *, double *, int *);
74
extern double dasum_(int *, double *, int *);
75
extern int dswap_(int *, double *, int *, double *, int *);
76
extern int drot_(int *, double *, int *, double *, int *, double *, double *);
77
extern int idamax_(int *, double *, int *);
78
extern int dscal_(int *, double *, double *, int *);
79
extern double ddot_(int *, double *, int *, double *, int *);
80
extern int dcopy_(int *, double *, int *, double *, int *);
81
extern int daxpy_(int *, double *, double *, int *, double *, int *);
85
extern int sgbmv_(char *, int *, int *, int * , int *, float *, float *, int *, float *, int *, float *, float *, int *);
86
extern int sspmv_(char *, int *, float *, float *, float *, int *, float *, float *, int *);
87
extern int ssymv_(char *, int *, float *, float *, int *, float *, int *, float *, float *, int *);
88
extern int sgemv_(char *, int *, int * , float *, float *, int *, float *, int *, float *, float *, int *);
89
extern int ssbmv_(char *, int *, int *, float *, float *, int *, float *, int *, float *, float *, int *);
90
extern int stpmv_(char *, char *, char *, int *, float *, float *, int *);
91
extern int strmv_(char *, char *, char *, int *, float *, int *, float *, int *);
92
extern int stpsv_(char *, char *, char *, int *, float *, float *, int *);
93
extern int strsv_(char *, char *, char *, int *, float *, int *, float *, int *);
94
extern int stbmv_(char *, char *, char *, int *, int *, float *, int *, float *, int *);
95
extern int stbsv_(char *, char *, char *, int *, int *, float *, int *, float *, int *);
96
extern int sger_(int *, int *, float *, float *, int *, float *, int *, float *, int *);
97
extern int sspr_(char *, int *, float *, float *, int *, float *);
98
extern int ssyr_(char *, int *, float *, float *, int *, float *, int *);
99
extern int ssyr2_(char *, int *, float *, float *, int *, float *, int *, float *, int *);
100
extern int sspr2_(char *, int *, float *, float *, int *, float *, int *, float *);
103
extern int dgbmv_(char *, int *, int *, int * , int *, double *, double *, int *, double *, int *, double *, double *, int *);
104
extern int dgemv_(char *, int *, int *, double *, double *, int *, double *, int *, double *, double *, int *);
105
extern int dsymv_(char *, int *, double *, double *, int *, double *, int *, double *, double *, int *);
106
extern int dsbmv_(char *, int *, int *, double *, double *, int *, double *, int *, double *, double *, int *);
107
extern int dspmv_(char *, int *, double *, double *, double *, int *, double *, double *, int *);
108
extern int dtpmv_(char *, char *, char *, int *, double *, double *, int *);
109
extern int dtrmv_(char *, char *, char *, int *, double *, int *, double *, int *);
110
extern int dtpsv_(char *, char *, char *, int *, double *, double *, int *);
111
extern int dtbmv_(char *, char *, char *, int *, int *, double *, int *, double *, int *);
112
extern int dtrsv_(char *, char *, char *, int *, double *, int *, double *, int *);
113
extern int dtbsv_(char *, char *, char *, int *, int *, double *, int *, double *, int *);
114
extern int dger_(int *, int *, double *, double *, int *, double *, int *, double *, int *);
115
extern int dsyr_(char *, int *, double *, double *, int *, double *, int *);
116
extern int dspr_(char *, int *, double *, double *, int *, double *);
117
extern int dspr2_(char *, int *, double *, double *, int *, double *, int *, double *);
118
extern int dsyr2_(char *, int *, double *, double *, int *, double *, int *, double *, int *);
121
extern int sgemm_(char *, char *, int *, int *, int *, float *, float *,
122
int *, float *, int *, float *, float *, int *);
123
extern int ssyrk_(char *, char *, int *, int *, float *, float *, int *,
124
float *, float *, int *);
125
extern int strsm_(char *, char *, char *, char *, int *, int *, float *,
126
float *, int *, float *, int *);
127
extern int strmm_(char *, char *, char *, char *, int *, int *, float *,
128
float *, int *, float *, int *);
129
extern int ssymm_(char *, char *, int *, int *, float *, float *, int *,
130
float *, int *, float *, float *, int *);
131
extern int ssyr2k_(char *, char *, int *, int *, float *, float *, int *,
132
float *, int *, float *, float *, int *);
135
extern int dgemm_(char *, char *, int *, int *, int *, double *, double *,
136
int *, double *, int *, double *, double *, int *);
137
extern int dsyrk_(char *, char *, int *, int *,
138
double *, double *, int *, double *, double *, int *);
139
extern int dtrsm_(char *, char *, char *, char *, int *, int *,
140
double *, double *, int *, double *, int *);
141
extern int dtrmm_(char *, char *, char *, char *, int *, int *,
142
double *, double *, int *, double *, int *);
143
extern int dsyr2k_(char *, char *, int *, int *, double *, double *,
144
int *, double *, int *, double *, double *, int *);
145
extern int dsymm_(char *, char *, int *, int *, double *, double *, int *, double *, int *,
146
double *, double *, int *);
150
cdotu_(complex* retval,
152
complex* X, int* incX,
153
complex* Y, int* incY);
156
cdotc_(complex* retval,
158
complex* X, int* incX,
159
complex* Y, int* incY);
163
complex* X, int* incX);
167
complex* X, int* incX,
168
complex* Y, int* incY);
172
complex* X, int* incX,
173
complex* Y, int* incY);
178
complex* X, int* incX,
179
complex* Y, int* incY);
192
complex* X, int* incX);
196
complex* X, int* incX);
198
cgemv_(char* trans, int* M, int* N,
200
complex* A, int* lda,
201
complex* X, int* incX,
203
complex* Y, int* incY);
206
cgbmv_(char *trans, int *M, int *N, int *KL, int *KU,
208
complex *A, int *lda,
209
complex *X, int *incX,
211
complex *Y, int *incY);
214
ctrmv_(char* uplo, char *trans, char* diag, int *N,
215
complex *A, int *lda,
216
complex *X, int *incX);
219
ctbmv_(char* uplo, char* trans, char* diag, int* N, int* K,
220
complex* A, int* lda,
221
complex* X, int* incX);
224
ctpmv_(char* uplo, char* trans, char* diag, int* N,
226
complex* X, int* incX);
229
ctrsv_(char* uplo, char* trans, char* diag, int* N,
230
complex* A, int* lda,
231
complex* X, int* incX);
234
ctbsv_(char* uplo, char* trans, char* diag, int* N, int* K,
235
complex* A, int* lda,
236
complex* X, int* incX);
239
ctpsv_(char* uplo, char* trans, char* diag, int* N,
241
complex* X, int* incX);
243
chemv_(char* uplo, int* N,
245
complex* A, int* lda,
246
complex* X, int* incX,
248
complex* Y, int* incY);
251
chbmv_(char* uplo, int* N, int* K,
253
complex* A, int* lda,
254
complex* X, int* incX,
256
complex* Y, int* incY);
259
chpmv_(char* uplo, int* N,
262
complex* X, int* incX,
264
complex* Y, int* incY);
267
cgeru_(int* M, int* N,
269
complex* X, int* incX,
270
complex* Y, int* incY,
271
complex* A, int* lda);
274
cgerc_(int* M, int* N,
276
complex* X, int* incX,
277
complex* Y, int* incY,
278
complex* A, int* lda);
281
cher_(char* uplo, int* N,
283
complex* X, int* incX,
284
complex* A, int* lda);
287
chpr_(char* uplo, int* N,
289
complex* X, int* incX,
293
cher2_(char* uplo, int* N,
295
complex* X, int* incX,
296
complex* Y, int* incY,
297
complex* A, int* lda);
300
chpr2_(char* uplo, int* N,
302
complex* X, int* incX,
303
complex* Y, int* incY,
306
cgemm_(char* transA, char* transB, int* M, int* N, int* K,
308
complex* A, int* lda,
309
complex* B, int* ldb,
311
complex* C, int* ldc);
314
csymm_(char* side, char* uplo, int* M, int* N,
316
complex* A, int* lda,
317
complex* B, int* ldb,
319
complex* C, int* ldc);
322
csyrk_(char* uplo, char* trans, int* N, int* K,
324
complex* A, int* lda,
326
complex* C, int* ldc);
329
csyr2k_(char* uplo, char* trans, int* N, int* K,
331
complex* A, int* lda,
332
complex* B, int* ldb,
334
complex* C, int* ldc);
337
ctrmm_(char* side, char* uplo, char* trans, char* diag,
340
complex* A, int* lda,
341
complex* B, int* ldb);
344
ctrsm_(char* side, char* uplo, char* trans, char* diag,
347
complex* A, int* lda,
348
complex* B, int* ldb);
350
chemm_(char* side, char* uplo, int* M, int* N,
352
complex* A, int* lda,
353
complex* B, int* ldb,
355
complex* C, int* ldc);
358
cherk_(char* uplo, char* trans, int* N, int* K,
360
complex* A, int* lda,
362
complex* C, int* ldc);
365
cher2k_(char* uplo, char* trans, int* N, int* K,
367
complex* A, int* lda,
368
complex* B, int* ldb,
370
complex* C, int* ldc);
372
/* Double Complex Routines */
375
zdotu_(doublecomplex* retval,
377
doublecomplex* X, int* incX,
378
doublecomplex* Y, int* incY);
381
zdotc_(doublecomplex* retval,
383
doublecomplex* X, int* incX,
384
doublecomplex* Y, int* incY);
387
doublecomplex* X, int* incX);
391
doublecomplex* X, int* incX);
394
doublecomplex* X, int* incX);
398
doublecomplex* X, int* incX,
399
doublecomplex* Y, int* incY);
403
doublecomplex* X, int* incX,
404
doublecomplex* Y, int* incY);
408
doublecomplex* alpha,
409
doublecomplex* X, int* incX,
410
doublecomplex* Y, int* incY);
423
doublecomplex* alpha,
424
doublecomplex* X, int* incX);
429
doublecomplex* X, int* incX);
432
zgemv_(char* trans, int* M, int* N,
433
doublecomplex* alpha,
434
doublecomplex* A, int* lda,
435
doublecomplex* X, int* incX,
437
doublecomplex* Y, int* incY);
440
zgbmv_(char *trans, int *M, int *N, int *KL, int *KU,
441
doublecomplex *alpha,
442
doublecomplex *A, int *lda,
443
doublecomplex *X, int *incX,
445
doublecomplex *Y, int *incY);
448
ztrmv_(char* uplo, char *trans, char* diag, int *N,
449
doublecomplex *A, int *lda,
450
doublecomplex *X, int *incX);
453
ztbmv_(char* uplo, char* trans, char* diag, int* N, int* K,
454
doublecomplex* A, int* lda,
455
doublecomplex* X, int* incX);
458
ztpmv_(char* uplo, char* trans, char* diag, int* N,
460
doublecomplex* X, int* incX);
463
ztrsv_(char* uplo, char* trans, char* diag, int* N,
464
doublecomplex* A, int* lda,
465
doublecomplex* X, int* incX);
468
ztbsv_(char* uplo, char* trans, char* diag, int* N, int* K,
469
doublecomplex* A, int* lda,
470
doublecomplex* X, int* incX);
473
ztpsv_(char* uplo, char* trans, char* diag, int* N,
475
doublecomplex* X, int* incX);
478
zhemv_(char* uplo, int* N,
479
doublecomplex* alpha,
480
doublecomplex* A, int* lda,
481
doublecomplex* X, int* incX,
483
doublecomplex* Y, int* incY);
486
zhbmv_(char* uplo, int* N, int* K,
487
doublecomplex* alpha,
488
doublecomplex* A, int* lda,
489
doublecomplex* X, int* incX,
491
doublecomplex* Y, int* incY);
494
zhpmv_(char* uplo, int* N,
495
doublecomplex* alpha,
497
doublecomplex* X, int* incX,
499
doublecomplex* Y, int* incY);
502
zgeru_(int* M, int* N,
503
doublecomplex* alpha,
504
doublecomplex* X, int* incX,
505
doublecomplex* Y, int* incY,
506
doublecomplex* A, int* lda);
509
zgerc_(int* M, int* N,
510
doublecomplex* alpha,
511
doublecomplex* X, int* incX,
512
doublecomplex* Y, int* incY,
513
doublecomplex* A, int* lda);
516
zher_(char* uplo, int* N,
518
doublecomplex* X, int* incX,
519
doublecomplex* A, int* lda);
522
zhpr_(char* uplo, int* N,
524
doublecomplex* X, int* incX,
528
zher2_(char* uplo, int* N,
529
doublecomplex* alpha,
530
doublecomplex* X, int* incX,
531
doublecomplex* Y, int* incY,
532
doublecomplex* A, int* lda);
535
zhpr2_(char* uplo, int* N,
536
doublecomplex* alpha,
537
doublecomplex* X, int* incX,
538
doublecomplex* Y, int* incY,
542
zgemm_(char* transA, char* transB, int* M, int* N, int* K,
543
doublecomplex* alpha,
544
doublecomplex* A, int* lda,
545
doublecomplex* B, int* ldb,
547
doublecomplex* C, int* ldc);
550
zsymm_(char* side, char* uplo, int* M, int* N,
551
doublecomplex* alpha,
552
doublecomplex* A, int* lda,
553
doublecomplex* B, int* ldb,
555
doublecomplex* C, int* ldc);
558
zsyrk_(char* uplo, char* trans, int* N, int* K,
559
doublecomplex* alpha,
560
doublecomplex* A, int* lda,
562
doublecomplex* C, int* ldc);
565
zsyr2k_(char* uplo, char* trans, int* N, int* K,
566
doublecomplex* alpha,
567
doublecomplex* A, int* lda,
568
doublecomplex* B, int* ldb,
570
doublecomplex* C, int* ldc);
573
ztrmm_(char* side, char* uplo, char* trans, char* diag,
575
doublecomplex* alpha,
576
doublecomplex* A, int* lda,
577
doublecomplex* B, int* ldb);
580
ztrsm_(char* side, char* uplo, char* trans, char* diag,
582
doublecomplex* alpha,
583
doublecomplex* A, int* lda,
584
doublecomplex* B, int* ldb);
587
zhemm_(char* side, char* uplo, int* M, int* N,
588
doublecomplex* alpha,
589
doublecomplex* A, int* lda,
590
doublecomplex* B, int* ldb,
592
doublecomplex* C, int* ldc);
595
zherk_(char* uplo, char* trans, int* N, int* K,
597
doublecomplex* A, int* lda,
599
doublecomplex* C, int* ldc);
602
zher2k_(char* uplo, char* trans, int* N, int* K,
603
doublecomplex* alpha,
604
doublecomplex* A, int* lda,
605
doublecomplex* B, int* ldb,
607
doublecomplex* C, int* ldc);