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