numpy
2.0.0
|
00001 /* 00002 * This header provides numpy a consistent interface to CBLAS code. It is needed 00003 * because not all providers of cblas provide cblas.h. For instance, MKL provides 00004 * mkl_cblas.h and also typedefs the CBLAS_XXX enums. 00005 */ 00006 #ifndef _NPY_CBLAS_H_ 00007 #define _NPY_CBLAS_H_ 00008 00009 #include <stddef.h> 00010 00011 /* Allow the use in C++ code. */ 00012 #ifdef __cplusplus 00013 extern "C" 00014 { 00015 #endif 00016 00017 /* 00018 * Enumerated and derived types 00019 */ 00020 #define CBLAS_INDEX size_t /* this may vary between platforms */ 00021 00022 enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102}; 00023 enum CBLAS_TRANSPOSE {CblasNoTrans=111, CblasTrans=112, CblasConjTrans=113}; 00024 enum CBLAS_UPLO {CblasUpper=121, CblasLower=122}; 00025 enum CBLAS_DIAG {CblasNonUnit=131, CblasUnit=132}; 00026 enum CBLAS_SIDE {CblasLeft=141, CblasRight=142}; 00027 00028 /* 00029 * =========================================================================== 00030 * Prototypes for level 1 BLAS functions (complex are recast as routines) 00031 * =========================================================================== 00032 */ 00033 float cblas_sdsdot(const int N, const float alpha, const float *X, 00034 const int incX, const float *Y, const int incY); 00035 double cblas_dsdot(const int N, const float *X, const int incX, const float *Y, 00036 const int incY); 00037 float cblas_sdot(const int N, const float *X, const int incX, 00038 const float *Y, const int incY); 00039 double cblas_ddot(const int N, const double *X, const int incX, 00040 const double *Y, const int incY); 00041 00042 /* 00043 * Functions having prefixes Z and C only 00044 */ 00045 void cblas_cdotu_sub(const int N, const void *X, const int incX, 00046 const void *Y, const int incY, void *dotu); 00047 void cblas_cdotc_sub(const int N, const void *X, const int incX, 00048 const void *Y, const int incY, void *dotc); 00049 00050 void cblas_zdotu_sub(const int N, const void *X, const int incX, 00051 const void *Y, const int incY, void *dotu); 00052 void cblas_zdotc_sub(const int N, const void *X, const int incX, 00053 const void *Y, const int incY, void *dotc); 00054 00055 00056 /* 00057 * Functions having prefixes S D SC DZ 00058 */ 00059 float cblas_snrm2(const int N, const float *X, const int incX); 00060 float cblas_sasum(const int N, const float *X, const int incX); 00061 00062 double cblas_dnrm2(const int N, const double *X, const int incX); 00063 double cblas_dasum(const int N, const double *X, const int incX); 00064 00065 float cblas_scnrm2(const int N, const void *X, const int incX); 00066 float cblas_scasum(const int N, const void *X, const int incX); 00067 00068 double cblas_dznrm2(const int N, const void *X, const int incX); 00069 double cblas_dzasum(const int N, const void *X, const int incX); 00070 00071 00072 /* 00073 * Functions having standard 4 prefixes (S D C Z) 00074 */ 00075 CBLAS_INDEX cblas_isamax(const int N, const float *X, const int incX); 00076 CBLAS_INDEX cblas_idamax(const int N, const double *X, const int incX); 00077 CBLAS_INDEX cblas_icamax(const int N, const void *X, const int incX); 00078 CBLAS_INDEX cblas_izamax(const int N, const void *X, const int incX); 00079 00080 /* 00081 * =========================================================================== 00082 * Prototypes for level 1 BLAS routines 00083 * =========================================================================== 00084 */ 00085 00086 /* 00087 * Routines with standard 4 prefixes (s, d, c, z) 00088 */ 00089 void cblas_sswap(const int N, float *X, const int incX, 00090 float *Y, const int incY); 00091 void cblas_scopy(const int N, const float *X, const int incX, 00092 float *Y, const int incY); 00093 void cblas_saxpy(const int N, const float alpha, const float *X, 00094 const int incX, float *Y, const int incY); 00095 00096 void cblas_dswap(const int N, double *X, const int incX, 00097 double *Y, const int incY); 00098 void cblas_dcopy(const int N, const double *X, const int incX, 00099 double *Y, const int incY); 00100 void cblas_daxpy(const int N, const double alpha, const double *X, 00101 const int incX, double *Y, const int incY); 00102 00103 void cblas_cswap(const int N, void *X, const int incX, 00104 void *Y, const int incY); 00105 void cblas_ccopy(const int N, const void *X, const int incX, 00106 void *Y, const int incY); 00107 void cblas_caxpy(const int N, const void *alpha, const void *X, 00108 const int incX, void *Y, const int incY); 00109 00110 void cblas_zswap(const int N, void *X, const int incX, 00111 void *Y, const int incY); 00112 void cblas_zcopy(const int N, const void *X, const int incX, 00113 void *Y, const int incY); 00114 void cblas_zaxpy(const int N, const void *alpha, const void *X, 00115 const int incX, void *Y, const int incY); 00116 00117 00118 /* 00119 * Routines with S and D prefix only 00120 */ 00121 void cblas_srotg(float *a, float *b, float *c, float *s); 00122 void cblas_srotmg(float *d1, float *d2, float *b1, const float b2, float *P); 00123 void cblas_srot(const int N, float *X, const int incX, 00124 float *Y, const int incY, const float c, const float s); 00125 void cblas_srotm(const int N, float *X, const int incX, 00126 float *Y, const int incY, const float *P); 00127 00128 void cblas_drotg(double *a, double *b, double *c, double *s); 00129 void cblas_drotmg(double *d1, double *d2, double *b1, const double b2, double *P); 00130 void cblas_drot(const int N, double *X, const int incX, 00131 double *Y, const int incY, const double c, const double s); 00132 void cblas_drotm(const int N, double *X, const int incX, 00133 double *Y, const int incY, const double *P); 00134 00135 00136 /* 00137 * Routines with S D C Z CS and ZD prefixes 00138 */ 00139 void cblas_sscal(const int N, const float alpha, float *X, const int incX); 00140 void cblas_dscal(const int N, const double alpha, double *X, const int incX); 00141 void cblas_cscal(const int N, const void *alpha, void *X, const int incX); 00142 void cblas_zscal(const int N, const void *alpha, void *X, const int incX); 00143 void cblas_csscal(const int N, const float alpha, void *X, const int incX); 00144 void cblas_zdscal(const int N, const double alpha, void *X, const int incX); 00145 00146 /* 00147 * =========================================================================== 00148 * Prototypes for level 2 BLAS 00149 * =========================================================================== 00150 */ 00151 00152 /* 00153 * Routines with standard 4 prefixes (S, D, C, Z) 00154 */ 00155 void cblas_sgemv(const enum CBLAS_ORDER order, 00156 const enum CBLAS_TRANSPOSE TransA, const int M, const int N, 00157 const float alpha, const float *A, const int lda, 00158 const float *X, const int incX, const float beta, 00159 float *Y, const int incY); 00160 void cblas_sgbmv(const enum CBLAS_ORDER order, 00161 const enum CBLAS_TRANSPOSE TransA, const int M, const int N, 00162 const int KL, const int KU, const float alpha, 00163 const float *A, const int lda, const float *X, 00164 const int incX, const float beta, float *Y, const int incY); 00165 void cblas_strmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00166 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00167 const int N, const float *A, const int lda, 00168 float *X, const int incX); 00169 void cblas_stbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00170 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00171 const int N, const int K, const float *A, const int lda, 00172 float *X, const int incX); 00173 void cblas_stpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00174 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00175 const int N, const float *Ap, float *X, const int incX); 00176 void cblas_strsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00177 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00178 const int N, const float *A, const int lda, float *X, 00179 const int incX); 00180 void cblas_stbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00181 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00182 const int N, const int K, const float *A, const int lda, 00183 float *X, const int incX); 00184 void cblas_stpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00185 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00186 const int N, const float *Ap, float *X, const int incX); 00187 00188 void cblas_dgemv(const enum CBLAS_ORDER order, 00189 const enum CBLAS_TRANSPOSE TransA, const int M, const int N, 00190 const double alpha, const double *A, const int lda, 00191 const double *X, const int incX, const double beta, 00192 double *Y, const int incY); 00193 void cblas_dgbmv(const enum CBLAS_ORDER order, 00194 const enum CBLAS_TRANSPOSE TransA, const int M, const int N, 00195 const int KL, const int KU, const double alpha, 00196 const double *A, const int lda, const double *X, 00197 const int incX, const double beta, double *Y, const int incY); 00198 void cblas_dtrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00199 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00200 const int N, const double *A, const int lda, 00201 double *X, const int incX); 00202 void cblas_dtbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00203 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00204 const int N, const int K, const double *A, const int lda, 00205 double *X, const int incX); 00206 void cblas_dtpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00207 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00208 const int N, const double *Ap, double *X, const int incX); 00209 void cblas_dtrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00210 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00211 const int N, const double *A, const int lda, double *X, 00212 const int incX); 00213 void cblas_dtbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00214 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00215 const int N, const int K, const double *A, const int lda, 00216 double *X, const int incX); 00217 void cblas_dtpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00218 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00219 const int N, const double *Ap, double *X, const int incX); 00220 00221 void cblas_cgemv(const enum CBLAS_ORDER order, 00222 const enum CBLAS_TRANSPOSE TransA, const int M, const int N, 00223 const void *alpha, const void *A, const int lda, 00224 const void *X, const int incX, const void *beta, 00225 void *Y, const int incY); 00226 void cblas_cgbmv(const enum CBLAS_ORDER order, 00227 const enum CBLAS_TRANSPOSE TransA, const int M, const int N, 00228 const int KL, const int KU, const void *alpha, 00229 const void *A, const int lda, const void *X, 00230 const int incX, const void *beta, void *Y, const int incY); 00231 void cblas_ctrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00232 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00233 const int N, const void *A, const int lda, 00234 void *X, const int incX); 00235 void cblas_ctbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00236 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00237 const int N, const int K, const void *A, const int lda, 00238 void *X, const int incX); 00239 void cblas_ctpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00240 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00241 const int N, const void *Ap, void *X, const int incX); 00242 void cblas_ctrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00243 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00244 const int N, const void *A, const int lda, void *X, 00245 const int incX); 00246 void cblas_ctbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00247 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00248 const int N, const int K, const void *A, const int lda, 00249 void *X, const int incX); 00250 void cblas_ctpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00251 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00252 const int N, const void *Ap, void *X, const int incX); 00253 00254 void cblas_zgemv(const enum CBLAS_ORDER order, 00255 const enum CBLAS_TRANSPOSE TransA, const int M, const int N, 00256 const void *alpha, const void *A, const int lda, 00257 const void *X, const int incX, const void *beta, 00258 void *Y, const int incY); 00259 void cblas_zgbmv(const enum CBLAS_ORDER order, 00260 const enum CBLAS_TRANSPOSE TransA, const int M, const int N, 00261 const int KL, const int KU, const void *alpha, 00262 const void *A, const int lda, const void *X, 00263 const int incX, const void *beta, void *Y, const int incY); 00264 void cblas_ztrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00265 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00266 const int N, const void *A, const int lda, 00267 void *X, const int incX); 00268 void cblas_ztbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00269 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00270 const int N, const int K, const void *A, const int lda, 00271 void *X, const int incX); 00272 void cblas_ztpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00273 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00274 const int N, const void *Ap, void *X, const int incX); 00275 void cblas_ztrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00276 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00277 const int N, const void *A, const int lda, void *X, 00278 const int incX); 00279 void cblas_ztbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00280 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00281 const int N, const int K, const void *A, const int lda, 00282 void *X, const int incX); 00283 void cblas_ztpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00284 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, 00285 const int N, const void *Ap, void *X, const int incX); 00286 00287 00288 /* 00289 * Routines with S and D prefixes only 00290 */ 00291 void cblas_ssymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00292 const int N, const float alpha, const float *A, 00293 const int lda, const float *X, const int incX, 00294 const float beta, float *Y, const int incY); 00295 void cblas_ssbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00296 const int N, const int K, const float alpha, const float *A, 00297 const int lda, const float *X, const int incX, 00298 const float beta, float *Y, const int incY); 00299 void cblas_sspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00300 const int N, const float alpha, const float *Ap, 00301 const float *X, const int incX, 00302 const float beta, float *Y, const int incY); 00303 void cblas_sger(const enum CBLAS_ORDER order, const int M, const int N, 00304 const float alpha, const float *X, const int incX, 00305 const float *Y, const int incY, float *A, const int lda); 00306 void cblas_ssyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00307 const int N, const float alpha, const float *X, 00308 const int incX, float *A, const int lda); 00309 void cblas_sspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00310 const int N, const float alpha, const float *X, 00311 const int incX, float *Ap); 00312 void cblas_ssyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00313 const int N, const float alpha, const float *X, 00314 const int incX, const float *Y, const int incY, float *A, 00315 const int lda); 00316 void cblas_sspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00317 const int N, const float alpha, const float *X, 00318 const int incX, const float *Y, const int incY, float *A); 00319 00320 void cblas_dsymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00321 const int N, const double alpha, const double *A, 00322 const int lda, const double *X, const int incX, 00323 const double beta, double *Y, const int incY); 00324 void cblas_dsbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00325 const int N, const int K, const double alpha, const double *A, 00326 const int lda, const double *X, const int incX, 00327 const double beta, double *Y, const int incY); 00328 void cblas_dspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00329 const int N, const double alpha, const double *Ap, 00330 const double *X, const int incX, 00331 const double beta, double *Y, const int incY); 00332 void cblas_dger(const enum CBLAS_ORDER order, const int M, const int N, 00333 const double alpha, const double *X, const int incX, 00334 const double *Y, const int incY, double *A, const int lda); 00335 void cblas_dsyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00336 const int N, const double alpha, const double *X, 00337 const int incX, double *A, const int lda); 00338 void cblas_dspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00339 const int N, const double alpha, const double *X, 00340 const int incX, double *Ap); 00341 void cblas_dsyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00342 const int N, const double alpha, const double *X, 00343 const int incX, const double *Y, const int incY, double *A, 00344 const int lda); 00345 void cblas_dspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00346 const int N, const double alpha, const double *X, 00347 const int incX, const double *Y, const int incY, double *A); 00348 00349 00350 /* 00351 * Routines with C and Z prefixes only 00352 */ 00353 void cblas_chemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00354 const int N, const void *alpha, const void *A, 00355 const int lda, const void *X, const int incX, 00356 const void *beta, void *Y, const int incY); 00357 void cblas_chbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00358 const int N, const int K, const void *alpha, const void *A, 00359 const int lda, const void *X, const int incX, 00360 const void *beta, void *Y, const int incY); 00361 void cblas_chpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00362 const int N, const void *alpha, const void *Ap, 00363 const void *X, const int incX, 00364 const void *beta, void *Y, const int incY); 00365 void cblas_cgeru(const enum CBLAS_ORDER order, const int M, const int N, 00366 const void *alpha, const void *X, const int incX, 00367 const void *Y, const int incY, void *A, const int lda); 00368 void cblas_cgerc(const enum CBLAS_ORDER order, const int M, const int N, 00369 const void *alpha, const void *X, const int incX, 00370 const void *Y, const int incY, void *A, const int lda); 00371 void cblas_cher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00372 const int N, const float alpha, const void *X, const int incX, 00373 void *A, const int lda); 00374 void cblas_chpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00375 const int N, const float alpha, const void *X, 00376 const int incX, void *A); 00377 void cblas_cher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N, 00378 const void *alpha, const void *X, const int incX, 00379 const void *Y, const int incY, void *A, const int lda); 00380 void cblas_chpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N, 00381 const void *alpha, const void *X, const int incX, 00382 const void *Y, const int incY, void *Ap); 00383 00384 void cblas_zhemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00385 const int N, const void *alpha, const void *A, 00386 const int lda, const void *X, const int incX, 00387 const void *beta, void *Y, const int incY); 00388 void cblas_zhbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00389 const int N, const int K, const void *alpha, const void *A, 00390 const int lda, const void *X, const int incX, 00391 const void *beta, void *Y, const int incY); 00392 void cblas_zhpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00393 const int N, const void *alpha, const void *Ap, 00394 const void *X, const int incX, 00395 const void *beta, void *Y, const int incY); 00396 void cblas_zgeru(const enum CBLAS_ORDER order, const int M, const int N, 00397 const void *alpha, const void *X, const int incX, 00398 const void *Y, const int incY, void *A, const int lda); 00399 void cblas_zgerc(const enum CBLAS_ORDER order, const int M, const int N, 00400 const void *alpha, const void *X, const int incX, 00401 const void *Y, const int incY, void *A, const int lda); 00402 void cblas_zher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00403 const int N, const double alpha, const void *X, const int incX, 00404 void *A, const int lda); 00405 void cblas_zhpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, 00406 const int N, const double alpha, const void *X, 00407 const int incX, void *A); 00408 void cblas_zher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N, 00409 const void *alpha, const void *X, const int incX, 00410 const void *Y, const int incY, void *A, const int lda); 00411 void cblas_zhpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N, 00412 const void *alpha, const void *X, const int incX, 00413 const void *Y, const int incY, void *Ap); 00414 00415 /* 00416 * =========================================================================== 00417 * Prototypes for level 3 BLAS 00418 * =========================================================================== 00419 */ 00420 00421 /* 00422 * Routines with standard 4 prefixes (S, D, C, Z) 00423 */ 00424 void cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, 00425 const enum CBLAS_TRANSPOSE TransB, const int M, const int N, 00426 const int K, const float alpha, const float *A, 00427 const int lda, const float *B, const int ldb, 00428 const float beta, float *C, const int ldc); 00429 void cblas_ssymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 00430 const enum CBLAS_UPLO Uplo, const int M, const int N, 00431 const float alpha, const float *A, const int lda, 00432 const float *B, const int ldb, const float beta, 00433 float *C, const int ldc); 00434 void cblas_ssyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 00435 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 00436 const float alpha, const float *A, const int lda, 00437 const float beta, float *C, const int ldc); 00438 void cblas_ssyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 00439 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 00440 const float alpha, const float *A, const int lda, 00441 const float *B, const int ldb, const float beta, 00442 float *C, const int ldc); 00443 void cblas_strmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 00444 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, 00445 const enum CBLAS_DIAG Diag, const int M, const int N, 00446 const float alpha, const float *A, const int lda, 00447 float *B, const int ldb); 00448 void cblas_strsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 00449 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, 00450 const enum CBLAS_DIAG Diag, const int M, const int N, 00451 const float alpha, const float *A, const int lda, 00452 float *B, const int ldb); 00453 00454 void cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, 00455 const enum CBLAS_TRANSPOSE TransB, const int M, const int N, 00456 const int K, const double alpha, const double *A, 00457 const int lda, const double *B, const int ldb, 00458 const double beta, double *C, const int ldc); 00459 void cblas_dsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 00460 const enum CBLAS_UPLO Uplo, const int M, const int N, 00461 const double alpha, const double *A, const int lda, 00462 const double *B, const int ldb, const double beta, 00463 double *C, const int ldc); 00464 void cblas_dsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 00465 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 00466 const double alpha, const double *A, const int lda, 00467 const double beta, double *C, const int ldc); 00468 void cblas_dsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 00469 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 00470 const double alpha, const double *A, const int lda, 00471 const double *B, const int ldb, const double beta, 00472 double *C, const int ldc); 00473 void cblas_dtrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 00474 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, 00475 const enum CBLAS_DIAG Diag, const int M, const int N, 00476 const double alpha, const double *A, const int lda, 00477 double *B, const int ldb); 00478 void cblas_dtrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 00479 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, 00480 const enum CBLAS_DIAG Diag, const int M, const int N, 00481 const double alpha, const double *A, const int lda, 00482 double *B, const int ldb); 00483 00484 void cblas_cgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, 00485 const enum CBLAS_TRANSPOSE TransB, const int M, const int N, 00486 const int K, const void *alpha, const void *A, 00487 const int lda, const void *B, const int ldb, 00488 const void *beta, void *C, const int ldc); 00489 void cblas_csymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 00490 const enum CBLAS_UPLO Uplo, const int M, const int N, 00491 const void *alpha, const void *A, const int lda, 00492 const void *B, const int ldb, const void *beta, 00493 void *C, const int ldc); 00494 void cblas_csyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 00495 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 00496 const void *alpha, const void *A, const int lda, 00497 const void *beta, void *C, const int ldc); 00498 void cblas_csyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 00499 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 00500 const void *alpha, const void *A, const int lda, 00501 const void *B, const int ldb, const void *beta, 00502 void *C, const int ldc); 00503 void cblas_ctrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 00504 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, 00505 const enum CBLAS_DIAG Diag, const int M, const int N, 00506 const void *alpha, const void *A, const int lda, 00507 void *B, const int ldb); 00508 void cblas_ctrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 00509 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, 00510 const enum CBLAS_DIAG Diag, const int M, const int N, 00511 const void *alpha, const void *A, const int lda, 00512 void *B, const int ldb); 00513 00514 void cblas_zgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, 00515 const enum CBLAS_TRANSPOSE TransB, const int M, const int N, 00516 const int K, const void *alpha, const void *A, 00517 const int lda, const void *B, const int ldb, 00518 const void *beta, void *C, const int ldc); 00519 void cblas_zsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 00520 const enum CBLAS_UPLO Uplo, const int M, const int N, 00521 const void *alpha, const void *A, const int lda, 00522 const void *B, const int ldb, const void *beta, 00523 void *C, const int ldc); 00524 void cblas_zsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 00525 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 00526 const void *alpha, const void *A, const int lda, 00527 const void *beta, void *C, const int ldc); 00528 void cblas_zsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 00529 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 00530 const void *alpha, const void *A, const int lda, 00531 const void *B, const int ldb, const void *beta, 00532 void *C, const int ldc); 00533 void cblas_ztrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 00534 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, 00535 const enum CBLAS_DIAG Diag, const int M, const int N, 00536 const void *alpha, const void *A, const int lda, 00537 void *B, const int ldb); 00538 void cblas_ztrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 00539 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, 00540 const enum CBLAS_DIAG Diag, const int M, const int N, 00541 const void *alpha, const void *A, const int lda, 00542 void *B, const int ldb); 00543 00544 00545 /* 00546 * Routines with prefixes C and Z only 00547 */ 00548 void cblas_chemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 00549 const enum CBLAS_UPLO Uplo, const int M, const int N, 00550 const void *alpha, const void *A, const int lda, 00551 const void *B, const int ldb, const void *beta, 00552 void *C, const int ldc); 00553 void cblas_cherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 00554 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 00555 const float alpha, const void *A, const int lda, 00556 const float beta, void *C, const int ldc); 00557 void cblas_cher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 00558 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 00559 const void *alpha, const void *A, const int lda, 00560 const void *B, const int ldb, const float beta, 00561 void *C, const int ldc); 00562 00563 void cblas_zhemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, 00564 const enum CBLAS_UPLO Uplo, const int M, const int N, 00565 const void *alpha, const void *A, const int lda, 00566 const void *B, const int ldb, const void *beta, 00567 void *C, const int ldc); 00568 void cblas_zherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 00569 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 00570 const double alpha, const void *A, const int lda, 00571 const double beta, void *C, const int ldc); 00572 void cblas_zher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, 00573 const enum CBLAS_TRANSPOSE Trans, const int N, const int K, 00574 const void *alpha, const void *A, const int lda, 00575 const void *B, const int ldb, const double beta, 00576 void *C, const int ldc); 00577 00578 void cblas_xerbla(int p, const char *rout, const char *form, ...); 00579 00580 #ifdef __cplusplus 00581 } 00582 #endif 00583 00584 #endif