Actual source code: arpackp.h
1: /*
2: Private data structure used by the ARPACK interface
3: */
8: #include src/eps/epsimpl.h
10: typedef struct {
11: PetscTruth *select;
12: PetscScalar *workev;
13: PetscScalar *workd;
14: PetscScalar *workl;
15: int lworkl;
16: #if defined(PETSC_USE_COMPLEX)
17: PetscReal *rwork;
18: #endif
19: } EPS_ARPACK;
21: /*
22: Definition of routines from the ARPACK package
23: */
25: #if defined(SLEPC_ARPACK_HAVE_UNDERSCORE)
26: #define SLEPC_ARPACK(lcase,ucase) lcase##_
27: #elif defined(SLEPC_ARPACK_HAVE_CAPS)
28: #define SLEPC_ARPACK(lcase,ucase) ucase
29: #else
30: #define SLEPC_ARPACK(lcase,ucase) lcase
31: #endif
33: #if !defined(_petsc_mpi_uni)
35: #if !defined(PETSC_USE_COMPLEX)
37: /*
38: These are real case
39: */
41: #if defined(PETSC_USES_FORTRAN_SINGLE)
42: /*
43: For these machines we must call the single precision Fortran version
44: */
45: #define ARnaupd_ SLEPC_ARPACK(psnaupd,PSNAUPD)
46: #define ARneupd_ SLEPC_ARPACK(psneupd,PSNEUPD)
47: #define ARsaupd_ SLEPC_ARPACK(pssaupd,PSSAUPD)
48: #define ARseupd_ SLEPC_ARPACK(psseupd,PSSEUPD)
50: #else
52: #define ARnaupd_ SLEPC_ARPACK(pdnaupd,PDNAUPD)
53: #define ARneupd_ SLEPC_ARPACK(pdneupd,PDNEUPD)
54: #define ARsaupd_ SLEPC_ARPACK(pdsaupd,PDSAUPD)
55: #define ARseupd_ SLEPC_ARPACK(pdseupd,PDSEUPD)
57: #endif
59: #else
60: /*
61: Complex
62: */
63: #if defined(PETSC_USE_SINGLE)
65: #define ARnaupd_ SLEPC_ARPACK(pcnaupd,PCNAUPD)
66: #define ARneupd_ SLEPC_ARPACK(pcneupd,PCNEUPD)
68: #else
70: #define ARnaupd_ SLEPC_ARPACK(pznaupd,PZNAUPD)
71: #define ARneupd_ SLEPC_ARPACK(pzneupd,PZNEUPD)
73: #endif
75: #endif
77: #else
78: /* _petsc_mpi_uni */
80: #if !defined(PETSC_USE_COMPLEX)
82: /*
83: These are real case
84: */
86: #if defined(PETSC_USE_SINGLE)
87: /*
88: For these machines we must call the single precision Fortran version
89: */
90: #define ARnaupd__ SLEPC_ARPACK(snaupd,SNAUPD)
91: #define ARneupd__ SLEPC_ARPACK(sneupd,SNEUPD)
92: #define ARsaupd__ SLEPC_ARPACK(ssaupd,SSAUPD)
93: #define ARseupd__ SLEPC_ARPACK(sseupd,SSEUPD)
95: #else
97: #define ARnaupd__ SLEPC_ARPACK(dnaupd,DNAUPD)
98: #define ARneupd__ SLEPC_ARPACK(dneupd,DNEUPD)
99: #define ARsaupd__ SLEPC_ARPACK(dsaupd,DSAUPD)
100: #define ARseupd__ SLEPC_ARPACK(dseupd,DSEUPD)
102: #endif
104: #else
105: /*
106: Complex
107: */
108: #if defined(PETSC_USE_SINGLE)
110: #define ARnaupd__ SLEPC_ARPACK(cnaupd,CNAUPD)
111: #define ARneupd__ SLEPC_ARPACK(cneupd,CNEUPD)
113: #else
115: #define ARnaupd__ SLEPC_ARPACK(znaupd,ZNAUPD)
116: #define ARneupd__ SLEPC_ARPACK(zneupd,ZNEUPD)
118: #endif
120: #endif
122: #endif
126: #if !defined(_petsc_mpi_uni)
128: EXTERN void ARsaupd_(MPI_Fint*,int*,char*,int*,const char*,int*,PetscReal*,PetscScalar*,
129: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int);
130: EXTERN void ARseupd_(MPI_Fint*,PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
131: int*,PetscReal*,
132: char*,int*,const char*,int*,PetscReal*,PetscScalar*,
133: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int,int);
135: #if !defined(PETSC_USE_COMPLEX)
136: EXTERN void ARnaupd_(MPI_Fint*,int*,char*,int*,const char*,int*,PetscReal*,PetscScalar*,
137: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int);
138: EXTERN void ARneupd_(MPI_Fint*,PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
139: PetscReal*,int*,PetscReal*,PetscReal*,PetscReal*,
140: char*,int*,const char*,int*,PetscReal*,PetscScalar*,
141: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int,int);
142: #else
143: EXTERN void ARnaupd_(MPI_Fint*,int*,char*,int*,const char*,int*,PetscReal*,PetscScalar*,
144: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscReal*,int*,
145: int,int);
146: EXTERN void ARneupd_(MPI_Fint*,PetscTruth*,char*,PetscTruth*,PetscScalar*,PetscScalar*,
147: int*,PetscScalar*,PetscScalar*,
148: char*,int*,const char*,int*,PetscReal*,PetscScalar*,
149: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscReal*,int*,
150: int,int,int);
151: #endif
153: #else
154: /* _petsc_mpi_uni */
156: EXTERN void ARsaupd__(int*,char*,int*,const char*,int*,PetscReal*,PetscScalar*,
157: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int);
158: #define ARsaupd_(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s) ARsaupd__(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s)
159: EXTERN void ARseupd__(PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
160: int*,PetscReal*,
161: char*,int*,const char*,int*,PetscReal*,PetscScalar*,
162: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int,int);
163: #define ARseupd_(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) ARseupd__(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z)
165: #if !defined(PETSC_USE_COMPLEX)
166: EXTERN void ARnaupd__(int*,char*,int*,const char*,int*,PetscReal*,PetscScalar*,
167: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int);
168: #define ARnaupd_(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s) ARnaupd__(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s)
169: EXTERN void ARneupd__(PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
170: PetscReal*,int*,PetscReal*,PetscReal*,PetscReal*,
171: char*,int*,const char*,int*,PetscReal*,PetscScalar*,
172: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int,int);
173: #define ARneupd_(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a1,a2,a3) ARneupd__(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a1,a2,a3)
174: #else
175: EXTERN void ARnaupd__(int*,char*,int*,const char*,int*,PetscReal*,PetscScalar*,
176: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscReal*,int*,
177: int,int);
178: #define ARnaupd_(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) ARnaupd__(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t)
179: EXTERN void ARneupd__(PetscTruth*,char*,PetscTruth*,PetscScalar*,PetscScalar*,
180: int*,PetscScalar*,PetscScalar*,
181: char*,int*,const char*,int*,PetscReal*,PetscScalar*,
182: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscReal*,int*,
183: int,int,int);
184: #define ARneupd_(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a1,a2) ARneupd__(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a1,a2)
185: #endif
187: #endif
191: #endif