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