annotate ext/cblas/include/cblas.h @ 206:335be766a54d

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