Subversion Repositories slepc-dev

Rev

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