Actual source code: blzpackp.h

slepc-3.11.2 2019-07-30
Report Typos and Errors
  1: /*
  2:    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  3:    SLEPc - Scalable Library for Eigenvalue Problem Computations
  4:    Copyright (c) 2002-2019, Universitat Politecnica de Valencia, Spain

  6:    This file is part of SLEPc.
  7:    SLEPc is distributed under a 2-clause BSD license (see LICENSE).
  8:    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  9: */
 10: /*
 11:    Private data structure used by the BLZPACK interface
 12: */

 14: #if !defined(SLEPC_BLZPACK_H)
 15: #define SLEPC_BLZPACK_H

 17: typedef struct {
 18:   PetscBLASInt         block_size;      /* block size */
 19:   PetscBLASInt         slice;           /* use spectrum slicing */
 20:   PetscBLASInt         nsteps;          /* maximum number of steps per run */
 21:   PetscBLASInt         *istor;
 22:   PetscReal            *rstor;
 23:   PetscScalar          *u;
 24:   PetscScalar          *v;
 25:   PetscScalar          *eig;
 26: } EPS_BLZPACK;

 28: /*
 29:    Definition of routines from the BLZPACK package
 30: */

 32: #if defined(SLEPC_BLZPACK_HAVE_UNDERSCORE)
 33: #define SLEPC_BLZPACK(lcase,ucase) lcase##_
 34: #elif defined(SLEPC_BLZPACK_HAVE_CAPS)
 35: #define SLEPC_BLZPACK(lcase,ucase) ucase
 36: #else
 37: #define SLEPC_BLZPACK(lcase,ucase) lcase
 38: #endif

 40: /*
 41:     These are real case, current version of BLZPACK only supports real
 42:     matrices
 43: */

 45: #if defined(PETSC_USE_SINGLE)
 46: /*
 47:    For these machines we must call the single precision Fortran version
 48: */
 49: #define BLZpack_ SLEPC_BLZPACK(blzdrs,BLZDRS)
 50: #else
 51: #define BLZpack_ SLEPC_BLZPACK(blzdrd,BLZDRD)
 52: #endif

 54: #define BLZistorr_ SLEPC_BLZPACK(istorr,ISTORR)
 55: #define BLZrstorr_ SLEPC_BLZPACK(rstorr,RSTORR)

 57: SLEPC_EXTERN void BLZpack_(PetscBLASInt*,PetscReal*,PetscScalar*,PetscBLASInt*,PetscScalar*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*);

 59: SLEPC_EXTERN PetscBLASInt BLZistorr_(PetscBLASInt*,const char*,int);
 60: SLEPC_EXTERN PetscReal BLZrstorr_(PetscReal*,char*,int);

 62: #endif