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);