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