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-2010, 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