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