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