Actual source code: blzpackp.h
1: /*
2: Private data structure used by the BLZPACK interface
4: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5: SLEPc - Scalable Library for Eigenvalue Problem Computations
6: Copyright (c) 2002-2009, Universidad 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: #include private/epsimpl.h
29: typedef struct {
30: PetscBLASInt block_size; /* block size */
31: PetscReal initial,final; /* computational interval */
32: PetscBLASInt slice; /* use spectrum slicing */
33: PetscBLASInt nsteps; /* maximum number of steps per run */
34: PetscBLASInt *istor;
35: PetscReal *rstor;
36: PetscScalar *u;
37: PetscScalar *v;
38: PetscScalar *eig;
39: } EPS_BLZPACK;
41: /*
42: Definition of routines from the BLZPACK package
43: */
45: #if defined(SLEPC_BLZPACK_HAVE_UNDERSCORE)
46: #define SLEPC_BLZPACK(lcase,ucase) lcase##_
47: #elif defined(SLEPC_BLZPACK_HAVE_CAPS)
48: #define SLEPC_BLZPACK(lcase,ucase) ucase
49: #else
50: #define SLEPC_BLZPACK(lcase,ucase) lcase
51: #endif
53: /*
54: These are real case, current version of BLZPACK only supports real
55: matrices
56: */
58: #if defined(PETSC_USE_SINGLE)
59: /*
60: For these machines we must call the single precision Fortran version
61: */
62: #define BLZpack_ SLEPC_BLZPACK(blzdrs,BLZDRS)
63: #else
64: #define BLZpack_ SLEPC_BLZPACK(blzdrd,BLZDRD)
65: #endif
67: #define BLZistorr_ SLEPC_BLZPACK(istorr,ISTORR)
68: #define BLZrstorr_ SLEPC_BLZPACK(rstorr,RSTORR)
72: EXTERN void BLZpack_(PetscBLASInt*,PetscReal*,PetscScalar*,PetscBLASInt*,PetscScalar*,
73: PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*);
75: EXTERN PetscBLASInt BLZistorr_(PetscBLASInt*,const char*,int);
76: EXTERN PetscReal BLZrstorr_(PetscReal*,char*,int);
80: #endif