Mercurial > hg > qm-dsp
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 |