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