Subversion Repositories slepc-dev

Rev

Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6 dsic.upv.es!jroman 1
/*
2
   Private data structure used by the ARPACK interface
1376 slepc 3
 
4
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5
      SLEPc - Scalable Library for Eigenvalue Problem Computations
6
      Copyright (c) 2002-2007, Universidad Politecnica de Valencia, Spain
7
 
8
      This file is part of SLEPc. See the README file for conditions of use
9
      and additional information.
10
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
6 dsic.upv.es!jroman 11
*/
12
 
13
#if !defined(__ARPACKP_H)
14
#define __ARPACKP_H
15
 
16
#include "src/eps/epsimpl.h"
17
 
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;
28
 
29
/*
30
   Definition of routines from the ARPACK package
31
*/
32
 
806 dsic.upv.es!antodo 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
6 dsic.upv.es!jroman 40
 
41
#if !defined(_petsc_mpi_uni)
42
 
43
#if !defined(PETSC_USE_COMPLEX)
44
 
45
/*
46
    These are real case
47
*/
48
 
49
#if defined(PETSC_USES_FORTRAN_SINGLE)
50
/*
51
   For these machines we must call the single precision Fortran version
52
*/
806 dsic.upv.es!antodo 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)
6 dsic.upv.es!jroman 57
 
58
#else
496 dsic.upv.es!antodo 59
 
806 dsic.upv.es!antodo 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)
496 dsic.upv.es!antodo 64
 
6 dsic.upv.es!jroman 65
#endif
66
 
67
#else
68
/*
69
   Complex
70
*/
806 dsic.upv.es!antodo 71
#if defined(PETSC_USE_SINGLE)
6 dsic.upv.es!jroman 72
 
806 dsic.upv.es!antodo 73
#define ARnaupd_ SLEPC_ARPACK(pcnaupd,PCNAUPD)
74
#define ARneupd_ SLEPC_ARPACK(pcneupd,PCNEUPD)
496 dsic.upv.es!antodo 75
 
6 dsic.upv.es!jroman 76
#else
496 dsic.upv.es!antodo 77
 
806 dsic.upv.es!antodo 78
#define ARnaupd_ SLEPC_ARPACK(pznaupd,PZNAUPD)
79
#define ARneupd_ SLEPC_ARPACK(pzneupd,PZNEUPD)
496 dsic.upv.es!antodo 80
 
6 dsic.upv.es!jroman 81
#endif
82
 
83
#endif
84
 
85
#else
86
/* _petsc_mpi_uni */
87
 
88
#if !defined(PETSC_USE_COMPLEX)
89
 
90
/*
91
    These are real case
92
*/
93
 
806 dsic.upv.es!antodo 94
#if defined(PETSC_USE_SINGLE)
6 dsic.upv.es!jroman 95
/*
96
   For these machines we must call the single precision Fortran version
97
*/
806 dsic.upv.es!antodo 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)
6 dsic.upv.es!jroman 102
 
103
#else
496 dsic.upv.es!antodo 104
 
806 dsic.upv.es!antodo 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)
496 dsic.upv.es!antodo 109
 
6 dsic.upv.es!jroman 110
#endif
111
 
112
#else
113
/*
114
   Complex
115
*/
806 dsic.upv.es!antodo 116
#if defined(PETSC_USE_SINGLE)
6 dsic.upv.es!jroman 117
 
806 dsic.upv.es!antodo 118
#define ARnaupd__ SLEPC_ARPACK(cnaupd,CNAUPD)
119
#define ARneupd__ SLEPC_ARPACK(cneupd,CNEUPD)
496 dsic.upv.es!antodo 120
 
6 dsic.upv.es!jroman 121
#else
496 dsic.upv.es!antodo 122
 
806 dsic.upv.es!antodo 123
#define ARnaupd__ SLEPC_ARPACK(znaupd,ZNAUPD)
124
#define ARneupd__ SLEPC_ARPACK(zneupd,ZNEUPD)
496 dsic.upv.es!antodo 125
 
6 dsic.upv.es!jroman 126
#endif
127
 
128
#endif
129
 
130
#endif
131
 
132
EXTERN_C_BEGIN
133
 
134
#if !defined(_petsc_mpi_uni)
135
 
1023 slepc 136
EXTERN void   ARsaupd_(MPI_Fint*,int*,char*,int*,const char*,int*,PetscReal*,PetscScalar*,
6 dsic.upv.es!jroman 137
                       int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int);
806 dsic.upv.es!antodo 138
EXTERN void   ARseupd_(MPI_Fint*,PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
6 dsic.upv.es!jroman 139
                       int*,PetscReal*,
1023 slepc 140
                       char*,int*,const char*,int*,PetscReal*,PetscScalar*,
6 dsic.upv.es!jroman 141
                       int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int,int);
142
 
143
#if !defined(PETSC_USE_COMPLEX)
1023 slepc 144
EXTERN void   ARnaupd_(MPI_Fint*,int*,char*,int*,const char*,int*,PetscReal*,PetscScalar*,
6 dsic.upv.es!jroman 145
                       int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int);
806 dsic.upv.es!antodo 146
EXTERN void   ARneupd_(MPI_Fint*,PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
6 dsic.upv.es!jroman 147
                       PetscReal*,int*,PetscReal*,PetscReal*,PetscReal*,
1023 slepc 148
                       char*,int*,const char*,int*,PetscReal*,PetscScalar*,
6 dsic.upv.es!jroman 149
                       int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int,int);
150
#else
1023 slepc 151
EXTERN void   ARnaupd_(MPI_Fint*,int*,char*,int*,const char*,int*,PetscReal*,PetscScalar*,
6 dsic.upv.es!jroman 152
                       int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscReal*,int*,
153
                       int,int);
806 dsic.upv.es!antodo 154
EXTERN void   ARneupd_(MPI_Fint*,PetscTruth*,char*,PetscTruth*,PetscScalar*,PetscScalar*,
6 dsic.upv.es!jroman 155
                       int*,PetscScalar*,PetscScalar*,
1023 slepc 156
                       char*,int*,const char*,int*,PetscReal*,PetscScalar*,
6 dsic.upv.es!jroman 157
                       int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscReal*,int*,
158
                       int,int,int);
159
#endif
160
 
161
#else
162
/* _petsc_mpi_uni */
163
 
1023 slepc 164
EXTERN void   ARsaupd__(int*,char*,int*,const char*,int*,PetscReal*,PetscScalar*,
6 dsic.upv.es!jroman 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)
806 dsic.upv.es!antodo 167
EXTERN void   ARseupd__(PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
6 dsic.upv.es!jroman 168
                       int*,PetscReal*,
1023 slepc 169
                       char*,int*,const char*,int*,PetscReal*,PetscScalar*,
6 dsic.upv.es!jroman 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)
172
 
173
#if !defined(PETSC_USE_COMPLEX)
1023 slepc 174
EXTERN void   ARnaupd__(int*,char*,int*,const char*,int*,PetscReal*,PetscScalar*,
6 dsic.upv.es!jroman 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)
806 dsic.upv.es!antodo 177
EXTERN void   ARneupd__(PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
6 dsic.upv.es!jroman 178
                       PetscReal*,int*,PetscReal*,PetscReal*,PetscReal*,
1023 slepc 179
                       char*,int*,const char*,int*,PetscReal*,PetscScalar*,
6 dsic.upv.es!jroman 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
1023 slepc 183
EXTERN void   ARnaupd__(int*,char*,int*,const char*,int*,PetscReal*,PetscScalar*,
6 dsic.upv.es!jroman 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)
806 dsic.upv.es!antodo 187
EXTERN void   ARneupd__(PetscTruth*,char*,PetscTruth*,PetscScalar*,PetscScalar*,
6 dsic.upv.es!jroman 188
                       int*,PetscScalar*,PetscScalar*,
1023 slepc 189
                       char*,int*,const char*,int*,PetscReal*,PetscScalar*,
6 dsic.upv.es!jroman 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
194
 
195
#endif
196
 
197
EXTERN_C_END
198
 
199
#endif
200