44#ifndef EPETRA_BLAS_WRAPPERS_H
45#define EPETRA_BLAS_WRAPPERS_H
54#if defined(CRAY_T3X) || defined(INTEL_CXML) || defined(INTEL_MKL)
63#define DASUM_F77 SASUM
64#define DAXPY_F77 SAXPY
65#define DCOPY_F77 SCOPY
67#define DNRM2_F77 SNRM2
68#define DSCAL_F77 SSCAL
69#define IDAMAX_F77 ISAMAX
70#define DGEMV_F77 SGEMV
72#define DTRMV_F77 STRMV
73#define DGEMM_F77 SGEMM
74#define DSYMM_F77 SSYMM
75#define DTRMM_F77 STRMM
76#define DTRSM_F77 STRSM
77#define DSYRK_F77 SSYRK
78#define EPETRA_DCRSMV_F77 EPETRA_DCRSMV
79#define EPETRA_DCRSMM_F77 EPETRA_DCRSMM
80#define EPETRA_DCRSSV_F77 EPETRA_DCRSSV
81#define EPETRA_DCRSSM_F77 EPETRA_DCRSSM
83#elif defined(INTEL_CXML)
85#define PREFIX __stdcall
86#define Epetra_fcd const char *, const unsigned int
88#elif defined(INTEL_MKL)
91#define Epetra_fcd const char *
100#undef F77_BLAS_MANGLE
111#define F77_BLAS_MANGLE(lcase,UCASE) UCASE
112#define F77_FUNC(lcase,UCASE) UCASE
113#define F77_FUNC_(lcase,UCASE) UCASE
118#define Epetra_fcd const char *
123#ifdef TRILINOS_NO_CONFIG_H
125#ifdef F77_BLAS_MANGLE
126#undef F77_BLAS_MANGLE
135#ifdef TRILINOS_HAVE_NO_FORTRAN_UNDERSCORE
136#define F77_BLAS_MANGLE(lcase,UCASE) lcase
137#define F77_FUNC(lcase,UCASE) lcase
138#define F77_FUNC_(lcase,UCASE) lcase
140#define F77_BLAS_MANGLE(lcase,UCASE) lcase ## _
141#define F77_FUNC(lcase,UCASE) lcase ## _
142#define F77_FUNC_(lcase,UCASE) lcase ## __
151#define DASUM_F77 F77_BLAS_MANGLE(dasum,DASUM)
152#define DAXPY_F77 F77_BLAS_MANGLE(daxpy,DAXPY)
153#define DCOPY_F77 F77_BLAS_MANGLE(dcopy,DCOPY)
154#define DDOT_F77 F77_BLAS_MANGLE(ddot,DDOT)
155#define DNRM2_F77 F77_BLAS_MANGLE(dnrm2,DNRM2)
156#define DSCAL_F77 F77_BLAS_MANGLE(dscal,DSCAL)
157#define IDAMAX_F77 F77_BLAS_MANGLE(idamax,IDAMAX)
158#define DGEMV_F77 F77_BLAS_MANGLE(dgemv,DGEMV)
159#define DGER_F77 F77_BLAS_MANGLE(dger,DGER)
160#define DTRMV_F77 F77_BLAS_MANGLE(dtrmv,DTRMV)
161#define DGEMM_F77 F77_BLAS_MANGLE(dgemm,DGEMM)
162#define DSYMM_F77 F77_BLAS_MANGLE(dsymm,DSYMM)
163#define DTRMM_F77 F77_BLAS_MANGLE(dtrmm,DTRMM)
164#define DTRSM_F77 F77_BLAS_MANGLE(dtrsm,DTRSM)
165#define DSYRK_F77 F77_BLAS_MANGLE(dsyrk,DSYRK)
167#ifndef FORTRAN_DISABLED
169#if ( defined(__GNUC__) || defined(_WIN32) ) && ! defined(FORTRAN_NO_UNDERSCORE)
172#define EPETRA_DCRSMV_F77 F77_FUNC_(epetra_dcrsmv,EPETRA_DCRSMV)
173#define EPETRA_DCRSMM_F77 F77_FUNC_(epetra_dcrsmm,EPETRA_DCRSMM)
174#define EPETRA_DCRSSV_F77 F77_FUNC_(epetra_dcrssv,EPETRA_DCRSSV)
175#define EPETRA_DCRSSM_F77 F77_FUNC_(epetra_dcrssm,EPETRA_DCRSSM)
179#define EPETRA_DCRSMV_F77 F77_FUNC(epetra_dcrsmv,EPETRA_DCRSMV)
180#define EPETRA_DCRSMM_F77 F77_FUNC(epetra_dcrsmm,EPETRA_DCRSMM)
181#define EPETRA_DCRSSV_F77 F77_FUNC(epetra_dcrssv,EPETRA_DCRSSV)
182#define EPETRA_DCRSSM_F77 F77_FUNC(epetra_dcrssm,EPETRA_DCRSSM)
194#define SSCAL_F77 F77_BLAS_MANGLE(sscal,SSCAL)
195#define SCOPY_F77 F77_BLAS_MANGLE(scopy,SCOPY)
196#define SAXPY_F77 F77_BLAS_MANGLE(saxpy,SAXPY)
197#define SDOT_F77 F77_BLAS_MANGLE(sdot,SDOT)
198#define SNRM2_F77 F77_BLAS_MANGLE(snrm2,SNRM2)
199#define SASUM_F77 F77_BLAS_MANGLE(sasum,SASUM)
200#define ISAMAX_F77 F77_BLAS_MANGLE(isamax,ISAMAX)
202#define SGEMV_F77 F77_BLAS_MANGLE(sgemv,SGEMV)
203#define SGER_F77 F77_BLAS_MANGLE(sger,SGER)
204#define STRMV_F77 F77_BLAS_MANGLE(strmv,STRMV)
205#define SGEMM_F77 F77_BLAS_MANGLE(sgemm,SGEMM)
206#define SSYMM_F77 F77_BLAS_MANGLE(ssymm,SSYMM)
207#define STRMM_F77 F77_BLAS_MANGLE(strmm,STRMM)
208#define STRSM_F77 F77_BLAS_MANGLE(strsm,STRSM)
209#define SSYRK_F77 F77_BLAS_MANGLE(ssyrk,SSYRK)
219void PREFIX DAXPY_F77(
const int* n,
const double* alpha,
const double x[],
const int* incx,
double y[],
const int* incy);
220void PREFIX DCOPY_F77(
const int* n,
const double *x,
const int* incx,
double *y,
const int* incy);
221double PREFIX DDOT_F77(
const int* n,
const double x[],
const int* incx,
const double y[],
const int* incy);
228void PREFIX SAXPY_F77(
const int* n,
const float* alpha,
const float x[],
const int* incx,
float y[],
const int* incy);
229void PREFIX SCOPY_F77(
const int* n,
const float *x,
const int* incx,
float *y,
const int* incy);
230float PREFIX SDOT_F77(
const int* n,
const float x[],
const int* incx,
const float y[],
const int* incy);
237 const double x[],
const int* incx,
const double* beta,
double y[],
const int* incy);
239 const double *a,
const int *lda,
double *x,
const int *incx);
240void PREFIX DGER_F77(
const int *m,
const int *n,
const double *alpha,
const double *x,
const int *incx,
const double *y,
241 const int *incy,
double *a,
const int *lda);
246 const float x[],
const int* incx,
const float* beta,
float y[],
const int* incy);
248 const float *a,
const int *lda,
float *x,
const int *incx);
249void PREFIX SGER_F77(
const int *m,
const int *n,
const float *alpha,
const float *x,
const int *incx,
const float *y,
250 const int *incy,
float *a,
const int *lda);
254 n,
const int *k,
const double *alpha,
const double *a,
const int *lda,
255 const double *b,
const int *ldb,
const double *beta,
double *c,
const int *ldc);
257 const double *alpha,
const double *a,
const int *lda,
258 const double *b,
const int *ldb,
const double *beta,
double *c,
const int *ldc);
260 const int *m,
const int *n,
const double *alpha,
const double *a,
const int * lda,
double *b,
const int *ldb);
262 const int *m,
const int *n,
const double *alpha,
const double *a,
const int *
263 lda,
double *b,
const int *ldb);
265 const int *,
double *,
double *);
267 const int *,
double *,
int *,
double *,
int *,
int *);
269 const int *,
const double *,
const int *,
const int *,
double *,
270 double *,
const int *);
272 const int *,
const double *,
const int *,
const int *,
double *,
273 const int *,
double *,
const int *,
const int *,
const int *);
275 const double *alpha,
const double *a,
const int *lda,
const double *beta,
276 double *c,
const int *ldc);
280 n,
const int *k,
const float *alpha,
const float *a,
const int *lda,
281 const float *b,
const int *ldb,
const float *beta,
float *c,
const int *ldc);
283 const float *alpha,
const float *a,
const int *lda,
284 const float *b,
const int *ldb,
const float *beta,
float *c,
const int *ldc);
286 const int *m,
const int *n,
const float *alpha,
const float *a,
const int * lda,
float *b,
const int *ldb);
288 const int *m,
const int *n,
const float *alpha,
const float *a,
const int *
289 lda,
float *b,
const int *ldb);
294 const float *alpha,
const float *a,
const int *lda,
const float *beta,
295 float *c,
const int *ldc);
void PREFIX EPETRA_DCRSSM_F77(const int *, const int *, const int *, const int *, const int *, const int *, const double *, const int *, const int *, double *, const int *, double *, const int *, const int *, const int *)
void PREFIX EPETRA_DCRSSV_F77(const int *, const int *, const int *, const int *, const int *, const int *, const double *, const int *, const int *, double *, double *, const int *)
void PREFIX EPETRA_DCRSMM_F77(const int *, const int *, const int *, const double *, const int *, const int *, double *, int *, double *, int *, int *)
void PREFIX XERBLA_F77(Epetra_fcd, int *info)
void PREFIX EPETRA_DCRSMV_F77(const int *, const int *, const int *, const double *, const int *, const int *, double *, double *)