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;