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