Actual source code: slepcblaslapack.h

  1: /*
  2:   Necessary routines in BLAS and LAPACK not included in petscblaslapack.f

  4: */
  5: #if !defined(_SLEPCBLASLAPACK_H)
  6: #define _SLEPCBLASLAPACK_H

  8: #include "petscblaslapack.h"

 10: #if !defined(PETSC_USE_COMPLEX)

 12: /*
 13:     These are real case with no character string arguments
 14: */

 16: #if defined(PETSC_USES_FORTRAN_SINGLE) 
 17: /*
 18:    For these machines we must call the single precision Fortran version
 19: */
 20: #define DLARNV   SLARNV
 21: #define DLAPY2   SLAPY2
 22: #define DGELQF   SGELQF
 23: #define DORMLQ   SORMLQ
 24: #define DHSEQR   SHSEQR
 25: #define DTREVC   STREVC
 26: #define DGEHRD   SGEHRD
 27: #define DGEES    SGEES 
 28: #endif

 30: #if defined(PETSC_HAVE_FORTRAN_UNDERSCORE) || defined(PETSC_BLASLAPACK_F2C)
 31: #define LArnv_   dlarnv_
 32: #define LAlapy2_ dlapy2_
 33: #define LAgelqf_ dgelqf_
 34: #define LAormlq_ dormlq_
 35: #define LAhseqr_ dhseqr_
 36: #define LAtrevc_ dtrevc_
 37: #define LAgehrd_ dgehrd_
 38: #define LAgees_  dgees_
 39: #elif defined(PETSC_HAVE_FORTRAN_CAPS)
 40: #define LArnv_   DLARNV
 41: #define LAlapy2_ DLAPY2
 42: #define LAgelqf_ DGELQF
 43: #define LAormlq_ DORMLQ
 44: #define LAhseqr_ DHSEQR
 45: #define LAtrevc_ DTREVC
 46: #define LAgehrd_ DGEHRD
 47: #define LAgees_  DGEES 
 48: #else
 49: #define LArnv_   dlarnv
 50: #define LAlapy2_ dlapy2
 51: #define LAgelqf_ dgelqf
 52: #define LAormlq_ dormlq
 53: #define LAhseqr_ dhseqr
 54: #define LAtrevc_ dtrevc
 55: #define LAgehrd_ dgehrd
 56: #define LAgees_  dgees
 57: #endif

 59: #else
 60: /*
 61:    Complex with no character string arguments
 62: */
 63: #if defined(PETSC_USES_FORTRAN_SINGLE)
 64: #define ZLARNV   CLARNV
 65: #define ZGELQF   CGELQF
 66: #define ZUNMLQ   CUNMLQ
 67: #define ZHSEQR   CHSEQR
 68: #define ZTREVC   CTREVC
 69: #define ZGEHRD   CGEHRD
 70: #define ZGEES    CGEES 
 71: #endif

 73: #if defined(PETSC_HAVE_FORTRAN_UNDERSCORE) || defined(PETSC_BLASLAPACK_F2C)
 74: #define LArnv_   zlarnv_
 75: #define LAgelqf_ zgelqf_
 76: #define LAormlq_ zunmlq_
 77: #define LAhseqr_ zhseqr_
 78: #define LAtrevc_ ztrevc_
 79: #define LAgehrd_ zgehrd_
 80: #define LAgees_  zgees_ 
 81: #elif defined(PETSC_HAVE_FORTRAN_CAPS)
 82: #define LArnv_   ZLARNV
 83: #define LAgelqf_ ZGELQF
 84: #define LAormlq_ ZUNMLQ
 85: #define LAhseqr_ ZHSEQR
 86: #define LAtrevc_ ZTREVC
 87: #define LAgehrd_ ZGEHRD
 88: #define LAgees_  ZGEES 
 89: #else
 90: #define LArnv_   zlarnv
 91: #define LAgelqf_ zgelqf
 92: #define LAormlq_ zunmlq
 93: #define LAhseqr_ zhseqr
 94: #define LAtrevc_ ztrevc
 95: #define LAgehrd_ zgehrd
 96: #define LAgees_  zgees 
 97: #endif

 99: #endif

101: EXTERN_C_BEGIN

103: extern void   LArnv_(int*,int*,int*,PetscScalar*);
104: extern double LAlapy2_(double*,double*);
105: extern void   LAgelqf_(int*,int*,PetscScalar*,int*,PetscScalar*,PetscScalar*,int*,int*);
106: extern void   LAormlq_(char*,char*,int*,int*,int*,PetscScalar*,int*,PetscScalar*,PetscScalar*,int*,PetscScalar*,int*,int*,int,int);
107: extern void   LAgehrd_(int*,int*,int*,PetscScalar*,int*,PetscScalar*,PetscScalar*,int*,int*);
108: #if !defined(PETSC_USE_COMPLEX)
109: extern void   LAhseqr_(char*,char*,int*,int*,int*,PetscScalar*,int*,PetscScalar*,PetscScalar*,PetscScalar*,int*,PetscScalar*,int*,int*,int,int);
110: extern void   LAgees_(char*,char*,int*,int*,PetscScalar*,int*,int*,PetscScalar*,PetscScalar*,PetscScalar*,int*,PetscScalar*,int*,int*,int*);
111: extern void   LAtrevc_(char*,char*,int*,int*,PetscScalar*,int*,PetscScalar*,int*,PetscScalar*,int*,int*,int*,PetscScalar*,int*,int,int);
112: #else
113: extern void   LAhseqr_(char*,char*,int*,int*,int*,PetscScalar*,int*,PetscScalar*,PetscScalar*,int*,PetscScalar*,int*,int*,int,int);
114: extern void   LAgees_(char*,char*,int*,int*,PetscScalar*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscScalar*,int*,PetscReal*,int*,int*);
115: extern void   LAtrevc_(char*,char*,int*,int*,PetscScalar*,int*,PetscScalar*,int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscReal*,int*,int,int);
116: #endif

118: EXTERN_C_END

120: #endif