Actual source code: arpackp.h
1: /*
2: Private data structure used by the ARPACK interface
4: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5: SLEPc - Scalable Library for Eigenvalue Problem Computations
6: Copyright (c) 2002-2009, Universidad Politecnica de Valencia, Spain
7:
8: This file is part of SLEPc.
9:
10: SLEPc is free software: you can redistribute it and/or modify it under the
11: terms of version 3 of the GNU Lesser General Public License as published by
12: the Free Software Foundation.
13:
14: SLEPc is distributed in the hope that it will be useful, but WITHOUT ANY
15: WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16: FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
17: more details.
18:
19: You should have received a copy of the GNU Lesser General Public License
20: along with SLEPc. If not, see <http://www.gnu.org/licenses/>.
21: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
22: */
27: #include private/epsimpl.h
29: typedef struct {
30: PetscTruth *select;
31: PetscScalar *workev;
32: PetscScalar *workd;
33: PetscScalar *workl;
34: PetscBLASInt
35: lworkl;
36: #if defined(PETSC_USE_COMPLEX)
37: PetscReal *rwork;
38: #endif
39: } EPS_ARPACK;
41: /*
42: Definition of routines from the ARPACK package
43: */
45: #if defined(SLEPC_ARPACK_HAVE_UNDERSCORE)
46: #define SLEPC_ARPACK(lcase,ucase) lcase##_
47: #elif defined(SLEPC_ARPACK_HAVE_CAPS)
48: #define SLEPC_ARPACK(lcase,ucase) ucase
49: #else
50: #define SLEPC_ARPACK(lcase,ucase) lcase
51: #endif
53: #if !defined(PETSC_USE_COMPLEX)
55: /*
56: These are real case
57: */
59: #if defined(PETSC_USES_FORTRAN_SINGLE)
60: /*
61: For these machines we must call the single precision Fortran version
62: */
63: #define ARnaupd_ SLEPC_ARPACK(psnaupd,PSNAUPD)
64: #define ARneupd_ SLEPC_ARPACK(psneupd,PSNEUPD)
65: #define ARsaupd_ SLEPC_ARPACK(pssaupd,PSSAUPD)
66: #define ARseupd_ SLEPC_ARPACK(psseupd,PSSEUPD)
68: #else
70: #define ARnaupd_ SLEPC_ARPACK(pdnaupd,PDNAUPD)
71: #define ARneupd_ SLEPC_ARPACK(pdneupd,PDNEUPD)
72: #define ARsaupd_ SLEPC_ARPACK(pdsaupd,PDSAUPD)
73: #define ARseupd_ SLEPC_ARPACK(pdseupd,PDSEUPD)
75: #endif
77: #else
78: /*
79: Complex
80: */
81: #if defined(PETSC_USE_SINGLE)
83: #define ARnaupd_ SLEPC_ARPACK(pcnaupd,PCNAUPD)
84: #define ARneupd_ SLEPC_ARPACK(pcneupd,PCNEUPD)
86: #else
88: #define ARnaupd_ SLEPC_ARPACK(pznaupd,PZNAUPD)
89: #define ARneupd_ SLEPC_ARPACK(pzneupd,PZNEUPD)
91: #endif
93: #endif
97: EXTERN void ARsaupd_(MPI_Fint*,PetscBLASInt*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,
98: PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
99: PetscBLASInt*,PetscBLASInt*,int,int);
100: EXTERN void ARseupd_(MPI_Fint*,PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,PetscBLASInt*,PetscReal*,
101: char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,PetscBLASInt*,
102: PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,PetscBLASInt*,
103: PetscBLASInt*,int,int,int);
105: #if !defined(PETSC_USE_COMPLEX)
106: EXTERN void ARnaupd_(MPI_Fint*,PetscBLASInt*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,
107: PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
108: PetscBLASInt*,PetscBLASInt*,int,int);
109: EXTERN void ARneupd_(MPI_Fint*,PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,PetscReal*,PetscBLASInt*,PetscReal*,
110: PetscReal*,PetscReal*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,
111: PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
112: PetscBLASInt*,PetscBLASInt*,int,int,int);
113: #else
114: EXTERN void ARnaupd_(MPI_Fint*,PetscBLASInt*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,
115: PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
116: PetscBLASInt*,PetscReal*,PetscBLASInt*,int,int);
117: EXTERN void ARneupd_(MPI_Fint*,PetscTruth*,char*,PetscTruth*,PetscScalar*,PetscScalar*,PetscBLASInt*,PetscScalar*,
118: PetscScalar*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,PetscBLASInt*,
119: PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,PetscBLASInt*,
120: PetscReal*,PetscBLASInt*,int,int,int);
121: #endif
125: #endif