1
/* --------------------------------------------------------------- */
2
/* Copyright LAPACK Users' Guide, Third Edition. */
3
/* AUTHORS = Anderson, E. and Bai, Z. and Bischof, C. and */
4
/* Blackford, S. and Demmel, J. and Dongarra, J. and */
5
/* Du Croz, J. and Greenbaum, A. and Hammarling, S. and */
6
/* McKenney, A. and Sorensen, D. */
7
/* PUBLISHER = Society for Industrial and Applied Mathematics */
9
/* ISBN = 0-89871-447-8 (paperback) */
11
/* Redistribution and use in source and binary forms, with or */
12
/* without modification, are permitted provided that the */
13
/* following conditions are met: */
15
/* - Redistributions of source code must retain the above copyright*/
16
/* notice, this list of conditions and the following disclaimer. */
18
/* - Redistributions in binary form must reproduce the above */
19
/* copyright notice, this list of conditions and the following */
20
/* disclaimer in the documentation and/or other materials */
21
/* provided with the distribution. */
23
/* - Neither the name of Anderson, E. and Bai, Z. and Bischof, C. */
24
/* and Blackford, S. and Demmel, J. and Dongarra, J. and */
25
/* Du Croz, J. and Greenbaum, A. and Hammarling, S. and */
26
/* McKenney, A. and Sorensen, D. nor the names of its */
27
/* contributors may be used to endorse or promote products */
28
/* derived from this software without specific prior written */
32
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND */
33
/* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, */
34
/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
35
/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
36
/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR */
37
/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
38
/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT */
39
/* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
40
/* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) */
41
/* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN */
42
/* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR */
43
/* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
44
/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
45
/* -------------------------------------------------------------- */
46
/* PROLOG END TAG zYx */
58
* Enumerated and derived types
60
#define CBLAS_INDEX size_t /* this may vary between platforms */
62
enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102};
63
enum CBLAS_TRANSPOSE {CblasNoTrans=111, CblasTrans=112, CblasConjTrans=113};
64
enum CBLAS_UPLO {CblasUpper=121, CblasLower=122};
65
enum CBLAS_DIAG {CblasNonUnit=131, CblasUnit=132};
66
enum CBLAS_SIDE {CblasLeft=141, CblasRight=142};
69
* ===========================================================================
70
* Prototypes for level 1 BLAS functions (complex are recast as routines)
71
* ===========================================================================
73
float cblas_sdsdot(const int N, const float alpha, const float *X,
74
const int incX, const float *Y, const int incY);
75
double cblas_dsdot(const int N, const float *X, const int incX, const float *Y,
77
float cblas_sdot(const int N, const float *X, const int incX,
78
const float *Y, const int incY);
79
double cblas_ddot(const int N, const double *X, const int incX,
80
const double *Y, const int incY);
83
* Functions having prefixes Z and C only
85
void cblas_cdotu_sub(const int N, const void *X, const int incX,
86
const void *Y, const int incY, void *dotu);
87
void cblas_cdotc_sub(const int N, const void *X, const int incX,
88
const void *Y, const int incY, void *dotc);
90
void cblas_zdotu_sub(const int N, const void *X, const int incX,
91
const void *Y, const int incY, void *dotu);
92
void cblas_zdotc_sub(const int N, const void *X, const int incX,
93
const void *Y, const int incY, void *dotc);
97
* Functions having prefixes S D SC DZ
99
float cblas_snrm2(const int N, const float *X, const int incX);
100
float cblas_sasum(const int N, const float *X, const int incX);
102
double cblas_dnrm2(const int N, const double *X, const int incX);
103
double cblas_dasum(const int N, const double *X, const int incX);
105
float cblas_scnrm2(const int N, const void *X, const int incX);
106
float cblas_scasum(const int N, const void *X, const int incX);
108
double cblas_dznrm2(const int N, const void *X, const int incX);
109
double cblas_dzasum(const int N, const void *X, const int incX);
113
* Functions having standard 4 prefixes (S D C Z)
115
CBLAS_INDEX cblas_isamax(const int N, const float *X, const int incX);
116
CBLAS_INDEX cblas_idamax(const int N, const double *X, const int incX);
117
CBLAS_INDEX cblas_icamax(const int N, const void *X, const int incX);
118
CBLAS_INDEX cblas_izamax(const int N, const void *X, const int incX);
121
* ===========================================================================
122
* Prototypes for level 1 BLAS routines
123
* ===========================================================================
127
* Routines with standard 4 prefixes (s, d, c, z)
129
void cblas_sswap(const int N, float *X, const int incX,
130
float *Y, const int incY);
131
void cblas_scopy(const int N, const float *X, const int incX,
132
float *Y, const int incY);
133
void cblas_saxpy(const int N, const float alpha, const float *X,
134
const int incX, float *Y, const int incY);
136
void cblas_dswap(const int N, double *X, const int incX,
137
double *Y, const int incY);
138
void cblas_dcopy(const int N, const double *X, const int incX,
139
double *Y, const int incY);
140
void cblas_daxpy(const int N, const double alpha, const double *X,
141
const int incX, double *Y, const int incY);
143
void cblas_cswap(const int N, void *X, const int incX,
144
void *Y, const int incY);
145
void cblas_ccopy(const int N, const void *X, const int incX,
146
void *Y, const int incY);
147
void cblas_caxpy(const int N, const void *alpha, const void *X,
148
const int incX, void *Y, const int incY);
150
void cblas_zswap(const int N, void *X, const int incX,
151
void *Y, const int incY);
152
void cblas_zcopy(const int N, const void *X, const int incX,
153
void *Y, const int incY);
154
void cblas_zaxpy(const int N, const void *alpha, const void *X,
155
const int incX, void *Y, const int incY);
159
* Routines with S and D prefix only
161
void cblas_srotg(float *a, float *b, float *c, float *s);
162
void cblas_srotmg(float *d1, float *d2, float *b1, const float b2, float *P);
163
void cblas_srot(const int N, float *X, const int incX,
164
float *Y, const int incY, const float c, const float s);
165
void cblas_srotm(const int N, float *X, const int incX,
166
float *Y, const int incY, const float *P);
168
void cblas_drotg(double *a, double *b, double *c, double *s);
169
void cblas_drotmg(double *d1, double *d2, double *b1, const double b2, double *P);
170
void cblas_drot(const int N, double *X, const int incX,
171
double *Y, const int incY, const double c, const double s);
172
void cblas_drotm(const int N, double *X, const int incX,
173
double *Y, const int incY, const double *P);
177
* Routines with S D C Z CS and ZD prefixes
179
void cblas_sscal(const int N, const float alpha, float *X, const int incX);
180
void cblas_dscal(const int N, const double alpha, double *X, const int incX);
181
void cblas_cscal(const int N, const void *alpha, void *X, const int incX);
182
void cblas_zscal(const int N, const void *alpha, void *X, const int incX);
183
void cblas_csscal(const int N, const float alpha, void *X, const int incX);
184
void cblas_zdscal(const int N, const double alpha, void *X, const int incX);
187
* ===========================================================================
188
* Prototypes for level 2 BLAS
189
* ===========================================================================
193
* Routines with standard 4 prefixes (S, D, C, Z)
195
void cblas_sgemv(const enum CBLAS_ORDER order,
196
const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
197
const float alpha, const float *A, const int lda,
198
const float *X, const int incX, const float beta,
199
float *Y, const int incY);
200
void cblas_sgbmv(const enum CBLAS_ORDER order,
201
const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
202
const int KL, const int KU, const float alpha,
203
const float *A, const int lda, const float *X,
204
const int incX, const float beta, float *Y, const int incY);
205
void cblas_strmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
206
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
207
const int N, const float *A, const int lda,
208
float *X, const int incX);
209
void cblas_stbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
210
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
211
const int N, const int K, const float *A, const int lda,
212
float *X, const int incX);
213
void cblas_stpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
214
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
215
const int N, const float *Ap, float *X, const int incX);
216
void cblas_strsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
217
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
218
const int N, const float *A, const int lda, float *X,
220
void cblas_stbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
221
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
222
const int N, const int K, const float *A, const int lda,
223
float *X, const int incX);
224
void cblas_stpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
225
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
226
const int N, const float *Ap, float *X, const int incX);
228
void cblas_dgemv(const enum CBLAS_ORDER order,
229
const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
230
const double alpha, const double *A, const int lda,
231
const double *X, const int incX, const double beta,
232
double *Y, const int incY);
233
void cblas_dgbmv(const enum CBLAS_ORDER order,
234
const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
235
const int KL, const int KU, const double alpha,
236
const double *A, const int lda, const double *X,
237
const int incX, const double beta, double *Y, const int incY);
238
void cblas_dtrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
239
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
240
const int N, const double *A, const int lda,
241
double *X, const int incX);
242
void cblas_dtbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
243
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
244
const int N, const int K, const double *A, const int lda,
245
double *X, const int incX);
246
void cblas_dtpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
247
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
248
const int N, const double *Ap, double *X, const int incX);
249
void cblas_dtrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
250
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
251
const int N, const double *A, const int lda, double *X,
253
void cblas_dtbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
254
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
255
const int N, const int K, const double *A, const int lda,
256
double *X, const int incX);
257
void cblas_dtpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
258
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
259
const int N, const double *Ap, double *X, const int incX);
261
void cblas_cgemv(const enum CBLAS_ORDER order,
262
const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
263
const void *alpha, const void *A, const int lda,
264
const void *X, const int incX, const void *beta,
265
void *Y, const int incY);
266
void cblas_cgbmv(const enum CBLAS_ORDER order,
267
const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
268
const int KL, const int KU, const void *alpha,
269
const void *A, const int lda, const void *X,
270
const int incX, const void *beta, void *Y, const int incY);
271
void cblas_ctrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
272
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
273
const int N, const void *A, const int lda,
274
void *X, const int incX);
275
void cblas_ctbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
276
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
277
const int N, const int K, const void *A, const int lda,
278
void *X, const int incX);
279
void cblas_ctpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
280
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
281
const int N, const void *Ap, void *X, const int incX);
282
void cblas_ctrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
283
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
284
const int N, const void *A, const int lda, void *X,
286
void cblas_ctbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
287
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
288
const int N, const int K, const void *A, const int lda,
289
void *X, const int incX);
290
void cblas_ctpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
291
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
292
const int N, const void *Ap, void *X, const int incX);
294
void cblas_zgemv(const enum CBLAS_ORDER order,
295
const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
296
const void *alpha, const void *A, const int lda,
297
const void *X, const int incX, const void *beta,
298
void *Y, const int incY);
299
void cblas_zgbmv(const enum CBLAS_ORDER order,
300
const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
301
const int KL, const int KU, const void *alpha,
302
const void *A, const int lda, const void *X,
303
const int incX, const void *beta, void *Y, const int incY);
304
void cblas_ztrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
305
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
306
const int N, const void *A, const int lda,
307
void *X, const int incX);
308
void cblas_ztbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
309
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
310
const int N, const int K, const void *A, const int lda,
311
void *X, const int incX);
312
void cblas_ztpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
313
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
314
const int N, const void *Ap, void *X, const int incX);
315
void cblas_ztrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
316
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
317
const int N, const void *A, const int lda, void *X,
319
void cblas_ztbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
320
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
321
const int N, const int K, const void *A, const int lda,
322
void *X, const int incX);
323
void cblas_ztpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
324
const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
325
const int N, const void *Ap, void *X, const int incX);
329
* Routines with S and D prefixes only
331
void cblas_ssymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
332
const int N, const float alpha, const float *A,
333
const int lda, const float *X, const int incX,
334
const float beta, float *Y, const int incY);
335
void cblas_ssbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
336
const int N, const int K, const float alpha, const float *A,
337
const int lda, const float *X, const int incX,
338
const float beta, float *Y, const int incY);
339
void cblas_sspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
340
const int N, const float alpha, const float *Ap,
341
const float *X, const int incX,
342
const float beta, float *Y, const int incY);
343
void cblas_sger(const enum CBLAS_ORDER order, const int M, const int N,
344
const float alpha, const float *X, const int incX,
345
const float *Y, const int incY, float *A, const int lda);
346
void cblas_ssyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
347
const int N, const float alpha, const float *X,
348
const int incX, float *A, const int lda);
349
void cblas_sspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
350
const int N, const float alpha, const float *X,
351
const int incX, float *Ap);
352
void cblas_ssyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
353
const int N, const float alpha, const float *X,
354
const int incX, const float *Y, const int incY, float *A,
356
void cblas_sspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
357
const int N, const float alpha, const float *X,
358
const int incX, const float *Y, const int incY, float *A);
360
void cblas_dsymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
361
const int N, const double alpha, const double *A,
362
const int lda, const double *X, const int incX,
363
const double beta, double *Y, const int incY);
364
void cblas_dsbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
365
const int N, const int K, const double alpha, const double *A,
366
const int lda, const double *X, const int incX,
367
const double beta, double *Y, const int incY);
368
void cblas_dspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
369
const int N, const double alpha, const double *Ap,
370
const double *X, const int incX,
371
const double beta, double *Y, const int incY);
372
void cblas_dger(const enum CBLAS_ORDER order, const int M, const int N,
373
const double alpha, const double *X, const int incX,
374
const double *Y, const int incY, double *A, const int lda);
375
void cblas_dsyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
376
const int N, const double alpha, const double *X,
377
const int incX, double *A, const int lda);
378
void cblas_dspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
379
const int N, const double alpha, const double *X,
380
const int incX, double *Ap);
381
void cblas_dsyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
382
const int N, const double alpha, const double *X,
383
const int incX, const double *Y, const int incY, double *A,
385
void cblas_dspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
386
const int N, const double alpha, const double *X,
387
const int incX, const double *Y, const int incY, double *A);
391
* Routines with C and Z prefixes only
393
void cblas_chemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
394
const int N, const void *alpha, const void *A,
395
const int lda, const void *X, const int incX,
396
const void *beta, void *Y, const int incY);
397
void cblas_chbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
398
const int N, const int K, const void *alpha, const void *A,
399
const int lda, const void *X, const int incX,
400
const void *beta, void *Y, const int incY);
401
void cblas_chpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
402
const int N, const void *alpha, const void *Ap,
403
const void *X, const int incX,
404
const void *beta, void *Y, const int incY);
405
void cblas_cgeru(const enum CBLAS_ORDER order, const int M, const int N,
406
const void *alpha, const void *X, const int incX,
407
const void *Y, const int incY, void *A, const int lda);
408
void cblas_cgerc(const enum CBLAS_ORDER order, const int M, const int N,
409
const void *alpha, const void *X, const int incX,
410
const void *Y, const int incY, void *A, const int lda);
411
void cblas_cher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
412
const int N, const float alpha, const void *X, const int incX,
413
void *A, const int lda);
414
void cblas_chpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
415
const int N, const float alpha, const void *X,
416
const int incX, void *A);
417
void cblas_cher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
418
const void *alpha, const void *X, const int incX,
419
const void *Y, const int incY, void *A, const int lda);
420
void cblas_chpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
421
const void *alpha, const void *X, const int incX,
422
const void *Y, const int incY, void *Ap);
424
void cblas_zhemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
425
const int N, const void *alpha, const void *A,
426
const int lda, const void *X, const int incX,
427
const void *beta, void *Y, const int incY);
428
void cblas_zhbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
429
const int N, const int K, const void *alpha, const void *A,
430
const int lda, const void *X, const int incX,
431
const void *beta, void *Y, const int incY);
432
void cblas_zhpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
433
const int N, const void *alpha, const void *Ap,
434
const void *X, const int incX,
435
const void *beta, void *Y, const int incY);
436
void cblas_zgeru(const enum CBLAS_ORDER order, const int M, const int N,
437
const void *alpha, const void *X, const int incX,
438
const void *Y, const int incY, void *A, const int lda);
439
void cblas_zgerc(const enum CBLAS_ORDER order, const int M, const int N,
440
const void *alpha, const void *X, const int incX,
441
const void *Y, const int incY, void *A, const int lda);
442
void cblas_zher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
443
const int N, const double alpha, const void *X, const int incX,
444
void *A, const int lda);
445
void cblas_zhpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
446
const int N, const double alpha, const void *X,
447
const int incX, void *A);
448
void cblas_zher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
449
const void *alpha, const void *X, const int incX,
450
const void *Y, const int incY, void *A, const int lda);
451
void cblas_zhpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
452
const void *alpha, const void *X, const int incX,
453
const void *Y, const int incY, void *Ap);
456
* ===========================================================================
457
* Prototypes for level 3 BLAS
458
* ===========================================================================
462
* Routines with standard 4 prefixes (S, D, C, Z)
464
void cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
465
const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
466
const int K, const float alpha, const float *A,
467
const int lda, const float *B, const int ldb,
468
const float beta, float *C, const int ldc);
469
void cblas_ssymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
470
const enum CBLAS_UPLO Uplo, const int M, const int N,
471
const float alpha, const float *A, const int lda,
472
const float *B, const int ldb, const float beta,
473
float *C, const int ldc);
474
void cblas_ssyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
475
const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
476
const float alpha, const float *A, const int lda,
477
const float beta, float *C, const int ldc);
478
void cblas_ssyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
479
const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
480
const float alpha, const float *A, const int lda,
481
const float *B, const int ldb, const float beta,
482
float *C, const int ldc);
483
void cblas_strmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
484
const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
485
const enum CBLAS_DIAG Diag, const int M, const int N,
486
const float alpha, const float *A, const int lda,
487
float *B, const int ldb);
488
void cblas_strsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
489
const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
490
const enum CBLAS_DIAG Diag, const int M, const int N,
491
const float alpha, const float *A, const int lda,
492
float *B, const int ldb);
494
void cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
495
const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
496
const int K, const double alpha, const double *A,
497
const int lda, const double *B, const int ldb,
498
const double beta, double *C, const int ldc);
499
void cblas_dsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
500
const enum CBLAS_UPLO Uplo, const int M, const int N,
501
const double alpha, const double *A, const int lda,
502
const double *B, const int ldb, const double beta,
503
double *C, const int ldc);
504
void cblas_dsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
505
const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
506
const double alpha, const double *A, const int lda,
507
const double beta, double *C, const int ldc);
508
void cblas_dsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
509
const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
510
const double alpha, const double *A, const int lda,
511
const double *B, const int ldb, const double beta,
512
double *C, const int ldc);
513
void cblas_dtrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
514
const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
515
const enum CBLAS_DIAG Diag, const int M, const int N,
516
const double alpha, const double *A, const int lda,
517
double *B, const int ldb);
518
void cblas_dtrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
519
const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
520
const enum CBLAS_DIAG Diag, const int M, const int N,
521
const double alpha, const double *A, const int lda,
522
double *B, const int ldb);
524
void cblas_cgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
525
const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
526
const int K, const void *alpha, const void *A,
527
const int lda, const void *B, const int ldb,
528
const void *beta, void *C, const int ldc);
529
void cblas_csymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
530
const enum CBLAS_UPLO Uplo, const int M, const int N,
531
const void *alpha, const void *A, const int lda,
532
const void *B, const int ldb, const void *beta,
533
void *C, const int ldc);
534
void cblas_csyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
535
const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
536
const void *alpha, const void *A, const int lda,
537
const void *beta, void *C, const int ldc);
538
void cblas_csyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
539
const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
540
const void *alpha, const void *A, const int lda,
541
const void *B, const int ldb, const void *beta,
542
void *C, const int ldc);
543
void cblas_ctrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
544
const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
545
const enum CBLAS_DIAG Diag, const int M, const int N,
546
const void *alpha, const void *A, const int lda,
547
void *B, const int ldb);
548
void cblas_ctrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
549
const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
550
const enum CBLAS_DIAG Diag, const int M, const int N,
551
const void *alpha, const void *A, const int lda,
552
void *B, const int ldb);
554
void cblas_zgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
555
const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
556
const int K, const void *alpha, const void *A,
557
const int lda, const void *B, const int ldb,
558
const void *beta, void *C, const int ldc);
559
void cblas_zsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
560
const enum CBLAS_UPLO Uplo, const int M, const int N,
561
const void *alpha, const void *A, const int lda,
562
const void *B, const int ldb, const void *beta,
563
void *C, const int ldc);
564
void cblas_zsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
565
const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
566
const void *alpha, const void *A, const int lda,
567
const void *beta, void *C, const int ldc);
568
void cblas_zsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
569
const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
570
const void *alpha, const void *A, const int lda,
571
const void *B, const int ldb, const void *beta,
572
void *C, const int ldc);
573
void cblas_ztrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
574
const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
575
const enum CBLAS_DIAG Diag, const int M, const int N,
576
const void *alpha, const void *A, const int lda,
577
void *B, const int ldb);
578
void cblas_ztrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
579
const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
580
const enum CBLAS_DIAG Diag, const int M, const int N,
581
const void *alpha, const void *A, const int lda,
582
void *B, const int ldb);
586
* Routines with prefixes C and Z only
588
void cblas_chemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
589
const enum CBLAS_UPLO Uplo, const int M, const int N,
590
const void *alpha, const void *A, const int lda,
591
const void *B, const int ldb, const void *beta,
592
void *C, const int ldc);
593
void cblas_cherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
594
const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
595
const float alpha, const void *A, const int lda,
596
const float beta, void *C, const int ldc);
597
void cblas_cher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
598
const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
599
const void *alpha, const void *A, const int lda,
600
const void *B, const int ldb, const float beta,
601
void *C, const int ldc);
603
void cblas_zhemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
604
const enum CBLAS_UPLO Uplo, const int M, const int N,
605
const void *alpha, const void *A, const int lda,
606
const void *B, const int ldb, const void *beta,
607
void *C, const int ldc);
608
void cblas_zherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
609
const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
610
const double alpha, const void *A, const int lda,
611
const double beta, void *C, const int ldc);
612
void cblas_zher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
613
const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
614
const void *alpha, const void *A, const int lda,
615
const void *B, const int ldb, const double beta,
616
void *C, const int ldc);
618
void cblas_xerbla(int p, const char *rout, const char *form, ...);