PLASMA 2.8.0 PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures

- Main Page
- Modules
- Data Types List

cblas.h
1 #ifndef CBLAS_H
2 #define CBLAS_H
3 #include <stddef.h>
4
5 /*
6 * Enumerated and derived types
7 */
8 #define CBLAS_INDEX size_t /* this may vary between platforms */
9
10 enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102};
11 enum CBLAS_TRANSPOSE {CblasNoTrans=111, CblasTrans=112, CblasConjTrans=113};
12 enum CBLAS_UPLO {CblasUpper=121, CblasLower=122};
13 enum CBLAS_DIAG {CblasNonUnit=131, CblasUnit=132};
14 enum CBLAS_SIDE {CblasLeft=141, CblasRight=142};
15
16 /*
17 * ===========================================================================
18 * Prototypes for level 1 BLAS functions (complex are recast as routines)
19 * ===========================================================================
20 */
21
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25
26 float cblas_sdsdot(const int N, const float alpha, const float *X,
27 const int incX, const float *Y, const int incY);
28 double cblas_dsdot(const int N, const float *X, const int incX, const float *Y,
29 const int incY);
30 float cblas_sdot(const int N, const float *X, const int incX,
31 const float *Y, const int incY);
32 double cblas_ddot(const int N, const double *X, const int incX,
33 const double *Y, const int incY);
34
35 /*
36 * Functions having prefixes Z and C only
37 */
38 void cblas_cdotu_sub(const int N, const void *X, const int incX,
39 const void *Y, const int incY, void *dotu);
40 void cblas_cdotc_sub(const int N, const void *X, const int incX,
41 const void *Y, const int incY, void *dotc);
42
43 void cblas_zdotu_sub(const int N, const void *X, const int incX,
44 const void *Y, const int incY, void *dotu);
45 void cblas_zdotc_sub(const int N, const void *X, const int incX,
46 const void *Y, const int incY, void *dotc);
47
48
49 /*
50 * Functions having prefixes S D SC DZ
51 */
52 float cblas_snrm2(const int N, const float *X, const int incX);
53 float cblas_sasum(const int N, const float *X, const int incX);
54
55 double cblas_dnrm2(const int N, const double *X, const int incX);
56 double cblas_dasum(const int N, const double *X, const int incX);
57
58 float cblas_scnrm2(const int N, const void *X, const int incX);
59 float cblas_scasum(const int N, const void *X, const int incX);
60
61 double cblas_dznrm2(const int N, const void *X, const int incX);
62 double cblas_dzasum(const int N, const void *X, const int incX);
63
64
65 /*
66 * Functions having standard 4 prefixes (S D C Z)
67 */
68 CBLAS_INDEX cblas_isamax(const int N, const float *X, const int incX);
69 CBLAS_INDEX cblas_idamax(const int N, const double *X, const int incX);
70 CBLAS_INDEX cblas_icamax(const int N, const void *X, const int incX);
71 CBLAS_INDEX cblas_izamax(const int N, const void *X, const int incX);
72
73 /*
74 * ===========================================================================
75 * Prototypes for level 1 BLAS routines
76 * ===========================================================================
77 */
78
79 /*
80 * Routines with standard 4 prefixes (s, d, c, z)
81 */
82 void cblas_sswap(const int N, float *X, const int incX,
83 float *Y, const int incY);
84 void cblas_scopy(const int N, const float *X, const int incX,
85 float *Y, const int incY);
86 void cblas_saxpy(const int N, const float alpha, const float *X,
87 const int incX, float *Y, const int incY);
88
89 void cblas_dswap(const int N, double *X, const int incX,
90 double *Y, const int incY);
91 void cblas_dcopy(const int N, const double *X, const int incX,
92 double *Y, const int incY);
93 void cblas_daxpy(const int N, const double alpha, const double *X,
94 const int incX, double *Y, const int incY);
95
96 void cblas_cswap(const int N, void *X, const int incX,
97 void *Y, const int incY);
98 void cblas_ccopy(const int N, const void *X, const int incX,
99 void *Y, const int incY);
100 void cblas_caxpy(const int N, const void *alpha, const void *X,
101 const int incX, void *Y, const int incY);
102
103 void cblas_zswap(const int N, void *X, const int incX,
104 void *Y, const int incY);
105 void cblas_zcopy(const int N, const void *X, const int incX,
106 void *Y, const int incY);
107 void cblas_zaxpy(const int N, const void *alpha, const void *X,
108 const int incX, void *Y, const int incY);
109
110
111 /*
112 * Routines with S and D prefix only
113 */
114 void cblas_srotg(float *a, float *b, float *c, float *s);
115 void cblas_srotmg(float *d1, float *d2, float *b1, const float b2, float *P);
116 void cblas_srot(const int N, float *X, const int incX,
117 float *Y, const int incY, const float c, const float s);
118 void cblas_srotm(const int N, float *X, const int incX,
119 float *Y, const int incY, const float *P);
120
121 void cblas_drotg(double *a, double *b, double *c, double *s);
122 void cblas_drotmg(double *d1, double *d2, double *b1, const double b2, double *P);
123 void cblas_drot(const int N, double *X, const int incX,
124 double *Y, const int incY, const double c, const double s);
125 void cblas_drotm(const int N, double *X, const int incX,
126 double *Y, const int incY, const double *P);
127
128
129 /*
130 * Routines with S D C Z CS and ZD prefixes
131 */
132 void cblas_sscal(const int N, const float alpha, float *X, const int incX);
133 void cblas_dscal(const int N, const double alpha, double *X, const int incX);
134 void cblas_cscal(const int N, const void *alpha, void *X, const int incX);
135 void cblas_zscal(const int N, const void *alpha, void *X, const int incX);
136 void cblas_csscal(const int N, const float alpha, void *X, const int incX);
137 void cblas_zdscal(const int N, const double alpha, void *X, const int incX);
138
139 /*
140 * ===========================================================================
141 * Prototypes for level 2 BLAS
142 * ===========================================================================
143 */
144
145 /*
146 * Routines with standard 4 prefixes (S, D, C, Z)
147 */
148 void cblas_sgemv(const enum CBLAS_ORDER order,
149 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
150 const float alpha, const float *A, const int lda,
151 const float *X, const int incX, const float beta,
152 float *Y, const int incY);
153 void cblas_sgbmv(const enum CBLAS_ORDER order,
154 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
155 const int KL, const int KU, const float alpha,
156 const float *A, const int lda, const float *X,
157 const int incX, const float beta, float *Y, const int incY);
158 void cblas_strmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
159 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
160 const int N, const float *A, const int lda,
161 float *X, const int incX);
162 void cblas_stbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
163 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
164 const int N, const int K, const float *A, const int lda,
165 float *X, const int incX);
166 void cblas_stpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
167 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
168 const int N, const float *Ap, float *X, const int incX);
169 void cblas_strsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
170 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
171 const int N, const float *A, const int lda, float *X,
172 const int incX);
173 void cblas_stbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
174 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
175 const int N, const int K, const float *A, const int lda,
176 float *X, const int incX);
177 void cblas_stpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
178 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
179 const int N, const float *Ap, float *X, const int incX);
180
181 void cblas_dgemv(const enum CBLAS_ORDER order,
182 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
183 const double alpha, const double *A, const int lda,
184 const double *X, const int incX, const double beta,
185 double *Y, const int incY);
186 void cblas_dgbmv(const enum CBLAS_ORDER order,
187 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
188 const int KL, const int KU, const double alpha,
189 const double *A, const int lda, const double *X,
190 const int incX, const double beta, double *Y, const int incY);
191 void cblas_dtrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
192 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
193 const int N, const double *A, const int lda,
194 double *X, const int incX);
195 void cblas_dtbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
196 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
197 const int N, const int K, const double *A, const int lda,
198 double *X, const int incX);
199 void cblas_dtpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
200 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
201 const int N, const double *Ap, double *X, const int incX);
202 void cblas_dtrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
203 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
204 const int N, const double *A, const int lda, double *X,
205 const int incX);
206 void cblas_dtbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
207 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
208 const int N, const int K, const double *A, const int lda,
209 double *X, const int incX);
210 void cblas_dtpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
211 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
212 const int N, const double *Ap, double *X, const int incX);
213
214 void cblas_cgemv(const enum CBLAS_ORDER order,
215 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
216 const void *alpha, const void *A, const int lda,
217 const void *X, const int incX, const void *beta,
218 void *Y, const int incY);
219 void cblas_cgbmv(const enum CBLAS_ORDER order,
220 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
221 const int KL, const int KU, const void *alpha,
222 const void *A, const int lda, const void *X,
223 const int incX, const void *beta, void *Y, const int incY);
224 void cblas_ctrmv(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 void *A, const int lda,
227 void *X, const int incX);
228 void cblas_ctbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
229 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
230 const int N, const int K, const void *A, const int lda,
231 void *X, const int incX);
232 void cblas_ctpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
233 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
234 const int N, const void *Ap, void *X, const int incX);
235 void cblas_ctrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
236 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
237 const int N, const void *A, const int lda, void *X,
238 const int incX);
239 void cblas_ctbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
240 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
241 const int N, const int K, const void *A, const int lda,
242 void *X, const int incX);
243 void cblas_ctpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
244 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
245 const int N, const void *Ap, void *X, const int incX);
246
247 void cblas_zgemv(const enum CBLAS_ORDER order,
248 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
249 const void *alpha, const void *A, const int lda,
250 const void *X, const int incX, const void *beta,
251 void *Y, const int incY);
252 void cblas_zgbmv(const enum CBLAS_ORDER order,
253 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
254 const int KL, const int KU, const void *alpha,
255 const void *A, const int lda, const void *X,
256 const int incX, const void *beta, void *Y, const int incY);
257 void cblas_ztrmv(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 void *A, const int lda,
260 void *X, const int incX);
261 void cblas_ztbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
262 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
263 const int N, const int K, const void *A, const int lda,
264 void *X, const int incX);
265 void cblas_ztpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
266 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
267 const int N, const void *Ap, void *X, const int incX);
268 void cblas_ztrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
269 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
270 const int N, const void *A, const int lda, void *X,
271 const int incX);
272 void cblas_ztbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
273 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
274 const int N, const int K, const void *A, const int lda,
275 void *X, const int incX);
276 void cblas_ztpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
277 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
278 const int N, const void *Ap, void *X, const int incX);
279
280
281 /*
282 * Routines with S and D prefixes only
283 */
284 void cblas_ssymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
285 const int N, const float alpha, const float *A,
286 const int lda, const float *X, const int incX,
287 const float beta, float *Y, const int incY);
288 void cblas_ssbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
289 const int N, const int K, const float alpha, const float *A,
290 const int lda, const float *X, const int incX,
291 const float beta, float *Y, const int incY);
292 void cblas_sspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
293 const int N, const float alpha, const float *Ap,
294 const float *X, const int incX,
295 const float beta, float *Y, const int incY);
296 void cblas_sger(const enum CBLAS_ORDER order, const int M, const int N,
297 const float alpha, const float *X, const int incX,
298 const float *Y, const int incY, float *A, const int lda);
299 void cblas_ssyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
300 const int N, const float alpha, const float *X,
301 const int incX, float *A, const int lda);
302 void cblas_sspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
303 const int N, const float alpha, const float *X,
304 const int incX, float *Ap);
305 void cblas_ssyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
306 const int N, const float alpha, const float *X,
307 const int incX, const float *Y, const int incY, float *A,
308 const int lda);
309 void cblas_sspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
310 const int N, const float alpha, const float *X,
311 const int incX, const float *Y, const int incY, float *A);
312
313 void cblas_dsymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
314 const int N, const double alpha, const double *A,
315 const int lda, const double *X, const int incX,
316 const double beta, double *Y, const int incY);
317 void cblas_dsbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
318 const int N, const int K, const double alpha, const double *A,
319 const int lda, const double *X, const int incX,
320 const double beta, double *Y, const int incY);
321 void cblas_dspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
322 const int N, const double alpha, const double *Ap,
323 const double *X, const int incX,
324 const double beta, double *Y, const int incY);
325 void cblas_dger(const enum CBLAS_ORDER order, const int M, const int N,
326 const double alpha, const double *X, const int incX,
327 const double *Y, const int incY, double *A, const int lda);
328 void cblas_dsyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
329 const int N, const double alpha, const double *X,
330 const int incX, double *A, const int lda);
331 void cblas_dspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
332 const int N, const double alpha, const double *X,
333 const int incX, double *Ap);
334 void cblas_dsyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
335 const int N, const double alpha, const double *X,
336 const int incX, const double *Y, const int incY, double *A,
337 const int lda);
338 void cblas_dspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
339 const int N, const double alpha, const double *X,
340 const int incX, const double *Y, const int incY, double *A);
341
342
343 /*
344 * Routines with C and Z prefixes only
345 */
346 void cblas_chemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
347 const int N, const void *alpha, const void *A,
348 const int lda, const void *X, const int incX,
349 const void *beta, void *Y, const int incY);
350 void cblas_chbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
351 const int N, const int K, const void *alpha, const void *A,
352 const int lda, const void *X, const int incX,
353 const void *beta, void *Y, const int incY);
354 void cblas_chpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
355 const int N, const void *alpha, const void *Ap,
356 const void *X, const int incX,
357 const void *beta, void *Y, const int incY);
358 void cblas_cgeru(const enum CBLAS_ORDER order, const int M, const int N,
359 const void *alpha, const void *X, const int incX,
360 const void *Y, const int incY, void *A, const int lda);
361 void cblas_cgerc(const enum CBLAS_ORDER order, const int M, const int N,
362 const void *alpha, const void *X, const int incX,
363 const void *Y, const int incY, void *A, const int lda);
364 void cblas_cher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
365 const int N, const float alpha, const void *X, const int incX,
366 void *A, const int lda);
367 void cblas_chpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
368 const int N, const float alpha, const void *X,
369 const int incX, void *A);
370 void cblas_cher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
371 const void *alpha, const void *X, const int incX,
372 const void *Y, const int incY, void *A, const int lda);
373 void cblas_chpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
374 const void *alpha, const void *X, const int incX,
375 const void *Y, const int incY, void *Ap);
376
377 void cblas_zhemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
378 const int N, const void *alpha, const void *A,
379 const int lda, const void *X, const int incX,
380 const void *beta, void *Y, const int incY);
381 void cblas_zhbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
382 const int N, const int K, const void *alpha, const void *A,
383 const int lda, const void *X, const int incX,
384 const void *beta, void *Y, const int incY);
385 void cblas_zhpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
386 const int N, const void *alpha, const void *Ap,
387 const void *X, const int incX,
388 const void *beta, void *Y, const int incY);
389 void cblas_zgeru(const enum CBLAS_ORDER order, const int M, const int N,
390 const void *alpha, const void *X, const int incX,
391 const void *Y, const int incY, void *A, const int lda);
392 void cblas_zgerc(const enum CBLAS_ORDER order, const int M, const int N,
393 const void *alpha, const void *X, const int incX,
394 const void *Y, const int incY, void *A, const int lda);
395 void cblas_zher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
396 const int N, const double alpha, const void *X, const int incX,
397 void *A, const int lda);
398 void cblas_zhpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
399 const int N, const double alpha, const void *X,
400 const int incX, void *A);
401 void cblas_zher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
402 const void *alpha, const void *X, const int incX,
403 const void *Y, const int incY, void *A, const int lda);
404 void cblas_zhpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
405 const void *alpha, const void *X, const int incX,
406 const void *Y, const int incY, void *Ap);
407
408 /*
409 * ===========================================================================
410 * Prototypes for level 3 BLAS
411 * ===========================================================================
412 */
413
414 /*
415 * Routines with standard 4 prefixes (S, D, C, Z)
416 */
417 void cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
418 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
419 const int K, const float alpha, const float *A,
420 const int lda, const float *B, const int ldb,
421 const float beta, float *C, const int ldc);
422 void cblas_ssymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
423 const enum CBLAS_UPLO Uplo, const int M, const int N,
424 const float alpha, const float *A, const int lda,
425 const float *B, const int ldb, const float beta,
426 float *C, const int ldc);
427 void cblas_ssyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
428 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
429 const float alpha, const float *A, const int lda,
430 const float beta, float *C, const int ldc);
431 void cblas_ssyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
432 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
433 const float alpha, const float *A, const int lda,
434 const float *B, const int ldb, const float beta,
435 float *C, const int ldc);
436 void cblas_strmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
437 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
438 const enum CBLAS_DIAG Diag, const int M, const int N,
439 const float alpha, const float *A, const int lda,
440 float *B, const int ldb);
441 void cblas_strsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
442 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
443 const enum CBLAS_DIAG Diag, const int M, const int N,
444 const float alpha, const float *A, const int lda,
445 float *B, const int ldb);
446
447 void cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
448 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
449 const int K, const double alpha, const double *A,
450 const int lda, const double *B, const int ldb,
451 const double beta, double *C, const int ldc);
452 void cblas_dsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
453 const enum CBLAS_UPLO Uplo, const int M, const int N,
454 const double alpha, const double *A, const int lda,
455 const double *B, const int ldb, const double beta,
456 double *C, const int ldc);
457 void cblas_dsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
458 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
459 const double alpha, const double *A, const int lda,
460 const double beta, double *C, const int ldc);
461 void cblas_dsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
462 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
463 const double alpha, const double *A, const int lda,
464 const double *B, const int ldb, const double beta,
465 double *C, const int ldc);
466 void cblas_dtrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
467 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
468 const enum CBLAS_DIAG Diag, const int M, const int N,
469 const double alpha, const double *A, const int lda,
470 double *B, const int ldb);
471 void cblas_dtrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
472 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
473 const enum CBLAS_DIAG Diag, const int M, const int N,
474 const double alpha, const double *A, const int lda,
475 double *B, const int ldb);
476
477 void cblas_cgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
478 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
479 const int K, const void *alpha, const void *A,
480 const int lda, const void *B, const int ldb,
481 const void *beta, void *C, const int ldc);
482 void cblas_csymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
483 const enum CBLAS_UPLO Uplo, const int M, const int N,
484 const void *alpha, const void *A, const int lda,
485 const void *B, const int ldb, const void *beta,
486 void *C, const int ldc);
487 void cblas_csyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
488 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
489 const void *alpha, const void *A, const int lda,
490 const void *beta, void *C, const int ldc);
491 void cblas_csyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
492 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
493 const void *alpha, const void *A, const int lda,
494 const void *B, const int ldb, const void *beta,
495 void *C, const int ldc);
496 void cblas_ctrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
497 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
498 const enum CBLAS_DIAG Diag, const int M, const int N,
499 const void *alpha, const void *A, const int lda,
500 void *B, const int ldb);
501 void cblas_ctrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
502 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
503 const enum CBLAS_DIAG Diag, const int M, const int N,
504 const void *alpha, const void *A, const int lda,
505 void *B, const int ldb);
506
507 void cblas_zgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
508 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
509 const int K, const void *alpha, const void *A,
510 const int lda, const void *B, const int ldb,
511 const void *beta, void *C, const int ldc);
512 void cblas_zsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
513 const enum CBLAS_UPLO Uplo, const int M, const int N,
514 const void *alpha, const void *A, const int lda,
515 const void *B, const int ldb, const void *beta,
516 void *C, const int ldc);
517 void cblas_zsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
518 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
519 const void *alpha, const void *A, const int lda,
520 const void *beta, void *C, const int ldc);
521 void cblas_zsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
522 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
523 const void *alpha, const void *A, const int lda,
524 const void *B, const int ldb, const void *beta,
525 void *C, const int ldc);
526 void cblas_ztrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
527 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
528 const enum CBLAS_DIAG Diag, const int M, const int N,
529 const void *alpha, const void *A, const int lda,
530 void *B, const int ldb);
531 void cblas_ztrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
532 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
533 const enum CBLAS_DIAG Diag, const int M, const int N,
534 const void *alpha, const void *A, const int lda,
535 void *B, const int ldb);
536
537
538 /*
539 * Routines with prefixes C and Z only
540 */
541 void cblas_chemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
542 const enum CBLAS_UPLO Uplo, const int M, const int N,
543 const void *alpha, const void *A, const int lda,
544 const void *B, const int ldb, const void *beta,
545 void *C, const int ldc);
546 void cblas_cherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
547 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
548 const float alpha, const void *A, const int lda,
549 const float beta, void *C, const int ldc);
550 void cblas_cher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
551 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
552 const void *alpha, const void *A, const int lda,
553 const void *B, const int ldb, const float beta,
554 void *C, const int ldc);
555
556 void cblas_zhemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
557 const enum CBLAS_UPLO Uplo, const int M, const int N,
558 const void *alpha, const void *A, const int lda,
559 const void *B, const int ldb, const void *beta,
560 void *C, const int ldc);
561 void cblas_zherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
562 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
563 const double alpha, const void *A, const int lda,
564 const double beta, void *C, const int ldc);
565 void cblas_zher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
566 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
567 const void *alpha, const void *A, const int lda,
568 const void *B, const int ldb, const double beta,
569 void *C, const int ldc);
570
571 void cblas_xerbla(int p, const char *rout, const char *form, ...);
572
573
574 #ifdef __cplusplus
575 }
576 #endif
577
578
579 #endif