Subversion Repositories slepc-dev

Rev

Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6 dsic.upv.es!jroman 1
/*
460 dsic.upv.es!antodo 2
 
6 dsic.upv.es!jroman 3
  Necessary routines in BLAS and LAPACK not included in petscblaslapack.f
4
 
5
*/
6
#if !defined(_SLEPCBLASLAPACK_H)
7
#define _SLEPCBLASLAPACK_H
8
#include "petscblaslapack.h"
476 dsic.upv.es!antodo 9
PETSC_EXTERN_CXX_BEGIN
6 dsic.upv.es!jroman 10
 
489 dsic.upv.es!antodo 11
#define SLEPC_CONCAT(a,b) a##b
495 dsic.upv.es!antodo 12
#define SLEPC_CONCAT3(a,b,c) a##b##c
6 dsic.upv.es!jroman 13
 
495 dsic.upv.es!antodo 14
#if defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
489 dsic.upv.es!antodo 15
#define SLEPC_FORTRAN(lcase,ucase) SLEPC_CONCAT(lcase,_)
6 dsic.upv.es!jroman 16
#elif defined(PETSC_HAVE_FORTRAN_CAPS)
489 dsic.upv.es!antodo 17
#define SLEPC_FORTRAN(lcase,ucase) ucase
6 dsic.upv.es!jroman 18
#else
489 dsic.upv.es!antodo 19
#define SLEPC_FORTRAN(lcase,ucase) lcase
6 dsic.upv.es!jroman 20
#endif
21
 
495 dsic.upv.es!antodo 22
#if defined(PETSC_BLASLAPACK_F2C)
23
 
489 dsic.upv.es!antodo 24
#if !defined(PETSC_USE_COMPLEX)
495 dsic.upv.es!antodo 25
/* real numbers */
26
#if defined(PETSC_USES_FORTRAN_SINGLE) || defined(PETSC_USE_SINGLE)
27
/* single precision */
28
#define SLEPC_BLASLAPACK(lcase,ucase) SLEPC_CONCAT3(s,lcase,_)
29
#define SLEPC_BLASLAPACK_REAL(lcase,ucase) SLEPC_CONCAT3(s,lcase,_)
30
#else
31
/* double precision */
32
#define SLEPC_BLASLAPACK(lcase,ucase) SLEPC_CONCAT3(d,lcase,_)
33
#define SLEPC_BLASLAPACK_REAL(lcase,ucase) SLEPC_CONCAT3(d,lcase,_)
34
#endif
35
#else
36
/* complex numbers */
37
#if defined(PETSC_USES_FORTRAN_SINGLE) || defined(PETSC_USE_SINGLE)
38
/* single precision */
39
#define SLEPC_BLASLAPACK(lcase,ucase) SLEPC_CONCAT3(c,lcase,_)
40
#define SLEPC_BLASLAPACK_REAL(lcase,ucase) SLEPC_CONCAT3(s,lcase,_)
41
#else
42
/* double precision */
43
#define SLEPC_BLASLAPACK(lcase,ucase) SLEPC_CONCAT3(z,lcase,_)
44
#define SLEPC_BLASLAPACK_REAL(lcase,ucase) SLEPC_CONCAT3(d,lcase,_)
45
#endif
46
#endif
489 dsic.upv.es!antodo 47
 
495 dsic.upv.es!antodo 48
#else
49
 
50
#if !defined(PETSC_USE_COMPLEX)
489 dsic.upv.es!antodo 51
/* real numbers */
52
#if defined(PETSC_USES_FORTRAN_SINGLE) || defined(PETSC_USE_SINGLE)
53
/* single precision */
54
#define SLEPC_BLASLAPACK(lcase,ucase) SLEPC_FORTRAN(SLEPC_CONCAT(s,lcase),SLEPC_CONCAT(S,ucase))
55
#define SLEPC_BLASLAPACK_REAL(lcase,ucase) SLEPC_FORTRAN(SLEPC_CONCAT(s,lcase),SLEPC_CONCAT(S,ucase))
6 dsic.upv.es!jroman 56
#else
489 dsic.upv.es!antodo 57
/* double precision */
58
#define SLEPC_BLASLAPACK(lcase,ucase) SLEPC_FORTRAN(SLEPC_CONCAT(d,lcase),SLEPC_CONCAT(D,ucase))
59
#define SLEPC_BLASLAPACK_REAL(lcase,ucase) SLEPC_FORTRAN(SLEPC_CONCAT(d,lcase),SLEPC_CONCAT(D,ucase))
6 dsic.upv.es!jroman 60
#endif
61
#else
489 dsic.upv.es!antodo 62
/* complex numbers */
63
#if defined(PETSC_USES_FORTRAN_SINGLE) || defined(PETSC_USE_SINGLE)
64
/* single precision */
65
#define SLEPC_BLASLAPACK(lcase,ucase) SLEPC_FORTRAN(SLEPC_CONCAT(c,lcase,C,ucase))
66
#define SLEPC_BLASLAPACK_REAL(lcase,ucase) SLEPC_FORTRAN(SLEPC_CONCAT(s,lcase),SLEPC_CONCAT(S,ucase))
67
#else
68
/* double precision */
69
#define SLEPC_BLASLAPACK(lcase,ucase) SLEPC_FORTRAN(SLEPC_CONCAT(z,lcase),SLEPC_CONCAT(Z,ucase))
70
#define SLEPC_BLASLAPACK_REAL(lcase,ucase) SLEPC_FORTRAN(SLEPC_CONCAT(d,lcase),SLEPC_CONCAT(D,ucase))
6 dsic.upv.es!jroman 71
#endif
495 dsic.upv.es!antodo 72
#endif
6 dsic.upv.es!jroman 73
 
74
#endif
75
 
489 dsic.upv.es!antodo 76
#if !defined(PETSC_BLASLAPACK_ESSL_ONLY)
77
#define LAlapy2_ SLEPC_BLASLAPACK_REAL(lapy2,LAPY2)
78
#endif
79
#define LAlaev2_ SLEPC_BLASLAPACK(laev2,LAEV2)
80
#define LAgehrd_ SLEPC_BLASLAPACK(gehrd,GEHRD)
81
#if !defined(PETSC_USE_COMPLEX)
82
#define LAorghr_ SLEPC_BLASLAPACK(orghr,ORGHR)
83
#else
84
#define LAorghr_ SLEPC_BLASLAPACK(unghr,UNGHR)
85
#endif
86
#define LAlanhs_ SLEPC_BLASLAPACK(lanhs,LANHS)
87
#define LAlange_ SLEPC_BLASLAPACK(lange,LANGE)
88
#define LAgetri_ SLEPC_BLASLAPACK(getri,GETRI)
89
#define LAhseqr_ SLEPC_BLASLAPACK(hseqr,HSEQR)
90
#define LAtrexc_ SLEPC_BLASLAPACK(trexc,TREXC)
91
#define LAtrevc_ SLEPC_BLASLAPACK(trevc,TREVC)
92
 
6 dsic.upv.es!jroman 93
EXTERN_C_BEGIN
94
 
460 dsic.upv.es!antodo 95
EXTERN PetscReal LAlapy2_(PetscReal*,PetscReal*);
96
EXTERN void      LAlaev2_(PetscScalar*,PetscScalar*,PetscScalar*,PetscReal*,PetscReal*,PetscReal*,PetscScalar*);
476 dsic.upv.es!antodo 97
EXTERN void      LAgehrd_(PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscScalar*,PetscScalar*,PetscBLASInt*,PetscBLASInt*);
98
EXTERN void      LAorghr_(PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscScalar*,PetscScalar*,PetscBLASInt*,PetscBLASInt*);
99
EXTERN PetscReal LAlanhs_(const char*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscReal*,PetscBLASInt);
100
EXTERN PetscReal LAlange_(const char*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscReal*,PetscBLASInt);
101
EXTERN void      LAgetri_(PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*);
460 dsic.upv.es!antodo 102
 
6 dsic.upv.es!jroman 103
#if !defined(PETSC_USE_COMPLEX)
476 dsic.upv.es!antodo 104
EXTERN void      LAhseqr_(const char*,const char*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscScalar*,PetscScalar*,PetscScalar*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt,PetscBLASInt);
105
EXTERN void      LAtrexc_(const char*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt);
106
EXTERN void      LAtrevc_(const char*,const char*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt,PetscBLASInt);
6 dsic.upv.es!jroman 107
#else
476 dsic.upv.es!antodo 108
EXTERN void      LAhseqr_(const char*,const char*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscScalar*,PetscScalar*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt,PetscBLASInt);
109
EXTERN void      LAtrexc_(const char*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt);
110
EXTERN void      LAtrevc_(const char*,const char*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscReal*,PetscBLASInt*,PetscBLASInt,PetscBLASInt);
6 dsic.upv.es!jroman 111
#endif
112
 
113
EXTERN_C_END
114
 
476 dsic.upv.es!antodo 115
PETSC_EXTERN_CXX_END
6 dsic.upv.es!jroman 116
#endif