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