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-2011, Universitat 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: typedef struct {
28: PetscBool *select;
29: PetscScalar *workev;
30: PetscScalar *workd;
31: PetscScalar *workl;
32: PetscBLASInt
33: lworkl;
34: #if defined(PETSC_USE_COMPLEX)
35: PetscReal *rwork;
36: #endif
37: } EPS_ARPACK;
39: /*
40: Definition of routines from the ARPACK package
41: */
43: #if defined(SLEPC_ARPACK_HAVE_UNDERSCORE)
44: #define SLEPC_ARPACK(lcase,ucase) lcase##_
45: #elif defined(SLEPC_ARPACK_HAVE_CAPS)
46: #define SLEPC_ARPACK(lcase,ucase) ucase
47: #else
48: #define SLEPC_ARPACK(lcase,ucase) lcase
49: #endif
51: #if !defined(PETSC_USE_COMPLEX)
53: /*
54: These are real case
55: */
57: #if defined(PETSC_USES_FORTRAN_SINGLE)
58: /*
59: For these machines we must call the single precision Fortran version
60: */
61: #define ARnaupd_ SLEPC_ARPACK(psnaupd,PSNAUPD)
62: #define ARneupd_ SLEPC_ARPACK(psneupd,PSNEUPD)
63: #define ARsaupd_ SLEPC_ARPACK(pssaupd,PSSAUPD)
64: #define ARseupd_ SLEPC_ARPACK(psseupd,PSSEUPD)
66: #else
68: #define ARnaupd_ SLEPC_ARPACK(pdnaupd,PDNAUPD)
69: #define ARneupd_ SLEPC_ARPACK(pdneupd,PDNEUPD)
70: #define ARsaupd_ SLEPC_ARPACK(pdsaupd,PDSAUPD)
71: #define ARseupd_ SLEPC_ARPACK(pdseupd,PDSEUPD)
73: #endif
75: #else
76: /*
77: Complex
78: */
79: #if defined(PETSC_USE_SINGLE)
81: #define ARnaupd_ SLEPC_ARPACK(pcnaupd,PCNAUPD)
82: #define ARneupd_ SLEPC_ARPACK(pcneupd,PCNEUPD)
84: #else
86: #define ARnaupd_ SLEPC_ARPACK(pznaupd,PZNAUPD)
87: #define ARneupd_ SLEPC_ARPACK(pzneupd,PZNEUPD)
89: #endif
91: #endif
96: PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
97: PetscBLASInt*,PetscBLASInt*,int,int);
99: char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,PetscBLASInt*,
100: PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,PetscBLASInt*,
101: PetscBLASInt*,int,int,int);
103: #if !defined(PETSC_USE_COMPLEX)
105: PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
106: PetscBLASInt*,PetscBLASInt*,int,int);
108: PetscReal*,PetscReal*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,
109: PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
110: PetscBLASInt*,PetscBLASInt*,int,int,int);
111: #else
113: PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
114: PetscBLASInt*,PetscReal*,PetscBLASInt*,int,int);
116: PetscScalar*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,PetscBLASInt*,
117: PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,PetscBLASInt*,
118: PetscReal*,PetscBLASInt*,int,int,int);
119: #endif
123: #endif