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
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1672 slepc 5
   SLEPc - Scalable Library for Eigenvalue Problem Computations
2116 eromero 6
   Copyright (c) 2002-2010, Universidad Politecnica de Valencia, Spain
1672 slepc 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/>.
1376 slepc 21
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
6 dsic.upv.es!jroman 22
*/
23
 
24
#if !defined(__ARPACKP_H)
25
#define __ARPACKP_H
26
 
2283 jroman 27
#include <private/epsimpl.h>                /*I "slepceps.h" I*/
6 dsic.upv.es!jroman 28
 
29
typedef struct {
2216 jroman 30
  PetscBool   *select;
6 dsic.upv.es!jroman 31
  PetscScalar *workev;
32
  PetscScalar *workd;
33
  PetscScalar *workl;
1509 slepc 34
  PetscBLASInt
35
              lworkl;
6 dsic.upv.es!jroman 36
#if defined(PETSC_USE_COMPLEX)
37
  PetscReal  *rwork;
38
#endif
39
} EPS_ARPACK;
40
 
41
/*
42
   Definition of routines from the ARPACK package
43
*/
44
 
806 dsic.upv.es!antodo 45
#if defined(SLEPC_ARPACK_HAVE_UNDERSCORE)
46
#define SLEPC_ARPACK(lcase,ucase) lcase##_
47
#elif defined(SLEPC_ARPACK_HAVE_CAPS)
48
#define SLEPC_ARPACK(lcase,ucase) ucase
49
#else
50
#define SLEPC_ARPACK(lcase,ucase) lcase
51
#endif
6 dsic.upv.es!jroman 52
 
53
#if !defined(PETSC_USE_COMPLEX)
54
 
55
/*
56
    These are real case
57
*/
58
 
59
#if defined(PETSC_USES_FORTRAN_SINGLE)
60
/*
61
   For these machines we must call the single precision Fortran version
62
*/
806 dsic.upv.es!antodo 63
#define ARnaupd_ SLEPC_ARPACK(psnaupd,PSNAUPD)
64
#define ARneupd_ SLEPC_ARPACK(psneupd,PSNEUPD)
65
#define ARsaupd_ SLEPC_ARPACK(pssaupd,PSSAUPD)
66
#define ARseupd_ SLEPC_ARPACK(psseupd,PSSEUPD)
6 dsic.upv.es!jroman 67
 
68
#else
496 dsic.upv.es!antodo 69
 
806 dsic.upv.es!antodo 70
#define ARnaupd_ SLEPC_ARPACK(pdnaupd,PDNAUPD)
71
#define ARneupd_ SLEPC_ARPACK(pdneupd,PDNEUPD)
72
#define ARsaupd_ SLEPC_ARPACK(pdsaupd,PDSAUPD)
73
#define ARseupd_ SLEPC_ARPACK(pdseupd,PDSEUPD)
496 dsic.upv.es!antodo 74
 
6 dsic.upv.es!jroman 75
#endif
76
 
77
#else
78
/*
79
   Complex
80
*/
806 dsic.upv.es!antodo 81
#if defined(PETSC_USE_SINGLE)
6 dsic.upv.es!jroman 82
 
806 dsic.upv.es!antodo 83
#define ARnaupd_ SLEPC_ARPACK(pcnaupd,PCNAUPD)
84
#define ARneupd_ SLEPC_ARPACK(pcneupd,PCNEUPD)
496 dsic.upv.es!antodo 85
 
6 dsic.upv.es!jroman 86
#else
496 dsic.upv.es!antodo 87
 
806 dsic.upv.es!antodo 88
#define ARnaupd_ SLEPC_ARPACK(pznaupd,PZNAUPD)
89
#define ARneupd_ SLEPC_ARPACK(pzneupd,PZNEUPD)
496 dsic.upv.es!antodo 90
 
6 dsic.upv.es!jroman 91
#endif
92
 
93
#endif
94
 
95
EXTERN_C_BEGIN
96
 
2240 jroman 97
extern void   ARsaupd_(MPI_Fint*,PetscBLASInt*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,
1509 slepc 98
                       PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
99
                       PetscBLASInt*,PetscBLASInt*,int,int);
2240 jroman 100
extern void   ARseupd_(MPI_Fint*,PetscBool*,char*,PetscBool*,PetscReal*,PetscReal*,PetscBLASInt*,PetscReal*,
1509 slepc 101
                       char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,PetscBLASInt*,
102
                       PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,PetscBLASInt*,
103
                       PetscBLASInt*,int,int,int);
6 dsic.upv.es!jroman 104
 
105
#if !defined(PETSC_USE_COMPLEX)
2240 jroman 106
extern void   ARnaupd_(MPI_Fint*,PetscBLASInt*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,
1509 slepc 107
                       PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
108
                       PetscBLASInt*,PetscBLASInt*,int,int);
2240 jroman 109
extern void   ARneupd_(MPI_Fint*,PetscBool*,char*,PetscBool*,PetscReal*,PetscReal*,PetscReal*,PetscBLASInt*,PetscReal*,
1509 slepc 110
                       PetscReal*,PetscReal*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,
111
                       PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
112
                       PetscBLASInt*,PetscBLASInt*,int,int,int);
6 dsic.upv.es!jroman 113
#else
2240 jroman 114
extern void   ARnaupd_(MPI_Fint*,PetscBLASInt*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,
1509 slepc 115
                       PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
116
                       PetscBLASInt*,PetscReal*,PetscBLASInt*,int,int);
2240 jroman 117
extern void   ARneupd_(MPI_Fint*,PetscBool*,char*,PetscBool*,PetscScalar*,PetscScalar*,PetscBLASInt*,PetscScalar*,
1509 slepc 118
                       PetscScalar*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,PetscBLASInt*,
119
                       PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,PetscBLASInt*,
120
                       PetscReal*,PetscBLASInt*,int,int,int);
6 dsic.upv.es!jroman 121
#endif
122
 
123
EXTERN_C_END
124
 
125
#endif
126