/*
|
/*
|
Private data structure used by the ARPACK interface
|
Private data structure used by the ARPACK interface
|
|
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
SLEPc - Scalable Library for Eigenvalue Problem Computations
|
SLEPc - Scalable Library for Eigenvalue Problem Computations
|
Copyright (c) 2002-2010, Universidad Politecnica de Valencia, Spain
|
Copyright (c) 2002-2011, Universitat Politecnica de Valencia, Spain
|
|
|
This file is part of SLEPc.
|
This file is part of SLEPc.
|
|
|
SLEPc is free software: you can redistribute it and/or modify it under the
|
SLEPc is free software: you can redistribute it and/or modify it under the
|
terms of version 3 of the GNU Lesser General Public License as published by
|
terms of version 3 of the GNU Lesser General Public License as published by
|
the Free Software Foundation.
|
the Free Software Foundation.
|
|
|
SLEPc is distributed in the hope that it will be useful, but WITHOUT ANY
|
SLEPc is distributed in the hope that it will be useful, but WITHOUT ANY
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
|
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
|
more details.
|
more details.
|
|
|
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
along with SLEPc. If not, see <http://www.gnu.org/licenses/>.
|
along with SLEPc. If not, see <http://www.gnu.org/licenses/>.
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
*/
|
*/
|
|
|
#if !defined(__ARPACKP_H)
|
#if !defined(__ARPACKP_H)
|
#define __ARPACKP_H
|
#define __ARPACKP_H
|
|
|
typedef struct {
|
typedef struct {
|
PetscBool *select;
|
PetscBool *select;
|
PetscScalar *workev;
|
PetscScalar *workev;
|
PetscScalar *workd;
|
PetscScalar *workd;
|
PetscScalar *workl;
|
PetscScalar *workl;
|
PetscBLASInt
|
PetscBLASInt
|
lworkl;
|
lworkl;
|
#if defined(PETSC_USE_COMPLEX)
|
#if defined(PETSC_USE_COMPLEX)
|
PetscReal *rwork;
|
PetscReal *rwork;
|
#endif
|
#endif
|
} EPS_ARPACK;
|
} EPS_ARPACK;
|
|
|
/*
|
/*
|
Definition of routines from the ARPACK package
|
Definition of routines from the ARPACK package
|
*/
|
*/
|
|
|
#if defined(SLEPC_ARPACK_HAVE_UNDERSCORE)
|
#if defined(SLEPC_ARPACK_HAVE_UNDERSCORE)
|
#define SLEPC_ARPACK(lcase,ucase) lcase##_
|
#define SLEPC_ARPACK(lcase,ucase) lcase##_
|
#elif defined(SLEPC_ARPACK_HAVE_CAPS)
|
#elif defined(SLEPC_ARPACK_HAVE_CAPS)
|
#define SLEPC_ARPACK(lcase,ucase) ucase
|
#define SLEPC_ARPACK(lcase,ucase) ucase
|
#else
|
#else
|
#define SLEPC_ARPACK(lcase,ucase) lcase
|
#define SLEPC_ARPACK(lcase,ucase) lcase
|
#endif
|
#endif
|
|
|
#if !defined(PETSC_USE_COMPLEX)
|
#if !defined(PETSC_USE_COMPLEX)
|
|
|
/*
|
/*
|
These are real case
|
These are real case
|
*/
|
*/
|
|
|
#if defined(PETSC_USES_FORTRAN_SINGLE)
|
#if defined(PETSC_USES_FORTRAN_SINGLE)
|
/*
|
/*
|
For these machines we must call the single precision Fortran version
|
For these machines we must call the single precision Fortran version
|
*/
|
*/
|
#define ARnaupd_ SLEPC_ARPACK(psnaupd,PSNAUPD)
|
#define ARnaupd_ SLEPC_ARPACK(psnaupd,PSNAUPD)
|
#define ARneupd_ SLEPC_ARPACK(psneupd,PSNEUPD)
|
#define ARneupd_ SLEPC_ARPACK(psneupd,PSNEUPD)
|
#define ARsaupd_ SLEPC_ARPACK(pssaupd,PSSAUPD)
|
#define ARsaupd_ SLEPC_ARPACK(pssaupd,PSSAUPD)
|
#define ARseupd_ SLEPC_ARPACK(psseupd,PSSEUPD)
|
#define ARseupd_ SLEPC_ARPACK(psseupd,PSSEUPD)
|
|
|
#else
|
#else
|
|
|
#define ARnaupd_ SLEPC_ARPACK(pdnaupd,PDNAUPD)
|
#define ARnaupd_ SLEPC_ARPACK(pdnaupd,PDNAUPD)
|
#define ARneupd_ SLEPC_ARPACK(pdneupd,PDNEUPD)
|
#define ARneupd_ SLEPC_ARPACK(pdneupd,PDNEUPD)
|
#define ARsaupd_ SLEPC_ARPACK(pdsaupd,PDSAUPD)
|
#define ARsaupd_ SLEPC_ARPACK(pdsaupd,PDSAUPD)
|
#define ARseupd_ SLEPC_ARPACK(pdseupd,PDSEUPD)
|
#define ARseupd_ SLEPC_ARPACK(pdseupd,PDSEUPD)
|
|
|
#endif
|
#endif
|
|
|
#else
|
#else
|
/*
|
/*
|
Complex
|
Complex
|
*/
|
*/
|
#if defined(PETSC_USE_SINGLE)
|
#if defined(PETSC_USE_SINGLE)
|
|
|
#define ARnaupd_ SLEPC_ARPACK(pcnaupd,PCNAUPD)
|
#define ARnaupd_ SLEPC_ARPACK(pcnaupd,PCNAUPD)
|
#define ARneupd_ SLEPC_ARPACK(pcneupd,PCNEUPD)
|
#define ARneupd_ SLEPC_ARPACK(pcneupd,PCNEUPD)
|
|
|
#else
|
#else
|
|
|
#define ARnaupd_ SLEPC_ARPACK(pznaupd,PZNAUPD)
|
#define ARnaupd_ SLEPC_ARPACK(pznaupd,PZNAUPD)
|
#define ARneupd_ SLEPC_ARPACK(pzneupd,PZNEUPD)
|
#define ARneupd_ SLEPC_ARPACK(pzneupd,PZNEUPD)
|
|
|
#endif
|
#endif
|
|
|
#endif
|
#endif
|
|
|
EXTERN_C_BEGIN
|
EXTERN_C_BEGIN
|
|
|
extern void ARsaupd_(MPI_Fint*,PetscBLASInt*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,
|
extern void ARsaupd_(MPI_Fint*,PetscBLASInt*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,
|
PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
|
PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
|
PetscBLASInt*,PetscBLASInt*,int,int);
|
PetscBLASInt*,PetscBLASInt*,int,int);
|
extern void ARseupd_(MPI_Fint*,PetscBool*,char*,PetscBool*,PetscReal*,PetscReal*,PetscBLASInt*,PetscReal*,
|
extern void ARseupd_(MPI_Fint*,PetscBool*,char*,PetscBool*,PetscReal*,PetscReal*,PetscBLASInt*,PetscReal*,
|
char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,PetscBLASInt*,
|
char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,PetscBLASInt*,
|
PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,PetscBLASInt*,
|
PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,PetscBLASInt*,
|
PetscBLASInt*,int,int,int);
|
PetscBLASInt*,int,int,int);
|
|
|
#if !defined(PETSC_USE_COMPLEX)
|
#if !defined(PETSC_USE_COMPLEX)
|
extern void ARnaupd_(MPI_Fint*,PetscBLASInt*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,
|
extern void ARnaupd_(MPI_Fint*,PetscBLASInt*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,
|
PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
|
PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
|
PetscBLASInt*,PetscBLASInt*,int,int);
|
PetscBLASInt*,PetscBLASInt*,int,int);
|
extern void ARneupd_(MPI_Fint*,PetscBool*,char*,PetscBool*,PetscReal*,PetscReal*,PetscReal*,PetscBLASInt*,PetscReal*,
|
extern void ARneupd_(MPI_Fint*,PetscBool*,char*,PetscBool*,PetscReal*,PetscReal*,PetscReal*,PetscBLASInt*,PetscReal*,
|
PetscReal*,PetscReal*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,
|
PetscReal*,PetscReal*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,
|
PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
|
PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
|
PetscBLASInt*,PetscBLASInt*,int,int,int);
|
PetscBLASInt*,PetscBLASInt*,int,int,int);
|
#else
|
#else
|
extern void ARnaupd_(MPI_Fint*,PetscBLASInt*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,
|
extern void ARnaupd_(MPI_Fint*,PetscBLASInt*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,
|
PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
|
PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,
|
PetscBLASInt*,PetscReal*,PetscBLASInt*,int,int);
|
PetscBLASInt*,PetscReal*,PetscBLASInt*,int,int);
|
extern void ARneupd_(MPI_Fint*,PetscBool*,char*,PetscBool*,PetscScalar*,PetscScalar*,PetscBLASInt*,PetscScalar*,
|
extern void ARneupd_(MPI_Fint*,PetscBool*,char*,PetscBool*,PetscScalar*,PetscScalar*,PetscBLASInt*,PetscScalar*,
|
PetscScalar*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,PetscBLASInt*,
|
PetscScalar*,char*,PetscBLASInt*,const char*,PetscBLASInt*,PetscReal*,PetscScalar*,PetscBLASInt*,
|
PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,PetscBLASInt*,
|
PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*,PetscBLASInt*,
|
PetscReal*,PetscBLASInt*,int,int,int);
|
PetscReal*,PetscBLASInt*,int,int,int);
|
#endif
|
#endif
|
|
|
EXTERN_C_END
|
EXTERN_C_END
|
|
|
#endif
|
#endif
|
|
|
|
|
|
|