gml_CBlas.h

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