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
 
1525 slepc 27
#include "private/epsimpl.h"
6 dsic.upv.es!jroman 28
 
29
typedef struct {
1509 slepc 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;
6 dsic.upv.es!jroman 39
} EPS_BLZPACK;
40
 
41
/*
42
   Definition of routines from the BLZPACK package
43
*/
44
 
806 dsic.upv.es!antodo 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
6 dsic.upv.es!jroman 52
 
53
/*
54
    These are real case, current version of BLZPACK only supports real
55
    matrices
56
*/
57
 
806 dsic.upv.es!antodo 58
#if defined(PETSC_USE_SINGLE)
6 dsic.upv.es!jroman 59
/*
60
   For these machines we must call the single precision Fortran version
61
*/
806 dsic.upv.es!antodo 62
#define BLZpack_ SLEPC_BLZPACK(blzdrs,BLZDRS)
496 dsic.upv.es!antodo 63
#else
806 dsic.upv.es!antodo 64
#define BLZpack_ SLEPC_BLZPACK(blzdrd,BLZDRD)
6 dsic.upv.es!jroman 65
#endif
66
 
806 dsic.upv.es!antodo 67
#define BLZistorr_ SLEPC_BLZPACK(istorr,ISTORR)
68
#define BLZrstorr_ SLEPC_BLZPACK(rstorr,RSTORR)
6 dsic.upv.es!jroman 69
 
70
EXTERN_C_BEGIN
71
 
1509 slepc 72
EXTERN void      BLZpack_(PetscBLASInt*,PetscReal*,PetscScalar*,PetscBLASInt*,PetscScalar*,
73
                          PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*);
6 dsic.upv.es!jroman 74
 
1509 slepc 75
EXTERN PetscBLASInt BLZistorr_(PetscBLASInt*,const char*,int);
806 dsic.upv.es!antodo 76
EXTERN PetscReal BLZrstorr_(PetscReal*,char*,int);
6 dsic.upv.es!jroman 77
 
78
EXTERN_C_END
79
 
80
#endif
81