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