Actual source code: blzpackp.h
1: /*
2: Private data structure used by the BLZPACK interface
3: */
8: #include src/eps/epsimpl.h
10: typedef struct {
11: int block_size; /* block size */
12: PetscReal initial,final; /* computational interval */
13: int slice; /* use spectrum slicing */
14: int nsteps; /* maximum number of steps per run */
15: int *istor;
16: PetscReal *rstor;
17: PetscScalar *u;
18: PetscScalar *v;
19: PetscScalar *eig;
20: } EPS_BLZPACK;
22: /*
23: Definition of routines from the BLZPACK package
24: */
26: #if defined(SLEPC_BLZPACK_HAVE_UNDERSCORE)
27: #define SLEPC_BLZPACK(lcase,ucase) lcase##_
28: #elif defined(SLEPC_BLZPACK_HAVE_CAPS)
29: #define SLEPC_BLZPACK(lcase,ucase) ucase
30: #else
31: #define SLEPC_BLZPACK(lcase,ucase) lcase
32: #endif
34: /*
35: These are real case, current version of BLZPACK only supports real
36: matrices
37: */
39: #if defined(PETSC_USE_SINGLE)
40: /*
41: For these machines we must call the single precision Fortran version
42: */
43: #define BLZpack_ SLEPC_BLZPACK(blzdrs,BLZDRS)
44: #else
45: #define BLZpack_ SLEPC_BLZPACK(blzdrd,BLZDRD)
46: #endif
48: #define BLZistorr_ SLEPC_BLZPACK(istorr,ISTORR)
49: #define BLZrstorr_ SLEPC_BLZPACK(rstorr,RSTORR)
53: EXTERN void BLZpack_(int*,PetscReal*,PetscScalar*,int*,PetscScalar*,
54: PetscScalar*,int*,int*,PetscScalar*,PetscScalar*);
56: EXTERN int BLZistorr_(int*,const char*,int);
57: EXTERN PetscReal BLZrstorr_(PetscReal*,char*,int);
61: #endif