1 /**
2 D BLAS header.
3 
4 Authors: Ilya Yaroshenko
5 */
6 module cblas;
7 
8 public import cblas.cblas;
9 
10 unittest
11 {
12 	import std.typetuple;
13 	import std.complex;
14 	foreach(T; TypeTuple!(float, double))
15 	{
16 		auto x = [T(1), T(2), T(3)];
17 		auto y = [T(2), T(3), T(4)];
18 		assert(dot(3, x.ptr, 1, y.ptr, 1) == 20);
19 		auto cx = [Complex!T(1), Complex!T(2), Complex!T(3)];
20 		auto cy = [Complex!T(2), Complex!T(3), Complex!T(4)];
21 		assert(dotu(3, cx.ptr, 1, cy.ptr, 1) == 20);
22 	}
23 }
24 
25 ///
26 alias sdsdot = cblas_sdsdot;
27 ///
28 alias dsdot = cblas_dsdot;
29 ///
30 alias dot = cblas_sdot;
31 ///
32 alias dot = cblas_ddot;
33 ///
34 alias dotu = cblas_cdotu;
35 ///
36 alias dotc = cblas_cdotc;
37 ///
38 alias dotu = cblas_zdotu;
39 ///
40 alias dotc = cblas_zdotc;
41 ///
42 alias dotu_sub = cblas_cdotu_sub;
43 ///
44 alias dotc_sub = cblas_cdotc_sub;
45 ///
46 alias dotu_sub = cblas_zdotu_sub;
47 ///
48 alias dotc_sub = cblas_zdotc_sub;
49 ///
50 alias asum = cblas_sasum;
51 ///
52 alias asum = cblas_dasum;
53 ///
54 alias asum = cblas_scasum;
55 ///
56 alias asum = cblas_dzasum;
57 ///
58 alias nrm2 = cblas_snrm2;
59 ///
60 alias nrm2 = cblas_dnrm2;
61 ///
62 alias cnrm2 = cblas_scnrm2;
63 ///
64 alias znrm2 = cblas_dznrm2;
65 ///
66 alias samax = cblas_isamax;
67 ///
68 alias damax = cblas_idamax;
69 ///
70 alias camax = cblas_icamax;
71 ///
72 alias zamax = cblas_izamax;
73 ///
74 alias axpy = cblas_saxpy;
75 ///
76 alias axpy = cblas_daxpy;
77 ///
78 alias axpy = cblas_caxpy;
79 ///
80 alias axpy = cblas_zaxpy;
81 ///
82 alias copy = cblas_scopy;
83 ///
84 alias copy = cblas_dcopy;
85 ///
86 alias copy = cblas_ccopy;
87 ///
88 alias copy = cblas_zcopy;
89 ///
90 alias swap = cblas_sswap;
91 ///
92 alias swap = cblas_dswap;
93 ///
94 alias swap = cblas_cswap;
95 ///
96 alias swap = cblas_zswap;
97 ///
98 alias rot = cblas_srot;
99 ///
100 alias rot = cblas_drot;
101 ///
102 alias rotg = cblas_srotg;
103 ///
104 alias rotg = cblas_drotg;
105 ///
106 alias rotm = cblas_srotm;
107 ///
108 alias rotm = cblas_drotm;
109 ///
110 alias rotmg = cblas_srotmg;
111 ///
112 alias rotmg = cblas_drotmg;
113 ///
114 alias scal = cblas_sscal;
115 ///
116 alias scal = cblas_dscal;
117 ///
118 alias scal = cblas_cscal;
119 ///
120 alias scal = cblas_zscal;
121 ///
122 alias sscal = cblas_csscal;
123 ///
124 alias dscal = cblas_zdscal;
125 ///
126 alias gemv = cblas_sgemv;
127 ///
128 alias gemv = cblas_dgemv;
129 ///
130 alias gemv = cblas_cgemv;
131 ///
132 alias gemv = cblas_zgemv;
133 ///
134 alias ger = cblas_sger;
135 ///
136 alias ger = cblas_dger;
137 ///
138 alias geru = cblas_cgeru;
139 ///
140 alias gerc = cblas_cgerc;
141 ///
142 alias geru = cblas_zgeru;
143 ///
144 alias gerc = cblas_zgerc;
145 ///
146 alias trsv = cblas_strsv;
147 ///
148 alias trsv = cblas_dtrsv;
149 ///
150 alias trsv = cblas_ctrsv;
151 ///
152 alias trsv = cblas_ztrsv;
153 ///
154 alias trmv = cblas_strmv;
155 ///
156 alias trmv = cblas_dtrmv;
157 ///
158 alias trmv = cblas_ctrmv;
159 ///
160 alias trmv = cblas_ztrmv;
161 ///
162 alias syr = cblas_ssyr;
163 ///
164 alias syr = cblas_dsyr;
165 ///
166 alias her = cblas_cher;
167 ///
168 alias her = cblas_zher;
169 ///
170 alias syr2 = cblas_ssyr2;
171 ///
172 alias syr2 = cblas_dsyr2;
173 ///
174 alias her2 = cblas_cher2;
175 ///
176 alias her2 = cblas_zher2;
177 ///
178 alias gbmv = cblas_sgbmv;
179 ///
180 alias gbmv = cblas_dgbmv;
181 ///
182 alias gbmv = cblas_cgbmv;
183 ///
184 alias gbmv = cblas_zgbmv;
185 ///
186 alias sbmv = cblas_ssbmv;
187 ///
188 alias sbmv = cblas_dsbmv;
189 ///
190 alias tbmv = cblas_stbmv;
191 ///
192 alias tbmv = cblas_dtbmv;
193 ///
194 alias tbmv = cblas_ctbmv;
195 ///
196 alias tbmv = cblas_ztbmv;
197 ///
198 alias tbsv = cblas_stbsv;
199 ///
200 alias tbsv = cblas_dtbsv;
201 ///
202 alias tbsv = cblas_ctbsv;
203 ///
204 alias tbsv = cblas_ztbsv;
205 ///
206 alias tpmv = cblas_stpmv;
207 ///
208 alias tpmv = cblas_dtpmv;
209 ///
210 alias tpmv = cblas_ctpmv;
211 ///
212 alias tpmv = cblas_ztpmv;
213 ///
214 alias tpsv = cblas_stpsv;
215 ///
216 alias tpsv = cblas_dtpsv;
217 ///
218 alias tpsv = cblas_ctpsv;
219 ///
220 alias tpsv = cblas_ztpsv;
221 ///
222 alias symv = cblas_ssymv;
223 ///
224 alias symv = cblas_dsymv;
225 ///
226 alias hemv = cblas_chemv;
227 ///
228 alias hemv = cblas_zhemv;
229 ///
230 alias spmv = cblas_sspmv;
231 ///
232 alias spmv = cblas_dspmv;
233 ///
234 alias spr = cblas_sspr;
235 ///
236 alias spr = cblas_dspr;
237 ///
238 alias hpr = cblas_chpr;
239 ///
240 alias hpr = cblas_zhpr;
241 ///
242 alias spr2 = cblas_sspr2;
243 ///
244 alias spr2 = cblas_dspr2;
245 ///
246 alias hpr2 = cblas_chpr2;
247 ///
248 alias hpr2 = cblas_zhpr2;
249 ///
250 alias hbmv = cblas_chbmv;
251 ///
252 alias hbmv = cblas_zhbmv;
253 ///
254 alias hpmv = cblas_chpmv;
255 ///
256 alias hpmv = cblas_zhpmv;
257 ///
258 alias gemm = cblas_sgemm;
259 ///
260 alias gemm = cblas_dgemm;
261 ///
262 alias gemm = cblas_cgemm;
263 ///
264 alias gemm = cblas_zgemm;
265 ///
266 alias symm = cblas_ssymm;
267 ///
268 alias symm = cblas_dsymm;
269 ///
270 alias symm = cblas_csymm;
271 ///
272 alias symm = cblas_zsymm;
273 ///
274 alias syrk = cblas_ssyrk;
275 ///
276 alias syrk = cblas_dsyrk;
277 ///
278 alias syrk = cblas_csyrk;
279 ///
280 alias syrk = cblas_zsyrk;
281 ///
282 alias syr2k = cblas_ssyr2k;
283 ///
284 alias syr2k = cblas_dsyr2k;
285 ///
286 alias syr2k = cblas_csyr2k;
287 ///
288 alias syr2k = cblas_zsyr2k;
289 ///
290 alias trmm = cblas_strmm;
291 ///
292 alias trmm = cblas_dtrmm;
293 ///
294 alias trmm = cblas_ctrmm;
295 ///
296 alias trmm = cblas_ztrmm;
297 ///
298 alias trsm = cblas_strsm;
299 ///
300 alias trsm = cblas_dtrsm;
301 ///
302 alias trsm = cblas_ctrsm;
303 ///
304 alias trsm = cblas_ztrsm;
305 ///
306 alias hemm = cblas_chemm;
307 ///
308 alias hemm = cblas_zhemm;
309 ///
310 alias herk = cblas_cherk;
311 ///
312 alias herk = cblas_zherk;
313 ///
314 alias her2k = cblas_cher2k;
315 ///
316 alias her2k = cblas_zher2k;
317 ///
318 alias xerbla = cblas_xerbla;