gorgonia.org/gorgonia@v0.9.17/blase/cblas.h (about) 1 #ifndef CBLAS_H 2 3 #ifndef CBLAS_ENUM_DEFINED_H 4 #define CBLAS_ENUM_DEFINED_H 5 typedef enum CBLAS_ORDER { 6 CblasRowMajor=101, 7 CblasColMajor=102 8 } cblas_order; 9 10 typedef enum CBLAS_TRANSPOSE { 11 CblasNoTrans=111, 12 CblasTrans=112, 13 CblasConjTrans=113, 14 AtlasConj=114 15 } cblas_transpose; 16 17 // TODO: typedef these 18 enum CBLAS_UPLO {CblasUpper=121, CblasLower=122}; 19 enum CBLAS_DIAG {CblasNonUnit=131, CblasUnit=132}; 20 enum CBLAS_SIDE {CblasLeft=141, CblasRight=142}; 21 #endif 22 23 #ifndef CBLAS_ENUM_ONLY 24 #define CBLAS_H 25 #define CBLAS_INDEX int 26 27 int cblas_errprn(int ierr, int info, char *form, ...); 28 29 /* 30 * =========================================================================== 31 * Prototypes for level 1 BLAS functions (complex are recast as routines) 32 * =========================================================================== 33 */ 34 float cblas_sdsdot(const int N, const float alpha, const float *X, 35 const int incX, const float *Y, const int incY); 36 double cblas_dsdot(const int N, const float *X, const int incX, const float *Y, 37 const int incY); 38 float cblas_sdot(const int N, const float *X, const int incX, 39 const float *Y, const int incY); 40 double cblas_ddot(const int N, const double *X, const int incX, 41 const double *Y, const int incY); 42 /* 43 * Functions having prefixes Z and C only 44 */ 45 void cblas_cdotu_sub(const int N, const void *X, const int incX, 46 const void *Y, const int incY, void *dotu); 47 void cblas_cdotc_sub(const int N, const void *X, const int incX, 48 const void *Y, const int incY, void *dotc); 49 50 void cblas_zdotu_sub(const int N, const void *X, const int incX, 51 const void *Y, const int incY, void *dotu); 52 void cblas_zdotc_sub(const int N, const void *X, const int incX, 53 const void *Y, const int incY, void *dotc); 54 55 56 /* 57 * Functions having prefixes S D SC DZ 58 */ 59 float cblas_snrm2(const int N, const float *X, const int incX); 60 float cblas_sasum(const int N, const float *X, const int incX); 61 62 double cblas_dnrm2(const int N, const double *X, const int incX); 63 double cblas_dasum(const int N, const double *X, const int incX); 64 65 float cblas_scnrm2(const int N, const void *X, const int incX); 66 float cblas_scasum(const int N, const void *X, const int incX); 67 68 double cblas_dznrm2(const int N, const void *X, const int incX); 69 double cblas_dzasum(const int N, const void *X, const int incX); 70 71 72 /* 73 * Functions having standard 4 prefixes (S D C Z) 74 */ 75 CBLAS_INDEX cblas_isamax(const int N, const float *X, const int incX); 76 CBLAS_INDEX cblas_idamax(const int N, const double *X, const int incX); 77 CBLAS_INDEX cblas_icamax(const int N, const void *X, const int incX); 78 CBLAS_INDEX cblas_izamax(const int N, const void *X, const int incX); 79 80 /* 81 * =========================================================================== 82 * Prototypes for level 1 BLAS routines 83 * =========================================================================== 84 */ 85 86 /* 87 * Routines with standard 4 prefixes (s, d, c, z) 88 */ 89 void cblas_sswap(const int N, float *X, const int incX, 90 float *Y, const int incY); 91 void cblas_scopy(const int N, const float *X, const int incX, 92 float *Y, const int incY); 93 void cblas_saxpy(const int N, const float alpha, const float *X, 94 const int incX, float *Y, const int incY); 95 void catlas_saxpby(const int N, const float alpha, const float *X, 96 const int incX, const float beta, float *Y, const int incY); 97 void catlas_sset 98 (const int N, const float alpha, float *X, const int incX); 99 100 void cblas_dswap(const int N, double *X, const int incX, 101 double *Y, const int incY); 102 void cblas_dcopy(const int N, const double *X, const int incX, 103 double *Y, const int incY); 104 void cblas_daxpy(const int N, const double alpha, const double *X, 105 const int incX, double *Y, const int incY); 106 void catlas_daxpby(const int N, const double alpha, const double *X, 107 const int incX, const double beta, double *Y, const int incY); 108 void catlas_dset 109 (const int N, const double alpha, double *X, const int incX); 110 111 void cblas_cswap(const int N, void *X, const int incX, 112 void *Y, const int incY); 113 void cblas_ccopy(const int N, const void *X, const int incX, 114 void *Y, const int incY); 115 void cblas_caxpy(const int N, const void *alpha, const void *X, 116 const int incX, void *Y, const int incY); 117 void catlas_caxpby(const int N, const void *alpha, const void *X, 118 const int incX, const void *beta, void *Y, const int incY); 119 void catlas_cset 120 (const int N, const void *alpha, void *X, const int incX); 121 122 void cblas_zswap(const int N, void *X, const int incX, 123 void *Y, const int incY); 124 void cblas_zcopy(const int N, const void *X, const int incX, 125 void *Y, const int incY); 126 void cblas_zaxpy(const int N, const void *alpha, const void *X, 127 const int incX, void *Y, const int incY); 128 void catlas_zaxpby(const int N, const void *alpha, const void *X, 129 const int incX, const void *beta, void *Y, const int incY); 130 void catlas_zset 131 (const int N, const void *alpha, void *X, const int incX); 132 133 134 /* 135 * Routines with S and D prefix only 136 */ 137 void cblas_srotg(float *a, float *b, float *c, float *s); 138 void cblas_srotmg(float *d1, float *d2, float *b1, const float b2, float *P); 139 void cblas_srot(const int N, float *X, const int incX, 140 float *Y, const int incY, const float c, const float s); 141 void cblas_srotm(const int N, float *X, const int incX, 142 float *Y, const int incY, const float *P); 143 144 void cblas_drotg(double *a, double *b, double *c, double *s); 145 void cblas_drotmg(double *d1, double *d2, double *b1, const double b2, double *P); 146 void cblas_drot(const int N, double *X, const int incX, 147 double *Y, const int incY, const double c, const double s); 148 void cblas_drotm(const int N, double *X, const int incX, 149 double *Y, const int incY, const double *P); 150 151 152 /* 153 * Routines with S D C Z CS and ZD prefixes 154 */ 155 void cblas_sscal(const int N, const float alpha, float *X, const int incX); 156 void cblas_dscal(const int N, const double alpha, double *X, const int incX); 157 void cblas_cscal(const int N, const void *alpha, void *X, const int incX); 158 void cblas_zscal(const int N, const void *alpha, void *X, const int incX); 159 void cblas_csscal(const int N, const float alpha, void *X, const int incX); 160 void cblas_zdscal(const int N, const double alpha, void *X, const int incX); 161 162 /* 163 * Extra reference routines provided by ATLAS, but not mandated by the standard 164 */ 165 void cblas_crotg(void *a, void *b, void *c, void *s); 166 void cblas_zrotg(void *a, void *b, void *c, void *s); 167 void cblas_csrot(const int N, void *X, const int incX, void *Y, const int incY, 168 const float c, const float s); 169 void cblas_zdrot(const int N, void *X, const int incX, void *Y, const int incY, 170 const double c, const double s); 171 172 /* 173 * =========================================================================== 174 * Prototypes for level 2 BLAS 175 * =========================================================================== 176 */ 177 178 /* 179 * Routines with standard 4 prefixes (S, D, C, Z) 180 */ 181 void cblas_sgemv(const enum CBLAS_ORDER Order, 182 const enum CBLAS_TRANSPOSE TransA, const int M, const int N, 183 const float alpha, const float *A, const int lda, 184 const float *X, const int incX, const float beta, 185 float *Y, const int incY); 186 void cblas_sgbmv(const enum CBLAS_ORDER Order, 187 const enum CBLAS_TRANSPOSE TransA, const int M, const int N, 188 const int KL, const int KU, const float alpha, 189 const float *A, const int lda, const float *X, 190 const int incX, const float beta, float *Y, const int incY); 191 void cblas_strmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 192 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 193 const int N, const float *A, const int lda, 194 float *X, const int incX); 195 void cblas_stbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 196 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 197 const int N, const int K, const float *A, const int lda, 198 float *X, const int incX); 199 void cblas_stpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 200 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 201 const int N, const float *Ap, float *X, const int incX); 202 void cblas_strsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 203 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 204 const int N, const float *A, const int lda, float *X, 205 const int incX); 206 void cblas_stbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 207 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 208 const int N, const int K, const float *A, const int lda, 209 float *X, const int incX); 210 void cblas_stpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 211 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 212 const int N, const float *Ap, float *X, const int incX); 213 214 void cblas_dgemv(const enum CBLAS_ORDER Order, 215 const enum CBLAS_TRANSPOSE TransA, const int M, const int N, 216 const double alpha, const double *A, const int lda, 217 const double *X, const int incX, const double beta, 218 double *Y, const int incY); 219 void cblas_dgbmv(const enum CBLAS_ORDER Order, 220 const enum CBLAS_TRANSPOSE TransA, const int M, const int N, 221 const int KL, const int KU, const double alpha, 222 const double *A, const int lda, const double *X, 223 const int incX, const double beta, double *Y, const int incY); 224 void cblas_dtrmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 225 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 226 const int N, const double *A, const int lda, 227 double *X, const int incX); 228 void cblas_dtbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 229 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 230 const int N, const int K, const double *A, const int lda, 231 double *X, const int incX); 232 void cblas_dtpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 233 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 234 const int N, const double *Ap, double *X, const int incX); 235 void cblas_dtrsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 236 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 237 const int N, const double *A, const int lda, double *X, 238 const int incX); 239 void cblas_dtbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 240 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 241 const int N, const int K, const double *A, const int lda, 242 double *X, const int incX); 243 void cblas_dtpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 244 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 245 const int N, const double *Ap, double *X, const int incX); 246 247 void cblas_cgemv(const enum CBLAS_ORDER Order, 248 const enum CBLAS_TRANSPOSE TransA, const int M, const int N, 249 const void *alpha, const void *A, const int lda, 250 const void *X, const int incX, const void *beta, 251 void *Y, const int incY); 252 void cblas_cgbmv(const enum CBLAS_ORDER Order, 253 const enum CBLAS_TRANSPOSE TransA, const int M, const int N, 254 const int KL, const int KU, const void *alpha, 255 const void *A, const int lda, const void *X, 256 const int incX, const void *beta, void *Y, const int incY); 257 void cblas_ctrmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 258 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 259 const int N, const void *A, const int lda, 260 void *X, const int incX); 261 void cblas_ctbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 262 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 263 const int N, const int K, const void *A, const int lda, 264 void *X, const int incX); 265 void cblas_ctpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 266 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 267 const int N, const void *Ap, void *X, const int incX); 268 void cblas_ctrsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 269 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 270 const int N, const void *A, const int lda, void *X, 271 const int incX); 272 void cblas_ctbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 273 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 274 const int N, const int K, const void *A, const int lda, 275 void *X, const int incX); 276 void cblas_ctpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 277 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 278 const int N, const void *Ap, void *X, const int incX); 279 280 void cblas_zgemv(const enum CBLAS_ORDER Order, 281 const enum CBLAS_TRANSPOSE TransA, const int M, const int N, 282 const void *alpha, const void *A, const int lda, 283 const void *X, const int incX, const void *beta, 284 void *Y, const int incY); 285 void cblas_zgbmv(const enum CBLAS_ORDER Order, 286 const enum CBLAS_TRANSPOSE TransA, const int M, const int N, 287 const int KL, const int KU, const void *alpha, 288 const void *A, const int lda, const void *X, 289 const int incX, const void *beta, void *Y, const int incY); 290 void cblas_ztrmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 291 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 292 const int N, const void *A, const int lda, 293 void *X, const int incX); 294 void cblas_ztbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 295 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 296 const int N, const int K, const void *A, const int lda, 297 void *X, const int incX); 298 void cblas_ztpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 299 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 300 const int N, const void *Ap, void *X, const int incX); 301 void cblas_ztrsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 302 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 303 const int N, const void *A, const int lda, void *X, 304 const int incX); 305 void cblas_ztbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 306 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 307 const int N, const int K, const void *A, const int lda, 308 void *X, const int incX); 309 void cblas_ztpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 310 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 311 const int N, const void *Ap, void *X, const int incX); 312 313 314 /* 315 * Routines with S and D prefixes only 316 */ 317 void cblas_ssymv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 318 const int N, const float alpha, const float *A, 319 const int lda, const float *X, const int incX, 320 const float beta, float *Y, const int incY); 321 void cblas_ssbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 322 const int N, const int K, const float alpha, const float *A, 323 const int lda, const float *X, const int incX, 324 const float beta, float *Y, const int incY); 325 void cblas_sspmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 326 const int N, const float alpha, const float *Ap, 327 const float *X, const int incX, 328 const float beta, float *Y, const int incY); 329 void cblas_sger(const enum CBLAS_ORDER Order, const int M, const int N, 330 const float alpha, const float *X, const int incX, 331 const float *Y, const int incY, float *A, const int lda); 332 void cblas_ssyr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 333 const int N, const float alpha, const float *X, 334 const int incX, float *A, const int lda); 335 void cblas_sspr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 336 const int N, const float alpha, const float *X, 337 const int incX, float *Ap); 338 void cblas_ssyr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 339 const int N, const float alpha, const float *X, 340 const int incX, const float *Y, const int incY, float *A, 341 const int lda); 342 void cblas_sspr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 343 const int N, const float alpha, const float *X, 344 const int incX, const float *Y, const int incY, float *Ap); 345 346 void cblas_dsymv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 347 const int N, const double alpha, const double *A, 348 const int lda, const double *X, const int incX, 349 const double beta, double *Y, const int incY); 350 void cblas_dsbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 351 const int N, const int K, const double alpha, const double *A, 352 const int lda, const double *X, const int incX, 353 const double beta, double *Y, const int incY); 354 void cblas_dspmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 355 const int N, const double alpha, const double *Ap, 356 const double *X, const int incX, 357 const double beta, double *Y, const int incY); 358 void cblas_dger(const enum CBLAS_ORDER Order, const int M, const int N, 359 const double alpha, const double *X, const int incX, 360 const double *Y, const int incY, double *A, const int lda); 361 void cblas_dsyr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 362 const int N, const double alpha, const double *X, 363 const int incX, double *A, const int lda); 364 void cblas_dspr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 365 const int N, const double alpha, const double *X, 366 const int incX, double *Ap); 367 void cblas_dsyr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 368 const int N, const double alpha, const double *X, 369 const int incX, const double *Y, const int incY, double *A, 370 const int lda); 371 void cblas_dspr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 372 const int N, const double alpha, const double *X, 373 const int incX, const double *Y, const int incY, double *Ap); 374 375 376 /* 377 * Routines with C and Z prefixes only 378 */ 379 void cblas_chemv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 380 const int N, const void *alpha, const void *A, 381 const int lda, const void *X, const int incX, 382 const void *beta, void *Y, const int incY); 383 void cblas_chbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 384 const int N, const int K, const void *alpha, const void *A, 385 const int lda, const void *X, const int incX, 386 const void *beta, void *Y, const int incY); 387 void cblas_chpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 388 const int N, const void *alpha, const void *Ap, 389 const void *X, const int incX, 390 const void *beta, void *Y, const int incY); 391 void cblas_cgeru(const enum CBLAS_ORDER Order, const int M, const int N, 392 const void *alpha, const void *X, const int incX, 393 const void *Y, const int incY, void *A, const int lda); 394 void cblas_cgerc(const enum CBLAS_ORDER Order, const int M, const int N, 395 const void *alpha, const void *X, const int incX, 396 const void *Y, const int incY, void *A, const int lda); 397 void cblas_cher(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 398 const int N, const float alpha, const void *X, const int incX, 399 void *A, const int lda); 400 void cblas_chpr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 401 const int N, const float alpha, const void *X, 402 const int incX, void *Ap); 403 void cblas_cher2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N, 404 const void *alpha, const void *X, const int incX, 405 const void *Y, const int incY, void *A, const int lda); 406 void cblas_chpr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N, 407 const void *alpha, const void *X, const int incX, 408 const void *Y, const int incY, void *Ap); 409 410 void cblas_zhemv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 411 const int N, const void *alpha, const void *A, 412 const int lda, const void *X, const int incX, 413 const void *beta, void *Y, const int incY); 414 void cblas_zhbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 415 const int N, const int K, const void *alpha, const void *A, 416 const int lda, const void *X, const int incX, 417 const void *beta, void *Y, const int incY); 418 void cblas_zhpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 419 const int N, const void *alpha, const void *Ap, 420 const void *X, const int incX, 421 const void *beta, void *Y, const int incY); 422 void cblas_zgeru(const enum CBLAS_ORDER Order, const int M, const int N, 423 const void *alpha, const void *X, const int incX, 424 const void *Y, const int incY, void *A, const int lda); 425 void cblas_zgerc(const enum CBLAS_ORDER Order, const int M, const int N, 426 const void *alpha, const void *X, const int incX, 427 const void *Y, const int incY, void *A, const int lda); 428 void cblas_zher(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 429 const int N, const double alpha, const void *X, const int incX, 430 void *A, const int lda); 431 void cblas_zhpr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 432 const int N, const double alpha, const void *X, 433 const int incX, void *Ap); 434 void cblas_zher2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N, 435 const void *alpha, const void *X, const int incX, 436 const void *Y, const int incY, void *A, const int lda); 437 void cblas_zhpr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N, 438 const void *alpha, const void *X, const int incX, 439 const void *Y, const int incY, void *Ap); 440 441 /* 442 * =========================================================================== 443 * Prototypes for level 3 BLAS 444 * =========================================================================== 445 */ 446 447 /* 448 * Routines with standard 4 prefixes (S, D, C, Z) 449 */ 450 void cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, 451 const enum CBLAS_TRANSPOSE TransB, const int M, const int N, 452 const int K, const float alpha, const float *A, 453 const int lda, const float *B, const int ldb, 454 const float beta, float *C, const int ldc); 455 void cblas_ssymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 456 const enum CBLAS_UPLO Uplo, const int M, const int N, 457 const float alpha, const float *A, const int lda, 458 const float *B, const int ldb, const float beta, 459 float *C, const int ldc); 460 void cblas_ssyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 461 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 462 const float alpha, const float *A, const int lda, 463 const float beta, float *C, const int ldc); 464 void cblas_ssyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 465 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 466 const float alpha, const float *A, const int lda, 467 const float *B, const int ldb, const float beta, 468 float *C, const int ldc); 469 void cblas_strmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 470 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, 471 const enum CBLAS_DIAG Diag, const int M, const int N, 472 const float alpha, const float *A, const int lda, 473 float *B, const int ldb); 474 void cblas_strsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 475 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, 476 const enum CBLAS_DIAG Diag, const int M, const int N, 477 const float alpha, const float *A, const int lda, 478 float *B, const int ldb); 479 480 void cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, 481 const enum CBLAS_TRANSPOSE TransB, const int M, const int N, 482 const int K, const double alpha, const double *A, 483 const int lda, const double *B, const int ldb, 484 const double beta, double *C, const int ldc); 485 void cblas_dsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 486 const enum CBLAS_UPLO Uplo, const int M, const int N, 487 const double alpha, const double *A, const int lda, 488 const double *B, const int ldb, const double beta, 489 double *C, const int ldc); 490 void cblas_dsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 491 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 492 const double alpha, const double *A, const int lda, 493 const double beta, double *C, const int ldc); 494 void cblas_dsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 495 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 496 const double alpha, const double *A, const int lda, 497 const double *B, const int ldb, const double beta, 498 double *C, const int ldc); 499 void cblas_dtrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 500 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, 501 const enum CBLAS_DIAG Diag, const int M, const int N, 502 const double alpha, const double *A, const int lda, 503 double *B, const int ldb); 504 void cblas_dtrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 505 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, 506 const enum CBLAS_DIAG Diag, const int M, const int N, 507 const double alpha, const double *A, const int lda, 508 double *B, const int ldb); 509 510 void cblas_cgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, 511 const enum CBLAS_TRANSPOSE TransB, const int M, const int N, 512 const int K, const void *alpha, const void *A, 513 const int lda, const void *B, const int ldb, 514 const void *beta, void *C, const int ldc); 515 void cblas_csymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 516 const enum CBLAS_UPLO Uplo, const int M, const int N, 517 const void *alpha, const void *A, const int lda, 518 const void *B, const int ldb, const void *beta, 519 void *C, const int ldc); 520 void cblas_csyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 521 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 522 const void *alpha, const void *A, const int lda, 523 const void *beta, void *C, const int ldc); 524 void cblas_csyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 525 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 526 const void *alpha, const void *A, const int lda, 527 const void *B, const int ldb, const void *beta, 528 void *C, const int ldc); 529 void cblas_ctrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 530 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, 531 const enum CBLAS_DIAG Diag, const int M, const int N, 532 const void *alpha, const void *A, const int lda, 533 void *B, const int ldb); 534 void cblas_ctrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 535 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, 536 const enum CBLAS_DIAG Diag, const int M, const int N, 537 const void *alpha, const void *A, const int lda, 538 void *B, const int ldb); 539 540 void cblas_zgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, 541 const enum CBLAS_TRANSPOSE TransB, const int M, const int N, 542 const int K, const void *alpha, const void *A, 543 const int lda, const void *B, const int ldb, 544 const void *beta, void *C, const int ldc); 545 void cblas_zsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 546 const enum CBLAS_UPLO Uplo, const int M, const int N, 547 const void *alpha, const void *A, const int lda, 548 const void *B, const int ldb, const void *beta, 549 void *C, const int ldc); 550 void cblas_zsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 551 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 552 const void *alpha, const void *A, const int lda, 553 const void *beta, void *C, const int ldc); 554 void cblas_zsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 555 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 556 const void *alpha, const void *A, const int lda, 557 const void *B, const int ldb, const void *beta, 558 void *C, const int ldc); 559 void cblas_ztrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 560 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, 561 const enum CBLAS_DIAG Diag, const int M, const int N, 562 const void *alpha, const void *A, const int lda, 563 void *B, const int ldb); 564 void cblas_ztrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 565 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, 566 const enum CBLAS_DIAG Diag, const int M, const int N, 567 const void *alpha, const void *A, const int lda, 568 void *B, const int ldb); 569 570 571 /* 572 * Routines with prefixes C and Z only 573 */ 574 void cblas_chemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 575 const enum CBLAS_UPLO Uplo, const int M, const int N, 576 const void *alpha, const void *A, const int lda, 577 const void *B, const int ldb, const void *beta, 578 void *C, const int ldc); 579 void cblas_cherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 580 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 581 const float alpha, const void *A, const int lda, 582 const float beta, void *C, const int ldc); 583 void cblas_cher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 584 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 585 const void *alpha, const void *A, const int lda, 586 const void *B, const int ldb, const float beta, 587 void *C, const int ldc); 588 void cblas_zhemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 589 const enum CBLAS_UPLO Uplo, const int M, const int N, 590 const void *alpha, const void *A, const int lda, 591 const void *B, const int ldb, const void *beta, 592 void *C, const int ldc); 593 void cblas_zherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 594 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 595 const double alpha, const void *A, const int lda, 596 const double beta, void *C, const int ldc); 597 void cblas_zher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 598 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 599 const void *alpha, const void *A, const int lda, 600 const void *B, const int ldb, const double beta, 601 void *C, const int ldc); 602 603 int cblas_errprn(int ierr, int info, char *form, ...); 604 605 #endif /* end #ifdef CBLAS_ENUM_ONLY */ 606 #endif