PLASMA 2.3.1

/home/mathieu/ICL/Plasma/svn/trunk/tools/plasma_2.4.0/include/cblas.h

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