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 BLZPACK 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(__BLZPACKP_H)
25
#define __BLZPACKP_H
26
 
27
typedef struct {
1509 slepc 28
  PetscBLASInt         block_size;      /* block size */
29
  PetscReal            initial,final;   /* computational interval */
30
  PetscBLASInt         slice;           /* use spectrum slicing */
31
  PetscBLASInt         nsteps;          /* maximum number of steps per run */
32
  PetscBLASInt         *istor;
33
  PetscReal            *rstor;
34
  PetscScalar          *u;
35
  PetscScalar          *v;
36
  PetscScalar          *eig;
6 dsic.upv.es!jroman 37
} EPS_BLZPACK;
38
 
39
/*
40
   Definition of routines from the BLZPACK package
41
*/
42
 
806 dsic.upv.es!antodo 43
#if defined(SLEPC_BLZPACK_HAVE_UNDERSCORE)
44
#define SLEPC_BLZPACK(lcase,ucase) lcase##_
45
#elif defined(SLEPC_BLZPACK_HAVE_CAPS)
46
#define SLEPC_BLZPACK(lcase,ucase) ucase
47
#else
48
#define SLEPC_BLZPACK(lcase,ucase) lcase
49
#endif
6 dsic.upv.es!jroman 50
 
51
/*
52
    These are real case, current version of BLZPACK only supports real
53
    matrices
54
*/
55
 
806 dsic.upv.es!antodo 56
#if defined(PETSC_USE_SINGLE)
6 dsic.upv.es!jroman 57
/*
58
   For these machines we must call the single precision Fortran version
59
*/
806 dsic.upv.es!antodo 60
#define BLZpack_ SLEPC_BLZPACK(blzdrs,BLZDRS)
496 dsic.upv.es!antodo 61
#else
806 dsic.upv.es!antodo 62
#define BLZpack_ SLEPC_BLZPACK(blzdrd,BLZDRD)
6 dsic.upv.es!jroman 63
#endif
64
 
806 dsic.upv.es!antodo 65
#define BLZistorr_ SLEPC_BLZPACK(istorr,ISTORR)
66
#define BLZrstorr_ SLEPC_BLZPACK(rstorr,RSTORR)
6 dsic.upv.es!jroman 67
 
68
EXTERN_C_BEGIN
69
 
2240 jroman 70
extern void      BLZpack_(PetscBLASInt*,PetscReal*,PetscScalar*,PetscBLASInt*,PetscScalar*,
1509 slepc 71
                          PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*);
6 dsic.upv.es!jroman 72
 
2240 jroman 73
extern PetscBLASInt BLZistorr_(PetscBLASInt*,const char*,int);
74
extern PetscReal BLZrstorr_(PetscReal*,char*,int);
6 dsic.upv.es!jroman 75
 
76
EXTERN_C_END
77
 
78
#endif
79