Subversion Repositories slepc-dev

Rev

Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1089 Rev 1376
/*
/*
   Private data structure used by the BLZPACK interface
   Private data structure used by the BLZPACK interface
 
 
 
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
      SLEPc - Scalable Library for Eigenvalue Problem Computations
 
      Copyright (c) 2002-2007, Universidad Politecnica de Valencia, Spain
 
 
 
      This file is part of SLEPc. See the README file for conditions of use
 
      and additional information.
 
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
*/
 
 
#if !defined(__BLZPACKP_H)
#if !defined(__BLZPACKP_H)
#define __BLZPACKP_H
#define __BLZPACKP_H
 
 
#include "src/eps/epsimpl.h"
#include "src/eps/epsimpl.h"
 
 
typedef struct {
typedef struct {
  int         block_size;      /* block size */
  int         block_size;      /* block size */
  PetscReal   initial,final;   /* computational interval */
  PetscReal   initial,final;   /* computational interval */
  int         slice;           /* use spectrum slicing */
  int         slice;           /* use spectrum slicing */
  int         nsteps;          /* maximum number of steps per run */
  int         nsteps;          /* maximum number of steps per run */
  int         *istor;
  int         *istor;
  PetscReal   *rstor;
  PetscReal   *rstor;
  PetscScalar *u;
  PetscScalar *u;
  PetscScalar *v;
  PetscScalar *v;
  PetscScalar *eig;
  PetscScalar *eig;
} EPS_BLZPACK;
} EPS_BLZPACK;
 
 
/*
/*
   Definition of routines from the BLZPACK package
   Definition of routines from the BLZPACK package
*/
*/
 
 
#if defined(SLEPC_BLZPACK_HAVE_UNDERSCORE)
#if defined(SLEPC_BLZPACK_HAVE_UNDERSCORE)
#define SLEPC_BLZPACK(lcase,ucase) lcase##_
#define SLEPC_BLZPACK(lcase,ucase) lcase##_
#elif defined(SLEPC_BLZPACK_HAVE_CAPS)
#elif defined(SLEPC_BLZPACK_HAVE_CAPS)
#define SLEPC_BLZPACK(lcase,ucase) ucase
#define SLEPC_BLZPACK(lcase,ucase) ucase
#else
#else
#define SLEPC_BLZPACK(lcase,ucase) lcase
#define SLEPC_BLZPACK(lcase,ucase) lcase
#endif
#endif
 
 
/*
/*
    These are real case, current version of BLZPACK only supports real
    These are real case, current version of BLZPACK only supports real
    matrices
    matrices
*/
*/
 
 
#if defined(PETSC_USE_SINGLE)
#if defined(PETSC_USE_SINGLE)
/*
/*
   For these machines we must call the single precision Fortran version
   For these machines we must call the single precision Fortran version
*/
*/
#define BLZpack_ SLEPC_BLZPACK(blzdrs,BLZDRS)
#define BLZpack_ SLEPC_BLZPACK(blzdrs,BLZDRS)
#else
#else
#define BLZpack_ SLEPC_BLZPACK(blzdrd,BLZDRD)
#define BLZpack_ SLEPC_BLZPACK(blzdrd,BLZDRD)
#endif
#endif
 
 
#define BLZistorr_ SLEPC_BLZPACK(istorr,ISTORR)
#define BLZistorr_ SLEPC_BLZPACK(istorr,ISTORR)
#define BLZrstorr_ SLEPC_BLZPACK(rstorr,RSTORR)
#define BLZrstorr_ SLEPC_BLZPACK(rstorr,RSTORR)
 
 
EXTERN_C_BEGIN
EXTERN_C_BEGIN
 
 
EXTERN void      BLZpack_(int*,PetscReal*,PetscScalar*,int*,PetscScalar*,
EXTERN void      BLZpack_(int*,PetscReal*,PetscScalar*,int*,PetscScalar*,
                          PetscScalar*,int*,int*,PetscScalar*,PetscScalar*);
                          PetscScalar*,int*,int*,PetscScalar*,PetscScalar*);
 
 
EXTERN int       BLZistorr_(int*,const char*,int);
EXTERN int       BLZistorr_(int*,const char*,int);
EXTERN PetscReal BLZrstorr_(PetscReal*,char*,int);
EXTERN PetscReal BLZrstorr_(PetscReal*,char*,int);
 
 
EXTERN_C_END
EXTERN_C_END
 
 
#endif
#endif