Actual source code: blzpackp.h
slepc-3.10.1 2018-10-23
Report Typos and Errors

      1: /*
      2:    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      3:    SLEPc - Scalable Library for Eigenvalue Problem Computations
      4:    Copyright (c) 2002-2018, 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: */

     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: PETSC_EXTERN void BLZpack_(PetscBLASInt*,PetscReal*,PetscScalar*,PetscBLASInt*,PetscScalar*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscScalar*);

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

     62: #endif