comparison include/cblas.h @ 17:a120ac7b26b2

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