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