1 #pragma once 2 3 /* 4 NOTE: This is a reduced version of cblas.h without some complex-type routines. 5 It was necessary to avoid C99 complex types (used by GOTOBLAS 6 implementation, 7 for instance) issues. Complex numbers are currently NOT supported in 8 tlin 9 by the way... 10 */ 11 12 #ifndef CBLAS_H 13 #define CBLAS_H 14 15 #define CBLAS_INDEX size_t 16 17 enum CBLAS_ORDER { CblasRowMajor = 101, CblasColMajor = 102 }; 18 enum CBLAS_TRANSPOSE { 19 CblasNoTrans = 111, 20 CblasTrans = 112, 21 CblasConjTrans = 113, 22 CblasConjNoTrans = 114 23 }; 24 enum CBLAS_UPLO { CblasUpper = 121, CblasLower = 122 }; 25 enum CBLAS_DIAG { CblasNonUnit = 131, CblasUnit = 132 }; 26 enum CBLAS_SIDE { CblasLeft = 141, CblasRight = 142 }; 27 28 float cblas_sdsdot(blasint n, float, float *x, blasint incx, float *y, 29 blasint incy); 30 double cblas_dsdot(blasint n, float *x, blasint incx, float *y, blasint incy); 31 float cblas_sdot(blasint n, float *x, blasint incx, float *y, blasint incy); 32 double cblas_ddot(blasint n, double *x, blasint incx, double *y, blasint incy); 33 34 float cblas_sasum(blasint n, float *x, blasint incx); 35 double cblas_dasum(blasint n, double *x, blasint incx); 36 float cblas_scasum(blasint n, float *x, blasint incx); 37 double cblas_dzasum(blasint n, double *x, blasint incx); 38 39 float cblas_snrm2(blasint N, float *X, blasint incX); 40 double cblas_dnrm2(blasint N, double *X, blasint incX); 41 float cblas_scnrm2(blasint N, float *X, blasint incX); 42 double cblas_dznrm2(blasint N, double *X, blasint incX); 43 44 CBLAS_INDEX cblas_isamax(blasint n, float *x, blasint incx); 45 CBLAS_INDEX cblas_idamax(blasint n, double *x, blasint incx); 46 CBLAS_INDEX cblas_icamax(blasint n, float *x, blasint incx); 47 CBLAS_INDEX cblas_izamax(blasint n, double *x, blasint incx); 48 49 void cblas_saxpy(blasint n, float, float *x, blasint incx, float *y, 50 blasint incy); 51 void cblas_daxpy(blasint n, double, double *x, blasint incx, double *y, 52 blasint incy); 53 void cblas_caxpy(blasint n, float *, float *x, blasint incx, float *y, 54 blasint incy); 55 void cblas_zaxpy(blasint n, double *, double *x, blasint incx, double *y, 56 blasint incy); 57 58 void cblas_scopy(blasint n, float *x, blasint incx, float *y, blasint incy); 59 void cblas_dcopy(blasint n, double *x, blasint incx, double *y, blasint incy); 60 void cblas_ccopy(blasint n, float *x, blasint incx, float *y, blasint incy); 61 void cblas_zcopy(blasint n, double *x, blasint incx, double *y, blasint incy); 62 63 void cblas_sswap(blasint n, float *x, blasint incx, float *y, blasint incy); 64 void cblas_dswap(blasint n, double *x, blasint incx, double *y, blasint incy); 65 void cblas_cswap(blasint n, float *x, blasint incx, float *y, blasint incy); 66 void cblas_zswap(blasint n, double *x, blasint incx, double *y, blasint incy); 67 68 void cblas_srot(blasint N, float *X, blasint incX, float *Y, blasint incY, 69 float c, float s); 70 void cblas_drot(blasint N, double *X, blasint incX, double *Y, blasint incY, 71 double c, double s); 72 73 void cblas_srotg(float *a, float *b, float *c, float *s); 74 void cblas_drotg(double *a, double *b, double *c, double *s); 75 76 void cblas_srotm(blasint N, float *X, blasint incX, float *Y, blasint incY, 77 float *P); 78 void cblas_drotm(blasint N, double *X, blasint incX, double *Y, blasint incY, 79 double *P); 80 81 void cblas_srotmg(float *d1, float *d2, float *b1, float b2, float *P); 82 void cblas_drotmg(double *d1, double *d2, double *b1, double b2, double *P); 83 84 void cblas_sscal(blasint N, float alpha, float *X, blasint incX); 85 void cblas_dscal(blasint N, double alpha, double *X, blasint incX); 86 void cblas_cscal(blasint N, float *alpha, float *X, blasint incX); 87 void cblas_zscal(blasint N, double *alpha, double *X, blasint incX); 88 void cblas_csscal(blasint N, float alpha, float *X, blasint incX); 89 void cblas_zdscal(blasint N, double alpha, double *X, blasint incX); 90 91 void cblas_sgemv(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE trans, blasint m, 92 blasint n, float alpha, float *a, blasint lda, float *x, 93 blasint incx, float beta, float *y, blasint incy); 94 void cblas_dgemv(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE trans, blasint m, 95 blasint n, double alpha, double *a, blasint lda, double *x, 96 blasint incx, double beta, double *y, blasint incy); 97 void cblas_cgemv(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE trans, blasint m, 98 blasint n, float *alpha, float *a, blasint lda, float *x, 99 blasint incx, float *beta, float *y, blasint incy); 100 void cblas_zgemv(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE trans, blasint m, 101 blasint n, double *alpha, double *a, blasint lda, double *x, 102 blasint incx, double *beta, double *y, blasint incy); 103 104 void cblas_sger(enum CBLAS_ORDER order, blasint M, blasint N, float alpha, 105 float *X, blasint incX, float *Y, blasint incY, float *A, 106 blasint lda); 107 void cblas_dger(enum CBLAS_ORDER order, blasint M, blasint N, double alpha, 108 double *X, blasint incX, double *Y, blasint incY, double *A, 109 blasint lda); 110 void cblas_cgeru(enum CBLAS_ORDER order, blasint M, blasint N, float *alpha, 111 float *X, blasint incX, float *Y, blasint incY, float *A, 112 blasint lda); 113 void cblas_cgerc(enum CBLAS_ORDER order, blasint M, blasint N, float *alpha, 114 float *X, blasint incX, float *Y, blasint incY, float *A, 115 blasint lda); 116 void cblas_zgeru(enum CBLAS_ORDER order, blasint M, blasint N, double *alpha, 117 double *X, blasint incX, double *Y, blasint incY, double *A, 118 blasint lda); 119 void cblas_zgerc(enum CBLAS_ORDER order, blasint M, blasint N, double *alpha, 120 double *X, blasint incX, double *Y, blasint incY, double *A, 121 blasint lda); 122 123 void cblas_strsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 124 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 125 float *A, blasint lda, float *X, blasint incX); 126 void cblas_dtrsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 127 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 128 double *A, blasint lda, double *X, blasint incX); 129 void cblas_ctrsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 130 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 131 float *A, blasint lda, float *X, blasint incX); 132 void cblas_ztrsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 133 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 134 double *A, blasint lda, double *X, blasint incX); 135 136 void cblas_strmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 137 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 138 float *A, blasint lda, float *X, blasint incX); 139 void cblas_dtrmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 140 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 141 double *A, blasint lda, double *X, blasint incX); 142 void cblas_ctrmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 143 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 144 float *A, blasint lda, float *X, blasint incX); 145 void cblas_ztrmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 146 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 147 double *A, blasint lda, double *X, blasint incX); 148 149 void cblas_ssyr(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 150 float alpha, float *X, blasint incX, float *A, blasint lda); 151 void cblas_dsyr(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 152 double alpha, double *X, blasint incX, double *A, blasint lda); 153 void cblas_cher(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 154 float alpha, float *X, blasint incX, float *A, blasint lda); 155 void cblas_zher(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 156 double alpha, double *X, blasint incX, double *A, blasint lda); 157 158 void cblas_ssyr2(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 159 float alpha, float *X, blasint incX, float *Y, blasint incY, 160 float *A, blasint lda); 161 void cblas_dsyr2(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 162 double alpha, double *X, blasint incX, double *Y, blasint incY, 163 double *A, blasint lda); 164 void cblas_cher2(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 165 float *alpha, float *X, blasint incX, float *Y, blasint incY, 166 float *A, blasint lda); 167 void cblas_zher2(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 168 double *alpha, double *X, blasint incX, double *Y, 169 blasint incY, double *A, blasint lda); 170 171 void cblas_sgbmv(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE TransA, blasint M, 172 blasint N, blasint KL, blasint KU, float alpha, float *A, 173 blasint lda, float *X, blasint incX, float beta, float *Y, 174 blasint incY); 175 void cblas_dgbmv(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE TransA, blasint M, 176 blasint N, blasint KL, blasint KU, double alpha, double *A, 177 blasint lda, double *X, blasint incX, double beta, double *Y, 178 blasint incY); 179 void cblas_cgbmv(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE TransA, blasint M, 180 blasint N, blasint KL, blasint KU, float *alpha, float *A, 181 blasint lda, float *X, blasint incX, float *beta, float *Y, 182 blasint incY); 183 void cblas_zgbmv(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE TransA, blasint M, 184 blasint N, blasint KL, blasint KU, double *alpha, double *A, 185 blasint lda, double *X, blasint incX, double *beta, double *Y, 186 blasint incY); 187 188 void cblas_ssbmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 189 blasint K, float alpha, float *A, blasint lda, float *X, 190 blasint incX, float beta, float *Y, blasint incY); 191 void cblas_dsbmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 192 blasint K, double alpha, double *A, blasint lda, double *X, 193 blasint incX, double beta, double *Y, blasint incY); 194 195 void cblas_stbmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 196 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 197 blasint K, float *A, blasint lda, float *X, blasint incX); 198 void cblas_dtbmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 199 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 200 blasint K, double *A, blasint lda, double *X, blasint incX); 201 void cblas_ctbmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 202 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 203 blasint K, float *A, blasint lda, float *X, blasint incX); 204 void cblas_ztbmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 205 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 206 blasint K, double *A, blasint lda, double *X, blasint incX); 207 208 void cblas_stbsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 209 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 210 blasint K, float *A, blasint lda, float *X, blasint incX); 211 void cblas_dtbsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 212 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 213 blasint K, double *A, blasint lda, double *X, blasint incX); 214 void cblas_ctbsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 215 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 216 blasint K, float *A, blasint lda, float *X, blasint incX); 217 void cblas_ztbsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 218 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 219 blasint K, double *A, blasint lda, double *X, blasint incX); 220 221 void cblas_stpmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 222 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 223 float *Ap, float *X, blasint incX); 224 void cblas_dtpmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 225 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 226 double *Ap, double *X, blasint incX); 227 void cblas_ctpmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 228 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 229 float *Ap, float *X, blasint incX); 230 void cblas_ztpmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 231 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 232 double *Ap, double *X, blasint incX); 233 234 void cblas_stpsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 235 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 236 float *Ap, float *X, blasint incX); 237 void cblas_dtpsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 238 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 239 double *Ap, double *X, blasint incX); 240 void cblas_ctpsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 241 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 242 float *Ap, float *X, blasint incX); 243 void cblas_ztpsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, 244 enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, 245 double *Ap, double *X, blasint incX); 246 247 void cblas_ssymv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 248 float alpha, float *A, blasint lda, float *X, blasint incX, 249 float beta, float *Y, blasint incY); 250 void cblas_dsymv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 251 double alpha, double *A, blasint lda, double *X, blasint incX, 252 double beta, double *Y, blasint incY); 253 void cblas_chemv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 254 float *alpha, float *A, blasint lda, float *X, blasint incX, 255 float *beta, float *Y, blasint incY); 256 void cblas_zhemv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 257 double *alpha, double *A, blasint lda, double *X, blasint incX, 258 double *beta, double *Y, blasint incY); 259 260 void cblas_sspmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 261 float alpha, float *Ap, float *X, blasint incX, float beta, 262 float *Y, blasint incY); 263 void cblas_dspmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 264 double alpha, double *Ap, double *X, blasint incX, double beta, 265 double *Y, blasint incY); 266 267 void cblas_sspr(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 268 float alpha, float *X, blasint incX, float *Ap); 269 void cblas_dspr(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 270 double alpha, double *X, blasint incX, double *Ap); 271 272 void cblas_chpr(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 273 float alpha, float *X, blasint incX, float *A); 274 void cblas_zhpr(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 275 double alpha, double *X, blasint incX, double *A); 276 277 void cblas_sspr2(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 278 float alpha, float *X, blasint incX, float *Y, blasint incY, 279 float *A); 280 void cblas_dspr2(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 281 double alpha, double *X, blasint incX, double *Y, blasint incY, 282 double *A); 283 void cblas_chpr2(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 284 float *alpha, float *X, blasint incX, float *Y, blasint incY, 285 float *Ap); 286 void cblas_zhpr2(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 287 double *alpha, double *X, blasint incX, double *Y, 288 blasint incY, double *Ap); 289 290 void cblas_chbmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 291 blasint K, float *alpha, float *A, blasint lda, float *X, 292 blasint incX, float *beta, float *Y, blasint incY); 293 void cblas_zhbmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 294 blasint K, double *alpha, double *A, blasint lda, double *X, 295 blasint incX, double *beta, double *Y, blasint incY); 296 297 void cblas_chpmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 298 float *alpha, float *Ap, float *X, blasint incX, float *beta, 299 float *Y, blasint incY); 300 void cblas_zhpmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, 301 double *alpha, double *Ap, double *X, blasint incX, 302 double *beta, double *Y, blasint incY); 303 304 void cblas_sgemm(enum CBLAS_ORDER Order, enum CBLAS_TRANSPOSE TransA, 305 enum CBLAS_TRANSPOSE TransB, blasint M, blasint N, blasint K, 306 float alpha, float *A, blasint lda, float *B, blasint ldb, 307 float beta, float *C, blasint ldc); 308 void cblas_dgemm(enum CBLAS_ORDER Order, enum CBLAS_TRANSPOSE TransA, 309 enum CBLAS_TRANSPOSE TransB, blasint M, blasint N, blasint K, 310 double alpha, double *A, blasint lda, double *B, blasint ldb, 311 double beta, double *C, blasint ldc); 312 void cblas_cgemm(enum CBLAS_ORDER Order, enum CBLAS_TRANSPOSE TransA, 313 enum CBLAS_TRANSPOSE TransB, blasint M, blasint N, blasint K, 314 float *alpha, float *A, blasint lda, float *B, blasint ldb, 315 float *beta, float *C, blasint ldc); 316 void cblas_zgemm(enum CBLAS_ORDER Order, enum CBLAS_TRANSPOSE TransA, 317 enum CBLAS_TRANSPOSE TransB, blasint M, blasint N, blasint K, 318 double *alpha, double *A, blasint lda, double *B, blasint ldb, 319 double *beta, double *C, blasint ldc); 320 321 void cblas_ssymm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, 322 enum CBLAS_UPLO Uplo, blasint M, blasint N, float alpha, 323 float *A, blasint lda, float *B, blasint ldb, float beta, 324 float *C, blasint ldc); 325 void cblas_dsymm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, 326 enum CBLAS_UPLO Uplo, blasint M, blasint N, double alpha, 327 double *A, blasint lda, double *B, blasint ldb, double beta, 328 double *C, blasint ldc); 329 void cblas_csymm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, 330 enum CBLAS_UPLO Uplo, blasint M, blasint N, float *alpha, 331 float *A, blasint lda, float *B, blasint ldb, float *beta, 332 float *C, blasint ldc); 333 void cblas_zsymm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, 334 enum CBLAS_UPLO Uplo, blasint M, blasint N, double *alpha, 335 double *A, blasint lda, double *B, blasint ldb, double *beta, 336 double *C, blasint ldc); 337 338 void cblas_ssyrk(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, 339 enum CBLAS_TRANSPOSE Trans, blasint N, blasint K, float alpha, 340 float *A, blasint lda, float beta, float *C, blasint ldc); 341 void cblas_dsyrk(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, 342 enum CBLAS_TRANSPOSE Trans, blasint N, blasint K, double alpha, 343 double *A, blasint lda, double beta, double *C, blasint ldc); 344 void cblas_csyrk(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, 345 enum CBLAS_TRANSPOSE Trans, blasint N, blasint K, float *alpha, 346 float *A, blasint lda, float *beta, float *C, blasint ldc); 347 void cblas_zsyrk(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, 348 enum CBLAS_TRANSPOSE Trans, blasint N, blasint K, 349 double *alpha, double *A, blasint lda, double *beta, double *C, 350 blasint ldc); 351 352 void cblas_ssyr2k(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, 353 enum CBLAS_TRANSPOSE Trans, blasint N, blasint K, float alpha, 354 float *A, blasint lda, float *B, blasint ldb, float beta, 355 float *C, blasint ldc); 356 void cblas_dsyr2k(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, 357 enum CBLAS_TRANSPOSE Trans, blasint N, blasint K, 358 double alpha, double *A, blasint lda, double *B, blasint ldb, 359 double beta, double *C, blasint ldc); 360 void cblas_csyr2k(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, 361 enum CBLAS_TRANSPOSE Trans, blasint N, blasint K, 362 float *alpha, float *A, blasint lda, float *B, blasint ldb, 363 float *beta, float *C, blasint ldc); 364 void cblas_zsyr2k(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, 365 enum CBLAS_TRANSPOSE Trans, blasint N, blasint K, 366 double *alpha, double *A, blasint lda, double *B, blasint ldb, 367 double *beta, double *C, blasint ldc); 368 369 void cblas_strmm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, 370 enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, 371 enum CBLAS_DIAG Diag, blasint M, blasint N, float alpha, 372 float *A, blasint lda, float *B, blasint ldb); 373 void cblas_dtrmm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, 374 enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, 375 enum CBLAS_DIAG Diag, blasint M, blasint N, double alpha, 376 double *A, blasint lda, double *B, blasint ldb); 377 void cblas_ctrmm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, 378 enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, 379 enum CBLAS_DIAG Diag, blasint M, blasint N, float *alpha, 380 float *A, blasint lda, float *B, blasint ldb); 381 void cblas_ztrmm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, 382 enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, 383 enum CBLAS_DIAG Diag, blasint M, blasint N, double *alpha, 384 double *A, blasint lda, double *B, blasint ldb); 385 386 void cblas_strsm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, 387 enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, 388 enum CBLAS_DIAG Diag, blasint M, blasint N, float alpha, 389 float *A, blasint lda, float *B, blasint ldb); 390 void cblas_dtrsm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, 391 enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, 392 enum CBLAS_DIAG Diag, blasint M, blasint N, double alpha, 393 double *A, blasint lda, double *B, blasint ldb); 394 void cblas_ctrsm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, 395 enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, 396 enum CBLAS_DIAG Diag, blasint M, blasint N, float *alpha, 397 float *A, blasint lda, float *B, blasint ldb); 398 void cblas_ztrsm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, 399 enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, 400 enum CBLAS_DIAG Diag, blasint M, blasint N, double *alpha, 401 double *A, blasint lda, double *B, blasint ldb); 402 403 void cblas_chemm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, 404 enum CBLAS_UPLO Uplo, blasint M, blasint N, float *alpha, 405 float *A, blasint lda, float *B, blasint ldb, float *beta, 406 float *C, blasint ldc); 407 void cblas_zhemm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, 408 enum CBLAS_UPLO Uplo, blasint M, blasint N, double *alpha, 409 double *A, blasint lda, double *B, blasint ldb, double *beta, 410 double *C, blasint ldc); 411 412 void cblas_cherk(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, 413 enum CBLAS_TRANSPOSE Trans, blasint N, blasint K, float alpha, 414 float *A, blasint lda, float beta, float *C, blasint ldc); 415 void cblas_zherk(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, 416 enum CBLAS_TRANSPOSE Trans, blasint N, blasint K, double alpha, 417 double *A, blasint lda, double beta, double *C, blasint ldc); 418 419 void cblas_cher2k(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, 420 enum CBLAS_TRANSPOSE Trans, blasint N, blasint K, 421 float *alpha, float *A, blasint lda, float *B, blasint ldb, 422 float beta, float *C, blasint ldc); 423 void cblas_zher2k(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, 424 enum CBLAS_TRANSPOSE Trans, blasint N, blasint K, 425 double *alpha, double *A, blasint lda, double *B, blasint ldb, 426 double beta, double *C, blasint ldc); 427 428 void cblas_xerbla(blasint p, char *rout, char *form, ...); 429 #endif 430