00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef _TEUCHOS_BLAS_WRAPPERS_HPP_
00033 #define _TEUCHOS_BLAS_WRAPPERS_HPP_
00034
00035 #include "Teuchos_ConfigDefs.hpp"
00036
00041
00042
00043 #if defined(CRAY_T3X) || defined(INTEL_CXML) || defined(INTEL_MKL)
00044
00045
00046 #if defined(CRAY_T3X)
00047
00048 #include <fortran.h>
00049 #define PREFIX
00050 #define Teuchos_fcd fcd
00051
00052 #define DROTG_F77 F77_FUNC(srotg,SROTG)
00053 #define DROT_F77 F77_FUNC(srot,SROT)
00054 #define DASUM_F77 F77_FUNC(sasum,SASUM)
00055 #define DAXPY_F77 F77_FUNC(saxpy,SAXPY)
00056 #define DCOPY_F77 F77_FUNC(scopy,SCOPY)
00057 #define DDOT_F77 F77_FUNC(sdot,SDOT)
00058 #define DNRM2_F77 F77_FUNC(snrm2,SNRM2)
00059 #define DSCAL_F77 F77_FUNC(sscal,SSCAL)
00060 #define IDAMAX_F77 F77_FUNC(isamax,ISAMAX)
00061 #define DGEMV_F77 F77_FUNC(sgemv,SGEMV)
00062 #define DGER_F77 F77_FUNC(sger,SGER)
00063 #define DTRMV_F77 F77_FUNC(strmv,STRMV)
00064 #define DGEMM_F77 F77_FUNC(sgemm,SGEMM)
00065 #define DSYMM_F77 F77_FUNC(ssymm,SSYMM)
00066 #define DTRMM_F77 F77_FUNC(strmm,STRMM)
00067 #define DTRSM_F77 F77_FUNC(strsm,STRSM)
00068
00069 #ifdef HAVE_TEUCHOS_COMPLEX
00070
00071 #define ZROTG_F77 F77_FUNC(crotg,CROTG)
00072 #define ZROT_F77 F77_FUNC(crot,CROT)
00073 #define ZASUM_F77 F77_FUNC(scasum,SCASUM)
00074 #define ZAXPY_F77 F77_FUNC(caxpy,CAXPY)
00075 #define ZCOPY_F77 F77_FUNC(ccopy,CCOPY)
00076 #define ZDOT_F77 F77_FUNC(cdotc,CDOTC)
00077 #define ZNRM2_F77 F77_FUNC(scnrm2,SCNRM2)
00078 #define ZSCAL_F77 F77_FUNC(cscal,CSCAL)
00079 #define IZAMAX_F77 F77_FUNC(icamax,ICAMAX)
00080 #define ZGEMV_F77 F77_FUNC(cgemv,CGEMV)
00081 #define ZGER_F77 F77_FUNC(cgerc,CGERC)
00082 #define ZTRMV_F77 F77_FUNC(ctrmv,CTRMV)
00083 #define ZGEMM_F77 F77_FUNC(cgemm,CGEMM)
00084 #define ZSYMM_F77 F77_FUNC(csymm,CSYMM)
00085 #define ZTRMM_F77 F77_FUNC(ctrmm,CTRMM)
00086 #define ZTRSM_F77 F77_FUNC(ctrsm,CTRSM)
00087
00088 #endif
00089
00090 #elif defined(INTEL_CXML)
00091
00092 #define PREFIX __stdcall
00093 #define Teuchos_fcd const char *, unsigned int
00094
00095 #define DROTG_F77 F77_FUNC(drotg,DROTG)
00096 #define DROT_F77 F77_FUNC(drot,DROT)
00097 #define DASUM_F77 F77_FUNC(dasum,DASUM)
00098 #define DAXPY_F77 F77_FUNC(daxpy,DAXPY)
00099 #define DCOPY_F77 F77_FUNC(dcopy,DCOPY)
00100 #define DDOT_F77 F77_FUNC(ddot,DDOT)
00101 #define DNRM2_F77 F77_FUNC(dnrm2,DNRM2)
00102 #define DSCAL_F77 F77_FUNC(dscal,DSCAL)
00103 #define IDAMAX_F77 F77_FUNC(idamax,IDAMAX)
00104 #define DGEMV_F77 F77_FUNC(dgemv,DGEMV)
00105 #define DGER_F77 F77_FUNC(dger,DGER)
00106 #define DTRMV_F77 F77_FUNC(dtrmv,DTRMV)
00107 #define DGEMM_F77 F77_FUNC(dgemm,DGEMM)
00108 #define DSYMM_F77 F77_FUNC(dsymm,DSYMM)
00109 #define DTRMM_F77 F77_FUNC(dtrmm,DTRMM)
00110 #define DTRSM_F77 F77_FUNC(dtrsm,DTRSM)
00111
00112 #ifdef HAVE_TEUCHOS_COMPLEX
00113
00114 #define ZROTG_F77 F77_FUNC(zrotg,ZROTG)
00115 #define ZROT_F77 F77_FUNC(zrot,ZROT)
00116 #define ZASUM_F77 F77_FUNC(dzasum,DZASUM)
00117 #define ZAXPY_F77 F77_FUNC(zaxpy,ZAXPY)
00118 #define ZCOPY_F77 F77_FUNC(zcopy,ZCOPY)
00119 #define ZDOT_F77 F77_FUNC(zdotc,ZDOTC)
00120 #define ZNRM2_F77 F77_FUNC(dznrm2,DZNRM2)
00121 #define ZSCAL_F77 F77_FUNC(zscal,ZSCAL)
00122 #define IZAMAX_F77 F77_FUNC(izamax,IZAMAX)
00123 #define ZGEMV_F77 F77_FUNC(zgemv,ZGEMV)
00124 #define ZGER_F77 F77_FUNC(zgerc,ZGERC)
00125 #define ZTRMV_F77 F77_FUNC(ztrmv,ZTRMV)
00126 #define ZGEMM_F77 F77_FUNC(zgemm,ZGEMM)
00127 #define ZSYMM_F77 F77_FUNC(zsymm,ZSYMM)
00128 #define ZTRMM_F77 F77_FUNC(ztrmm,ZTRMM)
00129 #define ZTRSM_F77 F77_FUNC(ztrsm,ZTRSM)
00130
00131 #endif
00132
00133 #elif defined(INTEL_MKL)
00134
00135 #define PREFIX
00136 #define Teuchos_fcd const char *
00137
00138 #define DROTG_F77 F77_FUNC(drotg,DROTG)
00139 #define DROT_F77 F77_FUNC(drot,DROT)
00140 #define DASUM_F77 F77_FUNC(dasum,DASUM)
00141 #define DAXPY_F77 F77_FUNC(daxpy,DAXPY)
00142 #define DCOPY_F77 F77_FUNC(dcopy,DCOPY)
00143 #define DDOT_F77 F77_FUNC(ddot,DDOT)
00144 #define DNRM2_F77 F77_FUNC(dnrm2,DNRM2)
00145 #define DSCAL_F77 F77_FUNC(dscal,DSCAL)
00146 #define IDAMAX_F77 F77_FUNC(idamax,IDAMAX)
00147 #define DGEMV_F77 F77_FUNC(dgemv,DGEMV)
00148 #define DGER_F77 F77_FUNC(dger,DGER)
00149 #define DTRMV_F77 F77_FUNC(dtrmv,DTRMV)
00150 #define DGEMM_F77 F77_FUNC(dgemm,DGEMM)
00151 #define DSYMM_F77 F77_FUNC(dsymm,DSYMM)
00152 #define DTRMM_F77 F77_FUNC(dtrmm,DTRMM)
00153 #define DTRSM_F77 F77_FUNC(dtrsm,DTRSM)
00154
00155 #ifdef HAVE_TEUCHOS_COMPLEX
00156
00157 #define ZROTG_F77 F77_FUNC(zrotg,ZROTG)
00158 #define ZROT_F77 F77_FUNC(zrot,ZROT)
00159 #define ZASUM_F77 F77_FUNC(dzasum,DZASUM)
00160 #define ZAXPY_F77 F77_FUNC(zaxpy,ZAXPY)
00161 #define ZCOPY_F77 F77_FUNC(zcopy,ZCOPY)
00162 #define ZDOT_F77 F77_FUNC(zdotc,ZDOTC)
00163 #define ZNRM2_F77 F77_FUNC(dznrm2,DZNRM2)
00164 #define ZSCAL_F77 F77_FUNC(zscal,ZSCAL)
00165 #define IZAMAX_F77 F77_FUNC(izamax,IZAMAX)
00166 #define ZGEMV_F77 F77_FUNC(zgemv,ZGEMV)
00167 #define ZGER_F77 F77_FUNC(zgerc,ZGERC)
00168 #define ZTRMV_F77 F77_FUNC(ztrmv,ZTRMV)
00169 #define ZGEMM_F77 F77_FUNC(zgemm,ZGEMM)
00170 #define ZSYMM_F77 F77_FUNC(zsymm,ZSYMM)
00171 #define ZTRMM_F77 F77_FUNC(ztrmm,ZTRMM)
00172 #define ZTRSM_F77 F77_FUNC(ztrsm,ZTRSM)
00173
00174 #endif
00175
00176 #endif
00177
00178
00179
00180
00181
00182 #ifdef F77_FUNC
00183 #undef F77_FUNC
00184 #endif
00185
00186
00187 #define F77_FUNC(lcase,UCASE) PREFIX UCASE
00188
00189 #else
00190
00191 #define PREFIX
00192 #define Teuchos_fcd const char *
00193
00194
00195
00196 #ifndef HAVE_CONFIG_H
00197
00198 #ifdef F77_FUNC
00199 #undef F77_FUNC
00200 #endif
00201
00202 #ifdef TRILINOS_HAVE_NO_FORTRAN_UNDERSCORE
00203 #define F77_FUNC(lcase,UCASE) lcase
00204 #else
00205 #define F77_FUNC(lcase,UCASE) lcase ## _
00206 #endif
00207
00208 #endif
00209
00210 #define DROTG_F77 F77_FUNC(drotg,DROTG)
00211 #define DROT_F77 F77_FUNC(drot,DROT)
00212 #define DASUM_F77 F77_FUNC(dasum,DASUM)
00213 #define DAXPY_F77 F77_FUNC(daxpy,DAXPY)
00214 #define DCOPY_F77 F77_FUNC(dcopy,DCOPY)
00215 #define DDOT_F77 F77_FUNC(ddot,DDOT)
00216 #define DNRM2_F77 F77_FUNC(dnrm2,DNRM2)
00217 #define DSCAL_F77 F77_FUNC(dscal,DSCAL)
00218 #define IDAMAX_F77 F77_FUNC(idamax,IDAMAX)
00219 #define DGEMV_F77 F77_FUNC(dgemv,DGEMV)
00220 #define DGER_F77 F77_FUNC(dger,DGER)
00221 #define DTRMV_F77 F77_FUNC(dtrmv,DTRMV)
00222 #define DGEMM_F77 F77_FUNC(dgemm,DGEMM)
00223 #define DSYMM_F77 F77_FUNC(dsymm,DSYMM)
00224 #define DTRMM_F77 F77_FUNC(dtrmm,DTRMM)
00225 #define DTRSM_F77 F77_FUNC(dtrsm,DTRSM)
00226
00227 #ifdef HAVE_TEUCHOS_COMPLEX
00228
00229 #define ZROTG_F77 F77_FUNC(zrotg,ZROTG)
00230 #define ZROT_F77 F77_FUNC(zrot,ZROT)
00231 #define ZASUM_F77 F77_FUNC(dzasum,DZASUM)
00232 #define ZAXPY_F77 F77_FUNC(zaxpy,ZAXPY)
00233 #define ZCOPY_F77 F77_FUNC(zcopy,ZCOPY)
00234 #define ZDOT_F77 F77_FUNC(zdotc,ZDOTC)
00235 #define ZNRM2_F77 F77_FUNC(dznrm2,DZNRM2)
00236 #define ZSCAL_F77 F77_FUNC(zscal,ZSCAL)
00237 #define IZAMAX_F77 F77_FUNC(izamax,IZAMAX)
00238 #define ZGEMV_F77 F77_FUNC(zgemv,ZGEMV)
00239 #define ZGER_F77 F77_FUNC(zgerc,ZGERC)
00240 #define ZTRMV_F77 F77_FUNC(ztrmv,ZTRMV)
00241 #define ZGEMM_F77 F77_FUNC(zgemm,ZGEMM)
00242 #define ZSYMM_F77 F77_FUNC(zsymm,ZSYMM)
00243 #define ZTRMM_F77 F77_FUNC(ztrmm,ZTRMM)
00244 #define ZTRSM_F77 F77_FUNC(ztrsm,ZTRSM)
00245
00246 #endif
00247
00248 #endif
00249
00250
00251
00252
00253 #define SROTG_F77 F77_FUNC(srotg,SROTG)
00254 #define SROT_F77 F77_FUNC(srot,SROT)
00255 #define SSCAL_F77 F77_FUNC(sscal,SSCAL)
00256 #define SCOPY_F77 F77_FUNC(scopy,SCOPY)
00257 #define SAXPY_F77 F77_FUNC(saxpy,SAXPY)
00258 #define SDOT_F77 F77_FUNC(sdot,SDOT)
00259 #define SNRM2_F77 F77_FUNC(snrm2,SNRM2)
00260 #define SASUM_F77 F77_FUNC(sasum,SASUM)
00261 #define ISAMAX_F77 F77_FUNC(isamax,ISAMAX)
00262
00263 #define SGEMV_F77 F77_FUNC(sgemv,SGEMV)
00264 #define SGER_F77 F77_FUNC(sger,SGER)
00265 #define STRMV_F77 F77_FUNC(strmv,STRMV)
00266 #define SGEMM_F77 F77_FUNC(sgemm,SGEMM)
00267 #define SSYMM_F77 F77_FUNC(ssymm,SSYMM)
00268 #define STRMM_F77 F77_FUNC(strmm,STRMM)
00269 #define STRSM_F77 F77_FUNC(strsm,STRSM)
00270
00271 #ifdef HAVE_TEUCHOS_COMPLEX
00272
00273 #define CROTG_F77 F77_FUNC(crotg,CROTG)
00274 #define CROT_F77 F77_FUNC(crot,CROT)
00275 #define CASUM_F77 F77_FUNC(scasum,SCASUM)
00276 #define CAXPY_F77 F77_FUNC(caxpy,CAXPY)
00277 #define CCOPY_F77 F77_FUNC(ccopy,CCOPY)
00278 #define CDOT_F77 F77_FUNC(cdotc,CDOTC)
00279 #define CNRM2_F77 F77_FUNC(scnrm2,SCNRM2)
00280 #define CSCAL_F77 F77_FUNC(cscal,CSCAL)
00281 #define ICAMAX_F77 F77_FUNC(icamax,ICAMAX)
00282 #define CGEMV_F77 F77_FUNC(cgemv,CGEMV)
00283 #define CGER_F77 F77_FUNC(cgerc,CGERC)
00284 #define CTRMV_F77 F77_FUNC(ctrmv,CTRMV)
00285 #define CGEMM_F77 F77_FUNC(cgemm,CGEMM)
00286 #define CSYMM_F77 F77_FUNC(csymm,CSYMM)
00287 #define CTRMM_F77 F77_FUNC(ctrmm,CTRMM)
00288 #define CTRSM_F77 F77_FUNC(ctrsm,CTRSM)
00289
00290 #endif
00291
00292 #ifdef __cplusplus
00293 extern "C" {
00294 #endif
00295
00296
00297
00298 void PREFIX DROTG_F77(double* da, double* db, double* c, double* s);
00299 void PREFIX DROT_F77(const int* n, double* dx, const int* incx, double* dy, const int* incy, double* c, double* s);
00300 double PREFIX DASUM_F77(const int* n, const double x[], const int* incx);
00301 void PREFIX DAXPY_F77(const int* n, const double* alpha, const double x[], const int* incx, double y[], const int* incy);
00302 void PREFIX DCOPY_F77(const int* n, const double *x, const int* incx, double *y, const int* incy);
00303 double PREFIX DDOT_F77(const int* n, const double x[], const int* incx, const double y[], const int* incy);
00304 double PREFIX DNRM2_F77(const int* n, const double x[], const int* incx);
00305 void PREFIX DSCAL_F77(const int* n, const double* alpha, double *x, const int* incx);
00306 int PREFIX IDAMAX_F77(const int* n, const double *x, const int* incx);
00307
00308
00309 #ifdef HAVE_TEUCHOS_COMPLEX
00310
00311 void PREFIX ZROTG_F77(complex<double>* da, complex<double>* db, double* c, complex<double>* s);
00312 void PREFIX ZROT_F77(const int* n, complex<double>* dx, const int* incx, complex<double>* dy, const int* incy, double* c, complex<double>* s);
00313 double PREFIX ZASUM_F77(const int* n, const complex<double> x[], const int* incx);
00314 void PREFIX ZAXPY_F77(const int* n, const complex<double>* alpha, const complex<double> x[], const int* incx, complex<double> y[], const int* incy);
00315 void PREFIX ZCOPY_F77(const int* n, const complex<double> *x, const int* incx, complex<double> *y, const int* incy);
00316 complex<double> PREFIX ZDOT_F77(const int* n, const complex<double> x[], const int* incx, const complex<double> y[], const int* incy);
00317 double PREFIX ZNRM2_F77(const int* n, const complex<double> x[], const int* incx);
00318 void PREFIX ZSCAL_F77(const int* n, const complex<double>* alpha, complex<double> *x, const int* incx);
00319 int PREFIX IZAMAX_F77(const int* n, const complex<double> *x, const int* incx);
00320
00321 #endif
00322
00323
00324 void PREFIX SROTG_F77(float* da, float* db, float* c, float* s);
00325 void PREFIX SROT_F77(const int* n, float* dx, const int* incx, float* dy, const int* incy, float* c, float* s);
00326 float PREFIX SASUM_F77(const int* n, const float x[], const int* incx);
00327 void PREFIX SAXPY_F77(const int* n, const float* alpha, const float x[], const int* incx, float y[], const int* incy);
00328 void PREFIX SCOPY_F77(const int* n, const float *x, const int* incx, float *y, const int* incy);
00329 float PREFIX SDOT_F77(const int* n, const float x[], const int* incx, const float y[], const int* incy);
00330 float PREFIX SNRM2_F77(const int* n, const float x[], const int* incx);
00331 void PREFIX SSCAL_F77(const int* n, const float* alpha, float *x, const int* incx);
00332 int PREFIX ISAMAX_F77(const int* n, const float *x, const int* incx);
00333
00334
00335 #ifdef HAVE_TEUCHOS_COMPLEX
00336
00337 void PREFIX CROTG_F77(complex<float>* da, complex<float>* db, float* c, complex<float>* s);
00338 void PREFIX CROT_F77(const int* n, complex<float>* dx, const int* incx, complex<float>* dy, const int* incy, float* c, complex<float>* s);
00339 float PREFIX CASUM_F77(const int* n, const complex<float> x[], const int* incx);
00340 void PREFIX CAXPY_F77(const int* n, const complex<float>* alpha, const complex<float> x[], const int* incx, complex<float> y[], const int* incy);
00341 void PREFIX CCOPY_F77(const int* n, const complex<float> *x, const int* incx, complex<float> *y, const int* incy);
00342 complex<float> PREFIX CDOT_F77(const int* n, const complex<float> x[], const int* incx, const complex<float> y[], const int* incy);
00343 float PREFIX CNRM2_F77(const int* n, const complex<float> x[], const int* incx);
00344 void PREFIX CSCAL_F77(const int* n, const complex<float>* alpha, complex<float> *x, const int* incx);
00345 int PREFIX ICAMAX_F77(const int* n, const complex<float> *x, const int* incx);
00346
00347 #endif
00348
00349
00350 void PREFIX DGEMV_F77(Teuchos_fcd, const int* m, const int* n, const double* alpha, const double A[], const int* lda,
00351 const double x[], const int* incx, const double* beta, double y[], const int* incy);
00352 void PREFIX DTRMV_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, const int *n,
00353 const double *a, const int *lda, double *x, const int *incx);
00354 void PREFIX DGER_F77(const int *m, const int *n, const double *alpha, const double *x, const int *incx, const double *y,
00355 const int *incy, double *a, const int *lda);
00356
00357
00358 #ifdef HAVE_TEUCHOS_COMPLEX
00359
00360 void PREFIX ZGEMV_F77(Teuchos_fcd, const int* m, const int* n, const complex<double>* alpha, const complex<double> A[], const int* lda,
00361 const complex<double> x[], const int* incx, const complex<double>* beta, complex<double> y[], const int* incy);
00362 void PREFIX ZTRMV_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, const int *n,
00363 const complex<double> *a, const int *lda, complex<double> *x, const int *incx);
00364 void PREFIX ZGER_F77(const int *m, const int *n, const complex<double> *alpha, const complex<double> *x, const int *incx, const complex<double> *y,
00365 const int *incy, complex<double> *a, const int *lda);
00366
00367 #endif
00368
00369
00370 void PREFIX SGEMV_F77(Teuchos_fcd, const int* m, const int* n, const float* alpha, const float A[], const int* lda,
00371 const float x[], const int* incx, const float* beta, float y[], const int* incy);
00372 void PREFIX STRMV_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, const int *n,
00373 const float *a, const int *lda, float *x, const int *incx);
00374 void PREFIX SGER_F77(const int *m, const int *n, const float *alpha, const float *x, const int *incx, const float *y,
00375 const int *incy, float *a, const int *lda);
00376
00377
00378 #ifdef HAVE_TEUCHOS_COMPLEX
00379
00380 void PREFIX CGEMV_F77(Teuchos_fcd, const int* m, const int* n, const complex<float>* alpha, const complex<float> A[], const int* lda,
00381 const complex<float> x[], const int* incx, const complex<float>* beta, complex<float> y[], const int* incy);
00382 void PREFIX CTRMV_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, const int *n,
00383 const complex<float> *a, const int *lda, complex<float> *x, const int *incx);
00384 void PREFIX CGER_F77(const int *m, const int *n, const complex<float> *alpha, const complex<float> *x, const int *incx, const complex<float> *y,
00385 const int *incy, complex<float> *a, const int *lda);
00386
00387 #endif
00388
00389
00390 void PREFIX DGEMM_F77(Teuchos_fcd, Teuchos_fcd, const int *m, const int *
00391 n, const int *k, const double *alpha, const double *a, const int *lda,
00392 const double *b, const int *ldb, const double *beta, double *c, const int *ldc);
00393 void PREFIX DSYMM_F77(Teuchos_fcd, Teuchos_fcd, const int *m, const int * n,
00394 const double *alpha, const double *a, const int *lda,
00395 const double *b, const int *ldb, const double *beta, double *c, const int *ldc);
00396 void PREFIX DTRMM_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd,
00397 const int *m, const int *n, const double *alpha, const double *a, const int * lda, double *b, const int *ldb);
00398 void PREFIX DTRSM_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd,
00399 const int *m, const int *n, const double *alpha, const double *a, const int *
00400 lda, double *b, const int *ldb);
00401
00402
00403 #ifdef HAVE_TEUCHOS_COMPLEX
00404
00405 void PREFIX ZGEMM_F77(Teuchos_fcd, Teuchos_fcd, const int *m, const int *
00406 n, const int *k, const complex<double> *alpha, const complex<double> *a, const int *lda,
00407 const complex<double> *b, const int *ldb, const complex<double> *beta, complex<double> *c, const int *ldc);
00408 void PREFIX ZSYMM_F77(Teuchos_fcd, Teuchos_fcd, const int *m, const int * n,
00409 const complex<double> *alpha, const complex<double> *a, const int *lda,
00410 const complex<double> *b, const int *ldb, const complex<double> *beta, complex<double> *c, const int *ldc);
00411 void PREFIX ZTRMM_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd,
00412 const int *m, const int *n, const complex<double> *alpha, const complex<double> *a, const int * lda, complex<double> *b, const int *ldb);
00413 void PREFIX ZTRSM_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd,
00414 const int *m, const int *n, const complex<double> *alpha, const complex<double> *a, const int *
00415 lda, complex<double> *b, const int *ldb);
00416
00417 #endif
00418
00419
00420 void PREFIX SGEMM_F77(Teuchos_fcd, Teuchos_fcd, const int *m, const int *
00421 n, const int *k, const float *alpha, const float *a, const int *lda,
00422 const float *b, const int *ldb, const float *beta, float *c, const int *ldc);
00423 void PREFIX SSYMM_F77(Teuchos_fcd, Teuchos_fcd, const int *m, const int * n,
00424 const float *alpha, const float *a, const int *lda,
00425 const float *b, const int *ldb, const float *beta, float *c, const int *ldc);
00426 void PREFIX STRMM_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd,
00427 const int *m, const int *n, const float *alpha, const float *a, const int * lda, float *b, const int *ldb);
00428 void PREFIX STRSM_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd,
00429 const int *m, const int *n, const float *alpha, const float *a, const int *
00430 lda, float *b, const int *ldb);
00431
00432
00433 #ifdef HAVE_TEUCHOS_COMPLEX
00434
00435 void PREFIX CGEMM_F77(Teuchos_fcd, Teuchos_fcd, const int *m, const int *
00436 n, const int *k, const complex<float> *alpha, const complex<float> *a, const int *lda,
00437 const complex<float> *b, const int *ldb, const complex<float> *beta, complex<float> *c, const int *ldc);
00438 void PREFIX CSYMM_F77(Teuchos_fcd, Teuchos_fcd, const int *m, const int * n,
00439 const complex<float> *alpha, const complex<float> *a, const int *lda,
00440 const complex<float> *b, const int *ldb, const complex<float> *beta, complex<float> *c, const int *ldc);
00441 void PREFIX CTRMM_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd,
00442 const int *m, const int *n, const complex<float> *alpha, const complex<float> *a, const int * lda, complex<float> *b, const int *ldb);
00443 void PREFIX CTRSM_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd,
00444 const int *m, const int *n, const complex<float> *alpha, const complex<float> *a, const int *
00445 lda, complex<float> *b, const int *ldb);
00446
00447 #endif
00448
00449 #ifdef __cplusplus
00450 }
00451 #endif
00452
00453 #endif // end of TEUCHOS_BLAS_WRAPPERS_HPP_