FLA_blas_c_prototypes.h

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

Generated on Mon Jul 6 05:45:48 2009 for libflame by  doxygen 1.5.9