Actual source code: slepcblaslapack_mangle.h
slepc-3.15.2 2021-09-20
1: /*
2: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
3: SLEPc - Scalable Library for Eigenvalue Problem Computations
4: Copyright (c) 2002-2021, 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: */
11: #if !defined(SLEPCBLASLAPACK_MANGLE_H)
12: #define SLEPCBLASLAPACK_MANGLE_H
14: /* LAPACK functions without string parameters */
15: #define BLASrot_ PETSCBLAS(rot,ROT)
16: #define BLASMIXEDrot_ PETSCBLASMIXED(rot,ROT)
17: #if !defined(SLEPC_MISSING_LAPACK_LAEV2)
18: #define LAPACKlaev2_ PETSCBLAS(laev2,LAEV2)
19: #endif
20: #if !defined(SLEPC_MISSING_LAPACK_GEHRD)
21: #define LAPACKgehrd_ PETSCBLAS(gehrd,GEHRD)
22: #endif
23: #if !defined(SLEPC_MISSING_LAPACK_LARFG)
24: #define LAPACKlarfg_ PETSCBLAS(larfg,LARFG)
25: #endif
26: #if !defined(SLEPC_MISSING_LAPACK_LAG2)
27: #define LAPACKlag2_ PETSCBLASREAL(lag2,LAG2)
28: #endif
29: #if !defined(SLEPC_MISSING_LAPACK_LASV2)
30: #define LAPACKlasv2_ PETSCBLASREAL(lasv2,LASV2)
31: #endif
32: #if !defined(SLEPC_MISSING_LAPACK_LARTG)
33: #define LAPACKlartg_ PETSCBLAS(lartg,LARTG)
34: #define LAPACKREALlartg_ PETSCBLASREAL(lartg,LARTG)
35: #endif
36: #if !defined(SLEPC_MISSING_LAPACK_LAED4)
37: #define LAPACKlaed4_ PETSCBLASREAL(laed4,LAED4)
38: #endif
39: #if !defined(SLEPC_MISSING_LAPACK_LAMRG)
40: #define LAPACKlamrg_ PETSCBLASREAL(lamrg,LAMRG)
41: #endif
42: #if !defined(SLEPC_MISSING_LAPACK_ORGHR)
43: #if !defined(PETSC_USE_COMPLEX)
44: #define LAPACKorghr_ PETSCBLAS(orghr,ORGHR)
45: #else
46: #define LAPACKorghr_ PETSCBLAS(unghr,UNGHR)
47: #endif
48: #endif
49: #if !defined(SLEPC_MISSING_LAPACK_TGEXC)
50: #define LAPACKtgexc_ PETSCBLAS(tgexc,TGEXC)
51: #endif
52: #define LAPACKgeqp3_ PETSCBLAS(geqp3,GEQP3)
54: /* LAPACK functions with string parameters */
56: /* same name for real and complex */
57: #define BLAStrmm_ PETSCBLAS(trmm,TRMM)
58: #if !defined(SLEPC_MISSING_LAPACK_LANHS)
59: #define LAPACKlanhs_ PETSCBLAS(lanhs,LANHS)
60: #endif
61: #define LAPACKlange_ PETSCBLAS(lange,LANGE)
62: #if !defined(SLEPC_MISSING_LAPACK_LARF)
63: #define LAPACKlarf_ PETSCBLAS(larf,LARF)
64: #endif
65: #define LAPACKlansy_ PETSCBLAS(lansy,LANSY)
66: #if !defined(SLEPC_MISSING_LAPACK_TRSYL)
67: #define LAPACKtrsyl_ PETSCBLAS(trsyl,TRSYL)
68: #endif
69: #define LAPACKtrtri_ PETSCBLAS(trtri,TRTRI)
71: /* subroutines in which we use only the real version, do not care whether they have different name */
72: #if !defined(SLEPC_MISSING_LAPACK_STEVR)
73: #define LAPACKstevr_ PETSCBLASREAL(stevr,STEVR)
74: #endif
75: #if !defined(SLEPC_MISSING_LAPACK_BDSDC)
76: #define LAPACKbdsdc_ PETSCBLASREAL(bdsdc,BDSDC)
77: #endif
78: #define LAPACKlamch_ PETSCBLASREAL(lamch,LAMCH)
79: #define LAPACKlamc3_ PETSCBLASREAL(lamc3,LAMC3)
81: /* subroutines with different name in real/complex */
82: #if !defined(PETSC_USE_COMPLEX)
83: #if !defined(SLEPC_MISSING_LAPACK_ORGTR)
84: #define LAPACKorgtr_ PETSCBLAS(orgtr,ORGTR)
85: #endif
86: #if !defined(SLEPC_MISSING_LAPACK_SYTRD)
87: #define LAPACKsytrd_ PETSCBLAS(sytrd,SYTRD)
88: #endif
89: #define LAPACKsyevd_ PETSCBLAS(syevd,SYEVD)
90: #define LAPACKsygvd_ PETSCBLAS(sygvd,SYGVD)
91: #else
92: #if !defined(SLEPC_MISSING_LAPACK_ORGTR)
93: #define LAPACKorgtr_ PETSCBLAS(ungtr,UNGTR)
94: #endif
95: #if !defined(SLEPC_MISSING_LAPACK_SYTRD)
96: #define LAPACKsytrd_ PETSCBLAS(hetrd,HETRD)
97: #endif
98: #define LAPACKsyevd_ PETSCBLAS(heevd,HEEVD)
99: #define LAPACKsygvd_ PETSCBLAS(hegvd,HEGVD)
100: #endif
102: /* subroutines with different signature in real/complex */
103: #define LAPACKggev_ PETSCBLAS(ggev,GGEV)
104: #if !defined(SLEPC_MISSING_LAPACK_GGSVD)
105: #define LAPACKggsvd_ PETSCBLAS(ggsvd,GGSVD)
106: #endif
107: #if !defined(SLEPC_MISSING_LAPACK_GGSVD3)
108: #define LAPACKggsvd3_ PETSCBLAS(ggsvd3,GGSVD3)
109: #endif
110: #if !defined(SLEPC_MISSING_LAPACK_TREVC)
111: #define LAPACKtrevc_ PETSCBLAS(trevc,TREVC)
112: #endif
113: #define LAPACKgeevx_ PETSCBLAS(geevx,GEEVX)
114: #define LAPACKgees_ PETSCBLAS(gees,GEES)
115: #if !defined(SLEPC_MISSING_LAPACK_TREXC)
116: #define LAPACKtrexc_ PETSCBLAS(trexc,TREXC)
117: #endif
118: #define LAPACKgesdd_ PETSCBLAS(gesdd,GESDD)
119: #if !defined(SLEPC_MISSING_LAPACK_TGEVC)
120: #define LAPACKtgevc_ PETSCBLAS(tgevc,TGEVC)
121: #endif
122: #if !defined(SLEPC_MISSING_LAPACK_HSEIN)
123: #define LAPACKhsein_ PETSCBLAS(hsein,HSEIN)
124: #endif
125: #if !defined(SLEPC_MISSING_LAPACK_STEDC)
126: #define LAPACKstedc_ PETSCBLAS(stedc,STEDC)
127: #endif
128: #if !defined(SLEPC_MISSING_LAPACK_LASCL)
129: #define LAPACKlascl_ PETSCBLAS(lascl,LASCL)
130: #endif
132: #if defined(PETSC_HAVE_COMPLEX)
133: /* complex subroutines to be called with scalar-type=real */
134: #define BLASCOMPLEXgemm_ PETSCBLASCOMPLEX(gemm,GEMM)
135: #define BLASCOMPLEXscal_ PETSCBLASCOMPLEX(scal,SCAL)
136: #define LAPACKCOMPLEXgesv_ PETSCBLASCOMPLEX(gesv,GESV)
137: #endif
139: #endif