Actual source code: blzpackp.h
1: /*
2: Private data structure used by the BLZPACK interface
4: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5: SLEPc - Scalable Library for Eigenvalue Problem Computations
6: Copyright (c) 2002-2007, Universidad Politecnica de Valencia, Spain
8: This file is part of SLEPc. See the README file for conditions of use
9: and additional information.
10: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
11: */
16: #include src/eps/epsimpl.h
18: typedef struct {
19: int block_size; /* block size */
20: PetscReal initial,final; /* computational interval */
21: int slice; /* use spectrum slicing */
22: int nsteps; /* maximum number of steps per run */
23: int *istor;
24: PetscReal *rstor;
25: PetscScalar *u;
26: PetscScalar *v;
27: PetscScalar *eig;
28: } EPS_BLZPACK;
30: /*
31: Definition of routines from the BLZPACK package
32: */
34: #if defined(SLEPC_BLZPACK_HAVE_UNDERSCORE)
35: #define SLEPC_BLZPACK(lcase,ucase) lcase##_
36: #elif defined(SLEPC_BLZPACK_HAVE_CAPS)
37: #define SLEPC_BLZPACK(lcase,ucase) ucase
38: #else
39: #define SLEPC_BLZPACK(lcase,ucase) lcase
40: #endif
42: /*
43: These are real case, current version of BLZPACK only supports real
44: matrices
45: */
47: #if defined(PETSC_USE_SINGLE)
48: /*
49: For these machines we must call the single precision Fortran version
50: */
51: #define BLZpack_ SLEPC_BLZPACK(blzdrs,BLZDRS)
52: #else
53: #define BLZpack_ SLEPC_BLZPACK(blzdrd,BLZDRD)
54: #endif
56: #define BLZistorr_ SLEPC_BLZPACK(istorr,ISTORR)
57: #define BLZrstorr_ SLEPC_BLZPACK(rstorr,RSTORR)
61: EXTERN void BLZpack_(int*,PetscReal*,PetscScalar*,int*,PetscScalar*,
62: PetscScalar*,int*,int*,PetscScalar*,PetscScalar*);
64: EXTERN int BLZistorr_(int*,const char*,int);
65: EXTERN PetscReal BLZrstorr_(PetscReal*,char*,int);
69: #endif