EVSL  1.1.0
EigenValues Slicing Library
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
blaslapack.h
Go to the documentation of this file.
1 #ifndef BLAS_LAPACK_H
2 #define BLAS_LAPACK_H
3 
4 #include <complex.h>
5 
6 #ifdef USE_MKL
7 
8 #define MKL_Complex16 complex
9 #include "mkl.h"
10 
11 #else
12 
13 #define DCOPY dcopy_
14 #define DDOT ddot_
15 #define DNRM2 dnrm2_
16 #define DSCAL dscal_
17 #define DASUM dasum_
18 #define DGEMV dgemv_
19 #define DGEMM dgemm_
20 #define DAXPY daxpy_
21 #define DSTEV dstev_
22 #define DSYEV dsyev_
23 #define DSTEMR dstemr_
24 #define DHSEQR dhseqr_
25 #define ZGESV zgesv_
26 
32 // Fortran logical type
33 typedef int logical;
34 
35 void DCOPY(int *n, double *dx, int *incx, double *dy, int *incy);
36 void DAXPY(int *n,double *alpha,double *x,int *incx,double *y,int *incy);
37 void DSCAL(int *n,double *a,double *x,int *incx);
38 double DASUM(int *n,double *x,int *incx);
39 double DDOT(int *n,double *x,int *incx,double *y,int *incy);
40 double DNRM2(int *n,double *x,int *incx);
41 void DGEMM(char *transa,char *transb,int *m,int *n,int *k,double *alpha,double *a,int *lda,double *b,int *ldb,double *beta,double *c,int *ldc);
42 void DGEMV(char *trans, int *m, int *n, double *alpha, double *a, int *lda, double *x, int *incx, double *beta, double *y, int *incy);
43 void DSTEV(char *jobz, int *n, double *diagonal, double *subdiagonal, double *V, int *ldz, double *work, int *info);
44 void DSYEV(char* jobz,char* uplo,int* n,double* fa,int* lda,double* w, double* work,int* lwork,int* info);
45 void DSTEMR(char *jobz, char *range, int *n, double *D, double *E, double *VL, double *VU, int *IL, int *IU,
46  int *M, double *W, double *Z, int *LDZ, int *NZC, int *ISUPPZ, logical *TRYRAC, double *WORK,
47  int *LWORK, int *IWORK, int *LIWORK, int *INFO);
48 void DHSEQR(char* jobz,char* compz,int* n,int* ilo,int* ihi,double* h,int* ldh,double* wr,double* wi,
49  double* z,int* ldz,double* work, int* lwork,int* info);
50 void ZGESV(int *n, int *nrow, complex double * A, int* m, int* ipiv, complex double *rhs, int* k, int* INFO);
51 
52 #endif
53 
54 /* USE SQRT(DDOT()) INSTEAD OF DNRM2, FOR BETTER PERFORMANCE */
55 #undef DNRM2
56 #define DNRM2(n, x, incx) sqrt(DDOT(n, x, incx, x, incx))
57 
58 #endif
#define DSTEMR
Definition: blaslapack.h:23
#define DNRM2
Definition: blaslapack.h:56
#define DSTEV
Definition: blaslapack.h:21
#define DDOT
Definition: blaslapack.h:14
#define DCOPY
Definition: blaslapack.h:13
#define DHSEQR
Definition: blaslapack.h:24
#define ZGESV
Definition: blaslapack.h:25
#define DASUM
Definition: blaslapack.h:17
#define DGEMV
Definition: blaslapack.h:18
#define DSYEV
Definition: blaslapack.h:22
#define DSCAL
Definition: blaslapack.h:16
int logical
Definition: blaslapack.h:33
#define DGEMM
Definition: blaslapack.h:19
#define DAXPY
Definition: blaslapack.h:20