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