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