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