Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

cblas.h

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------------*
00002  *                                   IT++                                    *
00003  *---------------------------------------------------------------------------*
00004  * Copyright (c) 1995-2002 by Tony Ottosson, Thomas Eriksson, Pål Frenger,   *
00005  * Tobias Ringström, and Jonas Samuelsson.                                   *
00006  *                                                                           *
00007  * Permission to use, copy, modify, and distribute this software and its     *
00008  * documentation under the terms of the GNU General Public License is hereby *
00009  * granted. No representations are made about the suitability of this        *
00010  * software for any purpose. It is provided "as is" without expressed or     *
00011  * implied warranty. See the GNU General Public License for more details.    *
00012  *---------------------------------------------------------------------------*/
00016 //  SPUC - Signal processing using C++ - A DSP library
00017 
00033 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00034 
00035 #ifndef CBLAS_H
00036 
00037 #ifndef CBLAS_ENUM_DEFINED_H
00038    #define CBLAS_ENUM_DEFINED_H
00039    enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102 };
00040    enum CBLAS_TRANSPOSE {CblasNoTrans=111, CblasTrans=112, CblasConjTrans=113,
00041                          AtlasConj=114};
00042    enum CBLAS_UPLO  {CblasUpper=121, CblasLower=122};
00043    enum CBLAS_DIAG  {CblasNonUnit=131, CblasUnit=132};
00044    enum CBLAS_SIDE  {CblasLeft=141, CblasRight=142};
00045 #endif
00046 
00047 
00048 #ifndef CBLAS_ENUM_ONLY
00049 #define CBLAS_H
00050 #define CBLAS_INDEX int
00051 
00052 #ifdef __cplusplus
00053 extern "C" {            /* Added by Tony Ottosson, 2001-10-10 */
00054 #endif /* __cplusplus */
00055 
00056 
00057 int cblas_errprn(int ierr, int info, char *form, ...);
00058 
00059 /*
00060  * ===========================================================================
00061  * Prototypes for level 1 BLAS functions (complex are recast as routines)
00062  * ===========================================================================
00063  */
00064 float  cblas_sdsdot(const int N, const float alpha, const float *X,
00065                     const int incX, const float *Y, const int incY);
00066 double cblas_dsdot(const int N, const float *X, const int incX, const float *Y,
00067                    const int incY);
00068 float  cblas_sdot(const int N, const float  *X, const int incX,
00069                   const float  *Y, const int incY);
00070 double cblas_ddot(const int N, const double *X, const int incX,
00071                   const double *Y, const int incY);
00072 /*
00073  * Functions having prefixes Z and C only
00074  */
00075 void   cblas_cdotu_sub(const int N, const void *X, const int incX,
00076                        const void *Y, const int incY, void *dotu);
00077 void   cblas_cdotc_sub(const int N, const void *X, const int incX,
00078                        const void *Y, const int incY, void *dotc);
00079 
00080 void   cblas_zdotu_sub(const int N, const void *X, const int incX,
00081                        const void *Y, const int incY, void *dotu);
00082 void   cblas_zdotc_sub(const int N, const void *X, const int incX,
00083                        const void *Y, const int incY, void *dotc);
00084 
00085 
00086 /*
00087  * Functions having prefixes S D SC DZ
00088  */
00089 float  cblas_snrm2(const int N, const float *X, const int incX);
00090 float  cblas_sasum(const int N, const float *X, const int incX);
00091 
00092 double cblas_dnrm2(const int N, const double *X, const int incX);
00093 double cblas_dasum(const int N, const double *X, const int incX);
00094 
00095 float  cblas_scnrm2(const int N, const void *X, const int incX);
00096 float  cblas_scasum(const int N, const void *X, const int incX);
00097 
00098 double cblas_dznrm2(const int N, const void *X, const int incX);
00099 double cblas_dzasum(const int N, const void *X, const int incX);
00100 
00101 
00102 /*
00103  * Functions having standard 4 prefixes (S D C Z)
00104  */
00105 CBLAS_INDEX cblas_isamax(const int N, const float  *X, const int incX);
00106 CBLAS_INDEX cblas_idamax(const int N, const double *X, const int incX);
00107 CBLAS_INDEX cblas_icamax(const int N, const void   *X, const int incX);
00108 CBLAS_INDEX cblas_izamax(const int N, const void   *X, const int incX);
00109 
00110 /*
00111  * ===========================================================================
00112  * Prototypes for level 1 BLAS routines
00113  * ===========================================================================
00114  */
00115 
00116 /*
00117  * Routines with standard 4 prefixes (s, d, c, z)
00118  */
00119 void cblas_sswap(const int N, float *X, const int incX,
00120                  float *Y, const int incY);
00121 void cblas_scopy(const int N, const float *X, const int incX,
00122                  float *Y, const int incY);
00123 void cblas_saxpy(const int N, const float alpha, const float *X,
00124                  const int incX, float *Y, const int incY);
00125 void catlas_saxpby(const int N, const float alpha, const float *X,
00126                   const int incX, const float beta, float *Y, const int incY);
00127 void catlas_sset
00128    (const int N, const float alpha, float *X, const int incX);
00129 
00130 void cblas_dswap(const int N, double *X, const int incX,
00131                  double *Y, const int incY);
00132 void cblas_dcopy(const int N, const double *X, const int incX,
00133                  double *Y, const int incY);
00134 void cblas_daxpy(const int N, const double alpha, const double *X,
00135                  const int incX, double *Y, const int incY);
00136 void catlas_daxpby(const int N, const double alpha, const double *X,
00137                   const int incX, const double beta, double *Y, const int incY);
00138 void catlas_dset
00139    (const int N, const double alpha, double *X, const int incX);
00140 
00141 void cblas_cswap(const int N, void *X, const int incX,
00142                  void *Y, const int incY);
00143 void cblas_ccopy(const int N, const void *X, const int incX,
00144                  void *Y, const int incY);
00145 void cblas_caxpy(const int N, const void *alpha, const void *X,
00146                  const int incX, void *Y, const int incY);
00147 void catlas_caxpby(const int N, const void *alpha, const void *X,
00148                   const int incX, const void *beta, void *Y, const int incY);
00149 void catlas_cset
00150    (const int N, const void *alpha, void *X, const int incX);
00151 
00152 void cblas_zswap(const int N, void *X, const int incX,
00153                  void *Y, const int incY);
00154 void cblas_zcopy(const int N, const void *X, const int incX,
00155                  void *Y, const int incY);
00156 void cblas_zaxpy(const int N, const void *alpha, const void *X,
00157                  const int incX, void *Y, const int incY);
00158 void catlas_zaxpby(const int N, const void *alpha, const void *X,
00159                   const int incX, const void *beta, void *Y, const int incY);
00160 void catlas_zset
00161    (const int N, const void *alpha, void *X, const int incX);
00162 
00163 
00164 /*
00165  * Routines with S and D prefix only
00166  */
00167 void cblas_srotg(float *a, float *b, float *c, float *s);
00168 void cblas_srotmg(float *d1, float *d2, float *b1, const float b2, float *P);
00169 void cblas_srot(const int N, float *X, const int incX,
00170                 float *Y, const int incY, const float c, const float s);
00171 void cblas_srotm(const int N, float *X, const int incX,
00172                 float *Y, const int incY, const float *P);
00173 
00174 void cblas_drotg(double *a, double *b, double *c, double *s);
00175 void cblas_drotmg(double *d1, double *d2, double *b1, const double b2, double *P);
00176 void cblas_drot(const int N, double *X, const int incX,
00177                 double *Y, const int incY, const double c, const double s);
00178 void cblas_drotm(const int N, double *X, const int incX,
00179                 double *Y, const int incY, const double *P);
00180 
00181 
00182 /*
00183  * Routines with S D C Z CS and ZD prefixes
00184  */
00185 void cblas_sscal(const int N, const float alpha, float *X, const int incX);
00186 void cblas_dscal(const int N, const double alpha, double *X, const int incX);
00187 void cblas_cscal(const int N, const void *alpha, void *X, const int incX);
00188 void cblas_zscal(const int N, const void *alpha, void *X, const int incX);
00189 void cblas_csscal(const int N, const float alpha, void *X, const int incX);
00190 void cblas_zdscal(const int N, const double alpha, void *X, const int incX);
00191 
00192 /*
00193  * Extra reference routines provided by ATLAS, but not mandated by the standard
00194  */
00195 void cblas_crotg(void *a, void *b, void *c, void *s);
00196 void cblas_zrotg(void *a, void *b, void *c, void *s);
00197 void cblas_csrot(const int N, void *X, const int incX, void *Y, const int incY,
00198                  const float c, const float s);
00199 void cblas_zdrot(const int N, void *X, const int incX, void *Y, const int incY,
00200                  const double c, const double s);
00201 
00202 /*
00203  * ===========================================================================
00204  * Prototypes for level 2 BLAS
00205  * ===========================================================================
00206  */
00207 
00208 /*
00209  * Routines with standard 4 prefixes (S, D, C, Z)
00210  */
00211 void cblas_sgemv(const enum CBLAS_ORDER Order,
00212                  const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
00213                  const float alpha, const float *A, const int lda,
00214                  const float *X, const int incX, const float beta,
00215                  float *Y, const int incY);
00216 void cblas_sgbmv(const enum CBLAS_ORDER Order,
00217                  const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
00218                  const int KL, const int KU, const float alpha,
00219                  const float *A, const int lda, const float *X,
00220                  const int incX, const float beta, float *Y, const int incY);
00221 void cblas_strmv(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 float *A, const int lda,
00224                  float *X, const int incX);
00225 void cblas_stbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00226                  const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
00227                  const int N, const int K, const float *A, const int lda,
00228                  float *X, const int incX);
00229 void cblas_stpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00230                  const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
00231                  const int N, const float *Ap, float *X, const int incX);
00232 void cblas_strsv(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 float *A, const int lda, float *X,
00235                  const int incX);
00236 void cblas_stbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00237                  const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
00238                  const int N, const int K, const float *A, const int lda,
00239                  float *X, const int incX);
00240 void cblas_stpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00241                  const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
00242                  const int N, const float *Ap, float *X, const int incX);
00243 
00244 void cblas_dgemv(const enum CBLAS_ORDER Order,
00245                  const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
00246                  const double alpha, const double *A, const int lda,
00247                  const double *X, const int incX, const double beta,
00248                  double *Y, const int incY);
00249 void cblas_dgbmv(const enum CBLAS_ORDER Order,
00250                  const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
00251                  const int KL, const int KU, const double alpha,
00252                  const double *A, const int lda, const double *X,
00253                  const int incX, const double beta, double *Y, const int incY);
00254 void cblas_dtrmv(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 double *A, const int lda,
00257                  double *X, const int incX);
00258 void cblas_dtbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00259                  const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
00260                  const int N, const int K, const double *A, const int lda,
00261                  double *X, const int incX);
00262 void cblas_dtpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00263                  const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
00264                  const int N, const double *Ap, double *X, const int incX);
00265 void cblas_dtrsv(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 double *A, const int lda, double *X,
00268                  const int incX);
00269 void cblas_dtbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00270                  const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
00271                  const int N, const int K, const double *A, const int lda,
00272                  double *X, const int incX);
00273 void cblas_dtpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00274                  const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
00275                  const int N, const double *Ap, double *X, const int incX);
00276 
00277 void cblas_cgemv(const enum CBLAS_ORDER Order,
00278                  const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
00279                  const void *alpha, const void *A, const int lda,
00280                  const void *X, const int incX, const void *beta,
00281                  void *Y, const int incY);
00282 void cblas_cgbmv(const enum CBLAS_ORDER Order,
00283                  const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
00284                  const int KL, const int KU, const void *alpha,
00285                  const void *A, const int lda, const void *X,
00286                  const int incX, const void *beta, void *Y, const int incY);
00287 void cblas_ctrmv(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 *A, const int lda,
00290                  void *X, const int incX);
00291 void cblas_ctbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00292                  const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
00293                  const int N, const int K, const void *A, const int lda,
00294                  void *X, const int incX);
00295 void cblas_ctpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00296                  const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
00297                  const int N, const void *Ap, void *X, const int incX);
00298 void cblas_ctrsv(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 *A, const int lda, void *X,
00301                  const int incX);
00302 void cblas_ctbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00303                  const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
00304                  const int N, const int K, const void *A, const int lda,
00305                  void *X, const int incX);
00306 void cblas_ctpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00307                  const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
00308                  const int N, const void *Ap, void *X, const int incX);
00309 
00310 void cblas_zgemv(const enum CBLAS_ORDER Order,
00311                  const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
00312                  const void *alpha, const void *A, const int lda,
00313                  const void *X, const int incX, const void *beta,
00314                  void *Y, const int incY);
00315 void cblas_zgbmv(const enum CBLAS_ORDER Order,
00316                  const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
00317                  const int KL, const int KU, const void *alpha,
00318                  const void *A, const int lda, const void *X,
00319                  const int incX, const void *beta, void *Y, const int incY);
00320 void cblas_ztrmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00321                  const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
00322                  const int N, const void *A, const int lda,
00323                  void *X, const int incX);
00324 void cblas_ztbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00325                  const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
00326                  const int N, const int K, const void *A, const int lda,
00327                  void *X, const int incX);
00328 void cblas_ztpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00329                  const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
00330                  const int N, const void *Ap, void *X, const int incX);
00331 void cblas_ztrsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00332                  const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
00333                  const int N, const void *A, const int lda, void *X,
00334                  const int incX);
00335 void cblas_ztbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00336                  const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
00337                  const int N, const int K, const void *A, const int lda,
00338                  void *X, const int incX);
00339 void cblas_ztpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00340                  const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
00341                  const int N, const void *Ap, void *X, const int incX);
00342 
00343 
00344 /*
00345  * Routines with S and D prefixes only
00346  */
00347 void cblas_ssymv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00348                  const int N, const float alpha, const float *A,
00349                  const int lda, const float *X, const int incX,
00350                  const float beta, float *Y, const int incY);
00351 void cblas_ssbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00352                  const int N, const int K, const float alpha, const float *A,
00353                  const int lda, const float *X, const int incX,
00354                  const float beta, float *Y, const int incY);
00355 void cblas_sspmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00356                  const int N, const float alpha, const float *Ap,
00357                  const float *X, const int incX,
00358                  const float beta, float *Y, const int incY);
00359 void cblas_sger(const enum CBLAS_ORDER Order, const int M, const int N,
00360                 const float alpha, const float *X, const int incX,
00361                 const float *Y, const int incY, float *A, const int lda);
00362 void cblas_ssyr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00363                 const int N, const float alpha, const float *X,
00364                 const int incX, float *A, const int lda);
00365 void cblas_sspr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00366                 const int N, const float alpha, const float *X,
00367                 const int incX, float *Ap);
00368 void cblas_ssyr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00369                 const int N, const float alpha, const float *X,
00370                 const int incX, const float *Y, const int incY, float *A,
00371                 const int lda);
00372 void cblas_sspr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00373                 const int N, const float alpha, const float *X,
00374                 const int incX, const float *Y, const int incY, float *A);
00375 
00376 void cblas_dsymv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00377                  const int N, const double alpha, const double *A,
00378                  const int lda, const double *X, const int incX,
00379                  const double beta, double *Y, const int incY);
00380 void cblas_dsbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00381                  const int N, const int K, const double alpha, const double *A,
00382                  const int lda, const double *X, const int incX,
00383                  const double beta, double *Y, const int incY);
00384 void cblas_dspmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00385                  const int N, const double alpha, const double *Ap,
00386                  const double *X, const int incX,
00387                  const double beta, double *Y, const int incY);
00388 void cblas_dger(const enum CBLAS_ORDER Order, const int M, const int N,
00389                 const double alpha, const double *X, const int incX,
00390                 const double *Y, const int incY, double *A, const int lda);
00391 void cblas_dsyr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00392                 const int N, const double alpha, const double *X,
00393                 const int incX, double *A, const int lda);
00394 void cblas_dspr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00395                 const int N, const double alpha, const double *X,
00396                 const int incX, double *Ap);
00397 void cblas_dsyr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00398                 const int N, const double alpha, const double *X,
00399                 const int incX, const double *Y, const int incY, double *A,
00400                 const int lda);
00401 void cblas_dspr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00402                 const int N, const double alpha, const double *X,
00403                 const int incX, const double *Y, const int incY, double *A);
00404 
00405 
00406 /*
00407  * Routines with C and Z prefixes only
00408  */
00409 void cblas_chemv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00410                  const int N, const void *alpha, const void *A,
00411                  const int lda, const void *X, const int incX,
00412                  const void *beta, void *Y, const int incY);
00413 void cblas_chbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00414                  const int N, const int K, const void *alpha, const void *A,
00415                  const int lda, const void *X, const int incX,
00416                  const void *beta, void *Y, const int incY);
00417 void cblas_chpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00418                  const int N, const void *alpha, const void *Ap,
00419                  const void *X, const int incX,
00420                  const void *beta, void *Y, const int incY);
00421 void cblas_cgeru(const enum CBLAS_ORDER Order, const int M, const int N,
00422                  const void *alpha, const void *X, const int incX,
00423                  const void *Y, const int incY, void *A, const int lda);
00424 void cblas_cgerc(const enum CBLAS_ORDER Order, const int M, const int N,
00425                  const void *alpha, const void *X, const int incX,
00426                  const void *Y, const int incY, void *A, const int lda);
00427 void cblas_cher(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00428                 const int N, const float alpha, const void *X, const int incX,
00429                 void *A, const int lda);
00430 void cblas_chpr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00431                 const int N, const float alpha, const void *X,
00432                 const int incX, void *A);
00433 void cblas_cher2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N,
00434                 const void *alpha, const void *X, const int incX,
00435                 const void *Y, const int incY, void *A, const int lda);
00436 void cblas_chpr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N,
00437                 const void *alpha, const void *X, const int incX,
00438                 const void *Y, const int incY, void *Ap);
00439 
00440 void cblas_zhemv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00441                  const int N, const void *alpha, const void *A,
00442                  const int lda, const void *X, const int incX,
00443                  const void *beta, void *Y, const int incY);
00444 void cblas_zhbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00445                  const int N, const int K, const void *alpha, const void *A,
00446                  const int lda, const void *X, const int incX,
00447                  const void *beta, void *Y, const int incY);
00448 void cblas_zhpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00449                  const int N, const void *alpha, const void *Ap,
00450                  const void *X, const int incX,
00451                  const void *beta, void *Y, const int incY);
00452 void cblas_zgeru(const enum CBLAS_ORDER Order, const int M, const int N,
00453                  const void *alpha, const void *X, const int incX,
00454                  const void *Y, const int incY, void *A, const int lda);
00455 void cblas_zgerc(const enum CBLAS_ORDER Order, const int M, const int N,
00456                  const void *alpha, const void *X, const int incX,
00457                  const void *Y, const int incY, void *A, const int lda);
00458 void cblas_zher(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00459                 const int N, const double alpha, const void *X, const int incX,
00460                 void *A, const int lda);
00461 void cblas_zhpr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00462                 const int N, const double alpha, const void *X,
00463                 const int incX, void *A);
00464 void cblas_zher2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N,
00465                 const void *alpha, const void *X, const int incX,
00466                 const void *Y, const int incY, void *A, const int lda);
00467 void cblas_zhpr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N,
00468                 const void *alpha, const void *X, const int incX,
00469                 const void *Y, const int incY, void *Ap);
00470 
00471 /*
00472  * ===========================================================================
00473  * Prototypes for level 3 BLAS
00474  * ===========================================================================
00475  */
00476 
00477 /*
00478  * Routines with standard 4 prefixes (S, D, C, Z)
00479  */
00480 void cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
00481                  const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
00482                  const int K, const float alpha, const float *A,
00483                  const int lda, const float *B, const int ldb,
00484                  const float beta, float *C, const int ldc);
00485 void cblas_ssymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
00486                  const enum CBLAS_UPLO Uplo, const int M, const int N,
00487                  const float alpha, const float *A, const int lda,
00488                  const float *B, const int ldb, const float beta,
00489                  float *C, const int ldc);
00490 void cblas_ssyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00491                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
00492                  const float alpha, const float *A, const int lda,
00493                  const float beta, float *C, const int ldc);
00494 void cblas_ssyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00495                   const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
00496                   const float alpha, const float *A, const int lda,
00497                   const float *B, const int ldb, const float beta,
00498                   float *C, const int ldc);
00499 void cblas_strmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
00500                  const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
00501                  const enum CBLAS_DIAG Diag, const int M, const int N,
00502                  const float alpha, const float *A, const int lda,
00503                  float *B, const int ldb);
00504 void cblas_strsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
00505                  const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
00506                  const enum CBLAS_DIAG Diag, const int M, const int N,
00507                  const float alpha, const float *A, const int lda,
00508                  float *B, const int ldb);
00509 
00510 void cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
00511                  const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
00512                  const int K, const double alpha, const double *A,
00513                  const int lda, const double *B, const int ldb,
00514                  const double beta, double *C, const int ldc);
00515 void cblas_dsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
00516                  const enum CBLAS_UPLO Uplo, const int M, const int N,
00517                  const double alpha, const double *A, const int lda,
00518                  const double *B, const int ldb, const double beta,
00519                  double *C, const int ldc);
00520 void cblas_dsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00521                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
00522                  const double alpha, const double *A, const int lda,
00523                  const double beta, double *C, const int ldc);
00524 void cblas_dsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00525                   const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
00526                   const double alpha, const double *A, const int lda,
00527                   const double *B, const int ldb, const double beta,
00528                   double *C, const int ldc);
00529 void cblas_dtrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
00530                  const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
00531                  const enum CBLAS_DIAG Diag, const int M, const int N,
00532                  const double alpha, const double *A, const int lda,
00533                  double *B, const int ldb);
00534 void cblas_dtrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
00535                  const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
00536                  const enum CBLAS_DIAG Diag, const int M, const int N,
00537                  const double alpha, const double *A, const int lda,
00538                  double *B, const int ldb);
00539 
00540 void cblas_cgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
00541                  const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
00542                  const int K, const void *alpha, const void *A,
00543                  const int lda, const void *B, const int ldb,
00544                  const void *beta, void *C, const int ldc);
00545 void cblas_csymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
00546                  const enum CBLAS_UPLO Uplo, const int M, const int N,
00547                  const void *alpha, const void *A, const int lda,
00548                  const void *B, const int ldb, const void *beta,
00549                  void *C, const int ldc);
00550 void cblas_csyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00551                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
00552                  const void *alpha, const void *A, const int lda,
00553                  const void *beta, void *C, const int ldc);
00554 void cblas_csyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00555                   const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
00556                   const void *alpha, const void *A, const int lda,
00557                   const void *B, const int ldb, const void *beta,
00558                   void *C, const int ldc);
00559 void cblas_ctrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
00560                  const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
00561                  const enum CBLAS_DIAG Diag, const int M, const int N,
00562                  const void *alpha, const void *A, const int lda,
00563                  void *B, const int ldb);
00564 void cblas_ctrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
00565                  const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
00566                  const enum CBLAS_DIAG Diag, const int M, const int N,
00567                  const void *alpha, const void *A, const int lda,
00568                  void *B, const int ldb);
00569 
00570 void cblas_zgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
00571                  const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
00572                  const int K, const void *alpha, const void *A,
00573                  const int lda, const void *B, const int ldb,
00574                  const void *beta, void *C, const int ldc);
00575 void cblas_zsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
00576                  const enum CBLAS_UPLO Uplo, const int M, const int N,
00577                  const void *alpha, const void *A, const int lda,
00578                  const void *B, const int ldb, const void *beta,
00579                  void *C, const int ldc);
00580 void cblas_zsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00581                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
00582                  const void *alpha, const void *A, const int lda,
00583                  const void *beta, void *C, const int ldc);
00584 void cblas_zsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00585                   const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
00586                   const void *alpha, const void *A, const int lda,
00587                   const void *B, const int ldb, const void *beta,
00588                   void *C, const int ldc);
00589 void cblas_ztrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
00590                  const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
00591                  const enum CBLAS_DIAG Diag, const int M, const int N,
00592                  const void *alpha, const void *A, const int lda,
00593                  void *B, const int ldb);
00594 void cblas_ztrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
00595                  const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
00596                  const enum CBLAS_DIAG Diag, const int M, const int N,
00597                  const void *alpha, const void *A, const int lda,
00598                  void *B, const int ldb);
00599 
00600 
00601 /*
00602  * Routines with prefixes C and Z only
00603  */
00604 void cblas_chemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
00605                  const enum CBLAS_UPLO Uplo, const int M, const int N,
00606                  const void *alpha, const void *A, const int lda,
00607                  const void *B, const int ldb, const void *beta,
00608                  void *C, const int ldc);
00609 void cblas_cherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00610                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
00611                  const float alpha, const void *A, const int lda,
00612                  const float beta, void *C, const int ldc);
00613 void cblas_cher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00614                   const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
00615                   const void *alpha, const void *A, const int lda,
00616                   const void *B, const int ldb, const float beta,
00617                   void *C, const int ldc);
00618 void cblas_zhemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
00619                  const enum CBLAS_UPLO Uplo, const int M, const int N,
00620                  const void *alpha, const void *A, const int lda,
00621                  const void *B, const int ldb, const void *beta,
00622                  void *C, const int ldc);
00623 void cblas_zherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00624                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
00625                  const double alpha, const void *A, const int lda,
00626                  const double beta, void *C, const int ldc);
00627 void cblas_zher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
00628                   const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
00629                   const void *alpha, const void *A, const int lda,
00630                   const void *B, const int ldb, const double beta,
00631                   void *C, const int ldc);
00632 
00633 int cblas_errprn(int ierr, int info, char *form, ...);
00634 
00635 #ifdef __cplusplus
00636 }
00637 #endif    /* __cplusplus */
00638 
00639 #endif  /* end #ifdef CBLAS_ENUM_ONLY */
00640 #endif
00641 
00642 #endif /* DOXYGEN_SHOULD_SKIP_THIS */

Generated on Fri Sep 16 11:02:28 2005 for spuc by  doxygen 1.4.4