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-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: PetscTruth *select;
20: PetscScalar *workev;
21: PetscScalar *workd;
22: PetscScalar *workl;
23: int lworkl;
24: #if defined(PETSC_USE_COMPLEX)
25: PetscReal *rwork;
26: #endif
27: } EPS_ARPACK;
29: /*
30: Definition of routines from the ARPACK package
31: */
33: #if defined(SLEPC_ARPACK_HAVE_UNDERSCORE)
34: #define SLEPC_ARPACK(lcase,ucase) lcase##_
35: #elif defined(SLEPC_ARPACK_HAVE_CAPS)
36: #define SLEPC_ARPACK(lcase,ucase) ucase
37: #else
38: #define SLEPC_ARPACK(lcase,ucase) lcase
39: #endif
41: #if !defined(_petsc_mpi_uni)
43: #if !defined(PETSC_USE_COMPLEX)
45: /*
46: These are real case
47: */
49: #if defined(PETSC_USES_FORTRAN_SINGLE)
50: /*
51: For these machines we must call the single precision Fortran version
52: */
53: #define ARnaupd_ SLEPC_ARPACK(psnaupd,PSNAUPD)
54: #define ARneupd_ SLEPC_ARPACK(psneupd,PSNEUPD)
55: #define ARsaupd_ SLEPC_ARPACK(pssaupd,PSSAUPD)
56: #define ARseupd_ SLEPC_ARPACK(psseupd,PSSEUPD)
58: #else
60: #define ARnaupd_ SLEPC_ARPACK(pdnaupd,PDNAUPD)
61: #define ARneupd_ SLEPC_ARPACK(pdneupd,PDNEUPD)
62: #define ARsaupd_ SLEPC_ARPACK(pdsaupd,PDSAUPD)
63: #define ARseupd_ SLEPC_ARPACK(pdseupd,PDSEUPD)
65: #endif
67: #else
68: /*
69: Complex
70: */
71: #if defined(PETSC_USE_SINGLE)
73: #define ARnaupd_ SLEPC_ARPACK(pcnaupd,PCNAUPD)
74: #define ARneupd_ SLEPC_ARPACK(pcneupd,PCNEUPD)
76: #else
78: #define ARnaupd_ SLEPC_ARPACK(pznaupd,PZNAUPD)
79: #define ARneupd_ SLEPC_ARPACK(pzneupd,PZNEUPD)
81: #endif
83: #endif
85: #else
86: /* _petsc_mpi_uni */
88: #if !defined(PETSC_USE_COMPLEX)
90: /*
91: These are real case
92: */
94: #if defined(PETSC_USE_SINGLE)
95: /*
96: For these machines we must call the single precision Fortran version
97: */
98: #define ARnaupd__ SLEPC_ARPACK(snaupd,SNAUPD)
99: #define ARneupd__ SLEPC_ARPACK(sneupd,SNEUPD)
100: #define ARsaupd__ SLEPC_ARPACK(ssaupd,SSAUPD)
101: #define ARseupd__ SLEPC_ARPACK(sseupd,SSEUPD)
103: #else
105: #define ARnaupd__ SLEPC_ARPACK(dnaupd,DNAUPD)
106: #define ARneupd__ SLEPC_ARPACK(dneupd,DNEUPD)
107: #define ARsaupd__ SLEPC_ARPACK(dsaupd,DSAUPD)
108: #define ARseupd__ SLEPC_ARPACK(dseupd,DSEUPD)
110: #endif
112: #else
113: /*
114: Complex
115: */
116: #if defined(PETSC_USE_SINGLE)
118: #define ARnaupd__ SLEPC_ARPACK(cnaupd,CNAUPD)
119: #define ARneupd__ SLEPC_ARPACK(cneupd,CNEUPD)
121: #else
123: #define ARnaupd__ SLEPC_ARPACK(znaupd,ZNAUPD)
124: #define ARneupd__ SLEPC_ARPACK(zneupd,ZNEUPD)
126: #endif
128: #endif
130: #endif
134: #if !defined(_petsc_mpi_uni)
136: EXTERN void ARsaupd_(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 ARseupd_(MPI_Fint*,PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
139: int*,PetscReal*,
140: char*,int*,const char*,int*,PetscReal*,PetscScalar*,
141: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int,int);
143: #if !defined(PETSC_USE_COMPLEX)
144: EXTERN void ARnaupd_(MPI_Fint*,int*,char*,int*,const char*,int*,PetscReal*,PetscScalar*,
145: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int);
146: EXTERN void ARneupd_(MPI_Fint*,PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
147: PetscReal*,int*,PetscReal*,PetscReal*,PetscReal*,
148: char*,int*,const char*,int*,PetscReal*,PetscScalar*,
149: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int,int);
150: #else
151: EXTERN void ARnaupd_(MPI_Fint*,int*,char*,int*,const char*,int*,PetscReal*,PetscScalar*,
152: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscReal*,int*,
153: int,int);
154: EXTERN void ARneupd_(MPI_Fint*,PetscTruth*,char*,PetscTruth*,PetscScalar*,PetscScalar*,
155: int*,PetscScalar*,PetscScalar*,
156: char*,int*,const char*,int*,PetscReal*,PetscScalar*,
157: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscReal*,int*,
158: int,int,int);
159: #endif
161: #else
162: /* _petsc_mpi_uni */
164: EXTERN void ARsaupd__(int*,char*,int*,const char*,int*,PetscReal*,PetscScalar*,
165: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int);
166: #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)
167: EXTERN void ARseupd__(PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
168: int*,PetscReal*,
169: char*,int*,const char*,int*,PetscReal*,PetscScalar*,
170: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int,int);
171: #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)
173: #if !defined(PETSC_USE_COMPLEX)
174: EXTERN void ARnaupd__(int*,char*,int*,const char*,int*,PetscReal*,PetscScalar*,
175: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int);
176: #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)
177: EXTERN void ARneupd__(PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
178: PetscReal*,int*,PetscReal*,PetscReal*,PetscReal*,
179: char*,int*,const char*,int*,PetscReal*,PetscScalar*,
180: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int,int);
181: #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)
182: #else
183: EXTERN void ARnaupd__(int*,char*,int*,const char*,int*,PetscReal*,PetscScalar*,
184: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscReal*,int*,
185: int,int);
186: #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)
187: EXTERN void ARneupd__(PetscTruth*,char*,PetscTruth*,PetscScalar*,PetscScalar*,
188: int*,PetscScalar*,PetscScalar*,
189: char*,int*,const char*,int*,PetscReal*,PetscScalar*,
190: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscReal*,int*,
191: int,int,int);
192: #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)
193: #endif
195: #endif
199: #endif