1 /**
2 C BLAS header.
3 
4 Authors: Ilya Yaroshenko
5 */
6 module cblas.cblas;
7 
8 version(LDC)
9 {
10     pragma(LDC_no_moduleinfo);
11 }
12 
13 version(CBLAS_STD_COMPLEX)
14 {
15 	import std.complex : Complex;
16 	alias _cfloat = Complex!float;
17 	alias _cdouble = Complex!double;
18 }
19 else
20 {
21 	alias _cfloat = cfloat;
22 	alias _cdouble = cdouble;
23 }
24 
25 extern(C) @system @nogc nothrow:
26 
27 version(OPENBLAS)
28 {
29 	enum OPENBLAS_SEQUENTIAL = 0;
30 	/* OpenBLAS is compiled using normal threading model */
31 	enum OPENBLAS_THREAD = 1;
32 	/* OpenBLAS is compiled using OpenMP threading model */
33 	enum OPENBLAS_OPENMP = 2;	
34 }
35 
36 ///
37 alias CBLAS_INDEX = size_t;
38 
39 version(BLASNATIVEINT)
40 	///
41 	alias blasint = ptrdiff_t;
42 else
43 	///
44 	alias blasint = int;
45 
46 debug pragma(msg, "blasint = " ~ blasint.stringof);
47 
48 ///
49 enum CBLAS_ORDER : blasint  {
50 	///
51 	RowMajor=101,
52 	///
53 	ColMajor=102
54 };
55 
56 ///
57 alias Order = CBLAS_ORDER;
58 
59 ///
60 enum CBLAS_TRANSPOSE : blasint {
61 	///
62 	NoTrans=111,
63 	///
64 	Trans=112,
65 	///
66 	ConjTrans=113,
67 	///
68 	ConjNoTrans=114
69 };
70 
71 ///
72 alias Transpose = CBLAS_TRANSPOSE;
73 
74 ///
75 enum CBLAS_UPLO  : blasint {
76 	///
77 	Upper=121, 
78 	///
79 	Lower=122
80 };
81 
82 ///
83 alias Uplo = CBLAS_UPLO;
84 
85 ///
86 enum CBLAS_DIAG  : blasint {
87 	///
88 	NonUnit=131,
89 	///
90 	Unit=132
91 };
92 
93 ///
94 alias Diag = CBLAS_DIAG;
95 
96 ///
97 enum CBLAS_SIDE  : blasint {
98 	///
99 	Left=141,
100 	///
101 	Right=142
102 };
103 
104 ///
105 alias Side = CBLAS_SIDE;
106 
107 version(OPENBLAS)
108 {
109 	/// Set the number of threads on runtime.
110 	void set_num_threads(int num_threads);
111 	///ditto
112 	void goto_set_num_threads(int num_threads);
113 
114 	/// Get the build configure on runtime.
115 	char* get_config();
116 
117 	/// Get the parallelization type which is used by OpenBLAS
118 	int get_parallel(); 
119 }
120 
121 ///
122 void cblas_xerbla(blasint p, char *rout, char *form, ...);
123 
124 pure:
125 
126 ///
127 float  cblas_sdsdot(in blasint n, in float alpha, in float *x, in blasint incx, in float *y, in blasint incy);
128 ///
129 double cblas_dsdot (in blasint n, in float *x, in blasint incx, in float *y, in blasint incy);
130 ///
131 float  cblas_sdot(in blasint n, in float  *x, in blasint incx, in float  *y, in blasint incy);
132 ///
133 double cblas_ddot(in blasint n, in double *x, in blasint incx, in double *y, in blasint incy);
134 
135 ///
136 _cfloat  cblas_cdotu(in blasint n, in _cfloat  *x, in blasint incx, in _cfloat  *y, in blasint incy);
137 ///
138 _cfloat  cblas_cdotc(in blasint n, in _cfloat  *x, in blasint incx, in _cfloat  *y, in blasint incy);
139 ///
140 _cdouble cblas_zdotu(in blasint n, in _cdouble *x, in blasint incx, in _cdouble *y, in blasint incy);
141 ///
142 _cdouble cblas_zdotc(in blasint n, in _cdouble *x, in blasint incx, in _cdouble *y, in blasint incy);
143 
144 ///
145 void  cblas_cdotu_sub(in blasint n, in _cfloat  *x, in blasint incx, in _cfloat  *y, in blasint incy, _cfloat  *ret);
146 ///
147 void  cblas_cdotc_sub(in blasint n, in _cfloat  *x, in blasint incx, in _cfloat  *y, in blasint incy, _cfloat  *ret);
148 ///
149 void  cblas_zdotu_sub(in blasint n, in _cdouble *x, in blasint incx, in _cdouble *y, in blasint incy, _cdouble *ret);
150 ///
151 void  cblas_zdotc_sub(in blasint n, in _cdouble *x, in blasint incx, in _cdouble *y, in blasint incy, _cdouble *ret);
152 
153 ///
154 float  cblas_sasum (in blasint n, in float  *x, in blasint incx);
155 ///
156 double cblas_dasum (in blasint n, in double *x, in blasint incx);
157 ///
158 float  cblas_scasum(in blasint n, in _cfloat  *x, in blasint incx);
159 ///
160 double cblas_dzasum(in blasint n, in _cdouble *x, in blasint incx);
161 
162 ///
163 float  cblas_snrm2 (in blasint N, in float  *X, in blasint incX);
164 ///
165 double cblas_dnrm2 (in blasint N, in double *X, in blasint incX);
166 ///
167 float  cblas_scnrm2(in blasint N, in _cfloat  *X, in blasint incX);
168 ///
169 double cblas_dznrm2(in blasint N, in _cdouble *X, in blasint incX);
170 
171 ///
172 CBLAS_INDEX cblas_isamax(in blasint n, in float  *x, in blasint incx);
173 ///
174 CBLAS_INDEX cblas_idamax(in blasint n, in double *x, in blasint incx);
175 ///
176 CBLAS_INDEX cblas_icamax(in blasint n, in _cfloat  *x, in blasint incx);
177 ///
178 CBLAS_INDEX cblas_izamax(in blasint n, in _cdouble *x, in blasint incx);
179 
180 ///
181 void cblas_saxpy(in blasint n, in float alpha, in float *x, in blasint incx, float *y, in blasint incy);
182 ///
183 void cblas_daxpy(in blasint n, in double alpha, in double *x, in blasint incx, double *y, in blasint incy);
184 ///
185 void cblas_caxpy(in blasint n, in ref _cfloat alpha, in _cfloat *x, in blasint incx, _cfloat *y, in blasint incy);
186 ///
187 void cblas_zaxpy(in blasint n, in ref _cdouble alpha, in _cdouble *x, in blasint incx, _cdouble *y, in blasint incy);
188 
189 ///
190 void cblas_scopy(in blasint n, in float *x, in blasint incx, float *y, in blasint incy);
191 ///
192 void cblas_dcopy(in blasint n, in double *x, in blasint incx, double *y, in blasint incy);
193 ///
194 void cblas_ccopy(in blasint n, in _cfloat *x, in blasint incx, _cfloat *y, in blasint incy);
195 ///
196 void cblas_zcopy(in blasint n, in _cdouble *x, in blasint incx, _cdouble *y, in blasint incy);
197 
198 ///
199 void cblas_sswap(in blasint n, float *x, in blasint incx, float *y, in blasint incy);
200 ///
201 void cblas_dswap(in blasint n, double *x, in blasint incx, double *y, in blasint incy);
202 ///
203 void cblas_cswap(in blasint n, _cfloat *x, in blasint incx, _cfloat *y, in blasint incy);
204 ///
205 void cblas_zswap(in blasint n, _cdouble *x, in blasint incx, _cdouble *y, in blasint incy);
206 
207 ///
208 void cblas_srot(in blasint N, float *X, in blasint incX, float *Y, in blasint incY, in float c, in float s);
209 ///
210 void cblas_drot(in blasint N, double *X, in blasint incX, double *Y, in blasint incY, in double c, in double  s);
211 
212 void cblas_srotg(float *a, float *b, float *c, float *s);
213 void cblas_drotg(double *a, double *b, double *c, double *s);
214 
215 ///
216 void cblas_srotm(in blasint N, float *X, in blasint incX, float *Y, in blasint incY, in float *P);
217 ///
218 void cblas_drotm(in blasint N, double *X, in blasint incX, double *Y, in blasint incY, in double *P);
219 
220 void cblas_srotmg(float *d1, float *d2, float *b1, in float b2, float *P);
221 void cblas_drotmg(double *d1, double *d2, double *b1, in double b2, double *P);
222 
223 ///
224 void cblas_sscal(in blasint N, in float alpha, float *X, in blasint incX);
225 ///
226 void cblas_dscal(in blasint N, in double alpha, double *X, in blasint incX);
227 ///
228 void cblas_cscal(in blasint N, in ref _cfloat alpha, _cfloat *X, in blasint incX);
229 ///
230 void cblas_zscal(in blasint N, in ref _cdouble alpha, _cdouble *X, in blasint incX);
231 ///
232 void cblas_csscal(in blasint N, in _cfloat alpha, _cfloat *X, in blasint incX);
233 ///
234 void cblas_zdscal(in blasint N, in _cdouble alpha, _cdouble *X, in blasint incX);
235 
236 ///
237 void cblas_sgemv(in CBLAS_ORDER order,  in CBLAS_TRANSPOSE trans,  in blasint m, in blasint n, in float alpha, in float  *a, in blasint lda,  in float  *x, in blasint incx,  in float beta,  float  *y, in blasint incy);
238 ///
239 void cblas_dgemv(in CBLAS_ORDER order,  in CBLAS_TRANSPOSE trans,  in blasint m, in blasint n, in double alpha, in double  *a, in blasint lda,  in double  *x, in blasint incx,  in double beta,  double  *y, in blasint incy);
240 ///
241 void cblas_cgemv(in CBLAS_ORDER order,  in CBLAS_TRANSPOSE trans,  in blasint m, in blasint n, in ref _cfloat alpha, in _cfloat  *a, in blasint lda,  in _cfloat  *x, in blasint incx,  in ref _cfloat beta,  _cfloat  *y, in blasint incy);
242 ///
243 void cblas_zgemv(in CBLAS_ORDER order,  in CBLAS_TRANSPOSE trans,  in blasint m, in blasint n, in ref _cdouble alpha, in _cdouble  *a, in blasint lda,  in _cdouble  *x, in blasint incx,  in ref _cdouble beta,  _cdouble  *y, in blasint incy);
244 
245 ///
246 void cblas_sger (in CBLAS_ORDER order, in blasint M, in blasint N, in float   alpha, in float  *X, in blasint incX, in float  *Y, in blasint incY, float  *A, in blasint lda);
247 ///
248 void cblas_dger (in CBLAS_ORDER order, in blasint M, in blasint N, in double  alpha, in double *X, in blasint incX, in double *Y, in blasint incY, double *A, in blasint lda);
249 ///
250 void cblas_cgeru(in CBLAS_ORDER order, in blasint M, in blasint N, in ref _cfloat  alpha, in _cfloat  *X, in blasint incX, in _cfloat  *Y, in blasint incY, _cfloat  *A, in blasint lda);
251 ///
252 void cblas_cgerc(in CBLAS_ORDER order, in blasint M, in blasint N, in ref _cfloat  alpha, in _cfloat  *X, in blasint incX, in _cfloat  *Y, in blasint incY, _cfloat  *A, in blasint lda);
253 ///
254 void cblas_zgeru(in CBLAS_ORDER order, in blasint M, in blasint N, in ref _cdouble alpha, in _cdouble *X, in blasint incX, in _cdouble *Y, in blasint incY, _cdouble *A, in blasint lda);
255 ///
256 void cblas_zgerc(in CBLAS_ORDER order, in blasint M, in blasint N, in ref _cdouble alpha, in _cdouble *X, in blasint incX, in _cdouble *Y, in blasint incY, _cdouble *A, in blasint lda);
257 
258 ///
259 void cblas_strsv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in float *A, in blasint lda, float *X, in blasint incX);
260 ///
261 void cblas_dtrsv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in double *A, in blasint lda, double *X, in blasint incX);
262 ///
263 void cblas_ctrsv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in _cfloat *A, in blasint lda, _cfloat *X, in blasint incX);
264 ///
265 void cblas_ztrsv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in _cdouble *A, in blasint lda, _cdouble *X, in blasint incX);
266 
267 ///
268 void cblas_strmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in float *A, in blasint lda, float *X, in blasint incX);
269 ///
270 void cblas_dtrmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in double *A, in blasint lda, double *X, in blasint incX);
271 ///
272 void cblas_ctrmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in _cfloat *A, in blasint lda, _cfloat *X, in blasint incX);
273 ///
274 void cblas_ztrmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in _cdouble *A, in blasint lda, _cdouble *X, in blasint incX);
275 
276 ///
277 void cblas_ssyr(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in float alpha, in float *X, in blasint incX, float *A, in blasint lda);
278 ///
279 void cblas_dsyr(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in double alpha, in double *X, in blasint incX, double *A, in blasint lda);
280 ///
281 void cblas_cher(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in _cfloat alpha, in _cfloat *X, in blasint incX, _cfloat *A, in blasint lda);
282 ///
283 void cblas_zher(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in _cdouble alpha, in _cdouble *X, in blasint incX, _cdouble *A, in blasint lda);
284 
285 ///
286 void cblas_ssyr2(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in float alpha, in float *X, in blasint incX, in float *Y, in blasint incY, float *A, in blasint lda);
287 ///
288 void cblas_dsyr2(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in double alpha, in double *X, in blasint incX, in double *Y, in blasint incY, double *A, in blasint lda);
289 ///
290 void cblas_cher2(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in ref _cfloat alpha, in _cfloat *X, in blasint incX, in _cfloat *Y, in blasint incY, _cfloat *A, in blasint lda);
291 ///
292 void cblas_zher2(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in ref _cdouble alpha, in _cdouble *X, in blasint incX, in _cdouble *Y, in blasint incY, _cdouble *A, in blasint lda);
293 
294 ///
295 void cblas_sgbmv(in CBLAS_ORDER order, in CBLAS_TRANSPOSE TransA, in blasint M, in blasint N, in blasint KL, in blasint KU, in float alpha, in float *A, in blasint lda, in float *X, in blasint incX, in float beta, float *Y, in blasint incY);
296 ///
297 void cblas_dgbmv(in CBLAS_ORDER order, in CBLAS_TRANSPOSE TransA, in blasint M, in blasint N, in blasint KL, in blasint KU, in double alpha, in double *A, in blasint lda, in double *X, in blasint incX, in double beta, double *Y, in blasint incY);
298 ///
299 void cblas_cgbmv(in CBLAS_ORDER order, in CBLAS_TRANSPOSE TransA, in blasint M, in blasint N, in blasint KL, in blasint KU, in ref _cfloat alpha, in _cfloat *A, in blasint lda, in _cfloat *X, in blasint incX, in ref _cfloat beta, _cfloat *Y, in blasint incY);
300 ///
301 void cblas_zgbmv(in CBLAS_ORDER order, in CBLAS_TRANSPOSE TransA, in blasint M, in blasint N, in blasint KL, in blasint KU, in ref _cdouble alpha, in _cdouble *A, in blasint lda, in _cdouble *X, in blasint incX, in ref _cdouble beta, _cdouble *Y, in blasint incY);
302 
303 ///
304 void cblas_ssbmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in blasint K, in float alpha, in float *A, in blasint lda, in float *X, in blasint incX, in float beta, float *Y, in blasint incY);
305 ///
306 void cblas_dsbmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in blasint K, in double alpha, in double *A, in blasint lda, in double *X, in blasint incX, in double beta, double *Y, in blasint incY);
307 
308 
309 ///
310 void cblas_stbmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in blasint K, in float *A, in blasint lda, float *X, in blasint incX);
311 ///
312 void cblas_dtbmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in blasint K, in double *A, in blasint lda, double *X, in blasint incX);
313 ///
314 void cblas_ctbmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in blasint K, in _cfloat *A, in blasint lda, _cfloat *X, in blasint incX);
315 ///
316 void cblas_ztbmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in blasint K, in _cdouble *A, in blasint lda, _cdouble *X, in blasint incX);
317 
318 ///
319 void cblas_stbsv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in blasint K, in float *A, in blasint lda, float *X, in blasint incX);
320 ///
321 void cblas_dtbsv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in blasint K, in double *A, in blasint lda, double *X, in blasint incX);
322 ///
323 void cblas_ctbsv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in blasint K, in _cfloat *A, in blasint lda, _cfloat *X, in blasint incX);
324 ///
325 void cblas_ztbsv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in blasint K, in _cdouble *A, in blasint lda, _cdouble *X, in blasint incX);
326 
327 ///
328 void cblas_stpmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in float *Ap, float *X, in blasint incX);
329 ///
330 void cblas_dtpmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in double *Ap, double *X, in blasint incX);
331 ///
332 void cblas_ctpmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in _cfloat *Ap, _cfloat *X, in blasint incX);
333 ///
334 void cblas_ztpmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in _cdouble *Ap, _cdouble *X, in blasint incX);
335 
336 ///
337 void cblas_stpsv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in float *Ap, float *X, in blasint incX);
338 ///
339 void cblas_dtpsv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in double *Ap, double *X, in blasint incX);
340 ///
341 void cblas_ctpsv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in _cfloat *Ap, _cfloat *X, in blasint incX);
342 ///
343 void cblas_ztpsv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint N, in _cdouble *Ap, _cdouble *X, in blasint incX);
344 
345 ///
346 void cblas_ssymv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in float alpha, in float *A, in blasint lda, in float *X, in blasint incX, in float beta, float *Y, in blasint incY);
347 ///
348 void cblas_dsymv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in double alpha, in double *A, in blasint lda, in double *X, in blasint incX, in double beta, double *Y, in blasint incY);
349 ///
350 void cblas_chemv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in ref _cfloat alpha, in _cfloat *A, in blasint lda, in _cfloat *X, in blasint incX, in ref _cfloat beta, _cfloat *Y, in blasint incY);
351 ///
352 void cblas_zhemv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in ref _cdouble alpha, in _cdouble *A, in blasint lda, in _cdouble *X, in blasint incX, in ref _cdouble beta, _cdouble *Y, in blasint incY);
353 
354 
355 ///
356 void cblas_sspmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in float alpha, in float *Ap, in float *X, in blasint incX, in float beta, float *Y, in blasint incY);
357 ///
358 void cblas_dspmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in double alpha, in double *Ap, in double *X, in blasint incX, in double beta, double *Y, in blasint incY);
359 
360 ///
361 void cblas_sspr(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in float alpha, in float *X, in blasint incX, float *Ap);
362 ///
363 void cblas_dspr(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in double alpha, in double *X, in blasint incX, double *Ap);
364 
365 ///
366 void cblas_chpr(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in float alpha, in float *X, in blasint incX, float *A);
367 ///
368 void cblas_zhpr(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in double alpha, in double *X, in blasint incX, double *A);
369 
370 ///
371 void cblas_sspr2(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in float alpha, in float *X, in blasint incX, in float *Y, in blasint incY, float *A);
372 ///
373 void cblas_dspr2(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in double alpha, in double *X, in blasint incX, in double *Y, in blasint incY, double *A);
374 ///
375 void cblas_chpr2(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in ref _cfloat alpha, in _cfloat *X, in blasint incX, in _cfloat *Y, in blasint incY, _cfloat *Ap);
376 ///
377 void cblas_zhpr2(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in ref _cdouble alpha, in _cdouble *X, in blasint incX, in _cdouble *Y, in blasint incY, _cdouble *Ap);
378 
379 ///
380 void cblas_chbmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in blasint K, in ref _cfloat alpha, in float *A, in blasint lda, in float *X, in blasint incX, in _cfloat beta, float *Y, in blasint incY);
381 ///
382 void cblas_zhbmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in blasint K, in ref _cdouble alpha, in double *A, in blasint lda, in double *X, in blasint incX, in _cdouble beta, double *Y, in blasint incY);
383 
384 ///
385 void cblas_chpmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in ref _cfloat alpha, in float *Ap, in float *X, in blasint incX, in _cfloat beta, float *Y, in blasint incY);
386 ///
387 void cblas_zhpmv(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in blasint N, in ref _cdouble alpha, in double *Ap, in double *X, in blasint incX, in _cdouble beta, double *Y, in blasint incY);
388 
389 ///
390 void cblas_sgemm(in CBLAS_ORDER order, in CBLAS_TRANSPOSE TransA, in CBLAS_TRANSPOSE TransB, in blasint M, in blasint N, in blasint K, in float alpha, in float *A, in blasint lda, in float *B, in blasint ldb, in float beta, float *C, in blasint ldc);
391 ///
392 void cblas_dgemm(in CBLAS_ORDER order, in CBLAS_TRANSPOSE TransA, in CBLAS_TRANSPOSE TransB, in blasint M, in blasint N, in blasint K, in double alpha, in double *A, in blasint lda, in double *B, in blasint ldb, in double beta, double *C, in blasint ldc);
393 ///
394 void cblas_cgemm(in CBLAS_ORDER order, in CBLAS_TRANSPOSE TransA, in CBLAS_TRANSPOSE TransB, in blasint M, in blasint N, in blasint K, in ref _cfloat alpha, in _cfloat *A, in blasint lda, in _cfloat *B, in blasint ldb, in ref _cfloat beta, _cfloat *C, in blasint ldc);
395 ///
396 void cblas_zgemm(in CBLAS_ORDER order, in CBLAS_TRANSPOSE TransA, in CBLAS_TRANSPOSE TransB, in blasint M, in blasint N, in blasint K, in ref _cdouble alpha, in _cdouble *A, in blasint lda, in _cdouble *B, in blasint ldb, in ref _cdouble beta, _cdouble *C, in blasint ldc);
397 
398 ///
399 void cblas_ssymm(in CBLAS_ORDER order, in CBLAS_SIDE Side, in CBLAS_UPLO Uplo, in blasint M, in blasint N, in float alpha, in float *A, in blasint lda, in float *B, in blasint ldb, in float beta, float *C, in blasint ldc);
400 ///
401 void cblas_dsymm(in CBLAS_ORDER order, in CBLAS_SIDE Side, in CBLAS_UPLO Uplo, in blasint M, in blasint N, in double alpha, in double *A, in blasint lda, in double *B, in blasint ldb, in double beta, double *C, in blasint ldc);
402 ///
403 void cblas_csymm(in CBLAS_ORDER order, in CBLAS_SIDE Side, in CBLAS_UPLO Uplo, in blasint M, in blasint N, in ref _cfloat alpha, in _cfloat *A, in blasint lda, in _cfloat *B, in blasint ldb, in ref _cfloat beta, _cfloat *C, in blasint ldc);
404 ///
405 void cblas_zsymm(in CBLAS_ORDER order, in CBLAS_SIDE Side, in CBLAS_UPLO Uplo, in blasint M, in blasint N, in ref _cdouble alpha, in _cdouble *A, in blasint lda, in _cdouble *B, in blasint ldb, in ref _cdouble beta, _cdouble *C, in blasint ldc);
406 
407 ///
408 void cblas_ssyrk(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE Trans, in blasint N, in blasint K, in float alpha, in float *A, in blasint lda, in float beta, float *C, in blasint ldc);
409 ///
410 void cblas_dsyrk(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE Trans, in blasint N, in blasint K, in double alpha, in double *A, in blasint lda, in double beta, double *C, in blasint ldc); 
411 ///
412 void cblas_csyrk(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE Trans, in blasint N, in blasint K, in ref _cfloat alpha, in _cfloat *A, in blasint lda, in ref _cfloat beta, _cfloat *C, in blasint ldc);
413 ///
414 void cblas_zsyrk(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE Trans, in blasint N, in blasint K, in ref _cdouble alpha, in _cdouble *A, in blasint lda, in ref _cdouble beta, _cdouble *C, in blasint ldc);
415 
416 ///
417 void cblas_ssyr2k(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE Trans, in blasint N, in blasint K, in float alpha, in float *A, in blasint lda, in float *B, in blasint ldb, in float beta, float *C, in blasint ldc);
418 ///
419 void cblas_dsyr2k(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE Trans, in blasint N, in blasint K, in double alpha, in double *A, in blasint lda, in double *B, in blasint ldb, in double beta, double *C, in blasint ldc);
420 ///
421 void cblas_csyr2k(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE Trans, in blasint N, in blasint K, in ref _cfloat alpha, in _cfloat *A, in blasint lda, in _cfloat *B, in blasint ldb, in ref _cfloat beta, _cfloat *C, in blasint ldc);
422 ///
423 void cblas_zsyr2k(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE Trans, in blasint N, in blasint K, in ref _cdouble alpha, in _cdouble *A, in blasint lda, in _cdouble *B, in blasint ldb, in ref _cdouble beta, _cdouble *C, in blasint ldc);
424 
425 ///
426 void cblas_strmm(in CBLAS_ORDER order, in CBLAS_SIDE Side, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint M, in blasint N, in float alpha, in float *A, in blasint lda, float *B, in blasint ldb);
427 ///
428 void cblas_dtrmm(in CBLAS_ORDER order, in CBLAS_SIDE Side, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint M, in blasint N, in double alpha, in double *A, in blasint lda, double *B, in blasint ldb);
429 ///
430 void cblas_ctrmm(in CBLAS_ORDER order, in CBLAS_SIDE Side, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint M, in blasint N, in ref _cfloat alpha, in _cfloat *A, in blasint lda, _cfloat *B, in blasint ldb);
431 ///
432 void cblas_ztrmm(in CBLAS_ORDER order, in CBLAS_SIDE Side, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint M, in blasint N, in ref _cdouble alpha, in _cdouble *A, in blasint lda, _cdouble *B, in blasint ldb);
433 
434 ///
435 void cblas_strsm(in CBLAS_ORDER order, in CBLAS_SIDE Side, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint M, in blasint N, in float alpha, in float *A, in blasint lda, float *B, in blasint ldb);
436 ///
437 void cblas_dtrsm(in CBLAS_ORDER order, in CBLAS_SIDE Side, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint M, in blasint N, in double alpha, in double *A, in blasint lda, double *B, in blasint ldb);
438 ///
439 void cblas_ctrsm(in CBLAS_ORDER order, in CBLAS_SIDE Side, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint M, in blasint N, in ref _cfloat alpha, in _cfloat *A, in blasint lda, _cfloat *B, in blasint ldb);
440 ///
441 void cblas_ztrsm(in CBLAS_ORDER order, in CBLAS_SIDE Side, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE TransA, in CBLAS_DIAG Diag, in blasint M, in blasint N, in ref _cdouble alpha, in _cdouble *A, in blasint lda, _cdouble *B, in blasint ldb);
442 
443 ///
444 void cblas_chemm(in CBLAS_ORDER order, in CBLAS_SIDE Side, in CBLAS_UPLO Uplo, in blasint M, in blasint N, in ref _cfloat alpha, in float *A, in blasint lda, in float *B, in blasint ldb, in _cfloat beta, float *C, in blasint ldc);
445 ///
446 void cblas_zhemm(in CBLAS_ORDER order, in CBLAS_SIDE Side, in CBLAS_UPLO Uplo, in blasint M, in blasint N, in ref _cdouble alpha, in double *A, in blasint lda, in double *B, in blasint ldb, in _cdouble beta, double *C, in blasint ldc);
447 
448 ///
449 void cblas_cherk(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE Trans, in blasint N, in blasint K, in float alpha, in float *A, in blasint lda, in float beta, float *C, in blasint ldc);
450 ///
451 void cblas_zherk(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE Trans, in blasint N, in blasint K, in double alpha, in double *A, in blasint lda, in double beta, double *C, in blasint ldc);
452 
453 ///
454 void cblas_cher2k(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE Trans, in blasint N, in blasint K, in ref _cfloat alpha, in float *A, in blasint lda, in float *B, in blasint ldb, in float beta, float *C, in blasint ldc);
455 ///
456 void cblas_zher2k(in CBLAS_ORDER order, in CBLAS_UPLO Uplo, in CBLAS_TRANSPOSE Trans, in blasint N, in blasint K, in ref _cdouble alpha, in double *A, in blasint lda, in double *B, in blasint ldb, in double beta, double *C, in blasint ldc);