annotate include/cblas.h @ 209:ccd2019190bf msvc

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