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