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