Actual source code: slepcblaslapack_mangle.h
slepc-3.11.0 2019-03-29
1: /*
2: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
3: SLEPc - Scalable Library for Eigenvalue Problem Computations
4: Copyright (c) 2002-2019, 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: */
14: /* LAPACK functions without string parameters */
15: #define BLASrot_ PETSCBLAS(rot,ROT)
16: #define BLASMIXEDrot_ PETSCBLASMIXED(rot,ROT)
17: #define LAPACKlaev2_ PETSCBLAS(laev2,LAEV2)
18: #define LAPACKgehrd_ PETSCBLAS(gehrd,GEHRD)
19: #define LAPACKgelqf_ PETSCBLAS(gelqf,GELQF)
20: #define LAPACKlarfg_ PETSCBLAS(larfg,LARFG)
21: #define LAPACKlag2_ PETSCBLASREAL(lag2,LAG2)
22: #define LAPACKlasv2_ PETSCBLASREAL(lasv2,LASV2)
23: #define LAPACKlartg_ PETSCBLAS(lartg,LARTG)
24: #define LAPACKREALlartg_ PETSCBLASREAL(lartg,LARTG)
25: #define LAPACKlaln2_ PETSCBLASREAL(laln2,LALN2)
26: #define LAPACKlaed4_ PETSCBLASREAL(laed4,LAED4)
27: #define LAPACKlamrg_ PETSCBLASREAL(lamrg,LAMRG)
28: #define LAPACKlapy2_ PETSCBLASREAL(lapy2,LAPY2)
29: #if !defined(PETSC_USE_COMPLEX)
30: #define LAPACKorghr_ PETSCBLAS(orghr,ORGHR)
31: #else
32: #define LAPACKorghr_ PETSCBLAS(unghr,UNGHR)
33: #endif
34: #define LAPACKtgexc_ PETSCBLAS(tgexc,TGEXC)
35: #define LAPACKgeqp3_ PETSCBLAS(geqp3,GEQP3)
37: /* LAPACK functions with string parameters */
39: /* same name for real and complex */
40: #define BLAStrmm_ PETSCBLAS(trmm,TRMM)
41: #define LAPACKlanhs_ PETSCBLAS(lanhs,LANHS)
42: #define LAPACKlange_ PETSCBLAS(lange,LANGE)
43: #define LAPACKpbtrf_ PETSCBLAS(pbtrf,PBTRF)
44: #define LAPACKlarf_ PETSCBLAS(larf,LARF)
45: #define LAPACKlacpy_ PETSCBLAS(lacpy,LACPY)
46: #define LAPACKlansy_ PETSCBLAS(lansy,LANSY)
47: #define LAPACKlaset_ PETSCBLAS(laset,LASET)
48: #define LAPACKtrsyl_ PETSCBLAS(trsyl,TRSYL)
49: #define LAPACKtrtri_ PETSCBLAS(trtri,TRTRI)
51: /* subroutines in which we use only the real version, do not care whether they have different name */
52: #define LAPACKstevr_ PETSCBLASREAL(stevr,STEVR)
53: #define LAPACKbdsdc_ PETSCBLASREAL(bdsdc,BDSDC)
54: #define LAPACKlamch_ PETSCBLASREAL(lamch,LAMCH)
55: #define LAPACKlamc3_ PETSCBLASREAL(lamc3,LAMC3)
57: /* subroutines with different name in real/complex */
58: #if !defined(PETSC_USE_COMPLEX)
59: #define LAPACKormlq_ PETSCBLAS(ormlq,ORMLQ)
60: #define LAPACKorgtr_ PETSCBLAS(orgtr,ORGTR)
61: #define LAPACKsytrd_ PETSCBLAS(sytrd,SYTRD)
62: #define LAPACKsyevr_ PETSCBLAS(syevr,SYEVR)
63: #define LAPACKsyevd_ PETSCBLAS(syevd,SYEVD)
64: #define LAPACKsygvd_ PETSCBLAS(sygvd,SYGVD)
65: #else
66: #define LAPACKormlq_ PETSCBLAS(unmlq,UNMLQ)
67: #define LAPACKorgtr_ PETSCBLAS(ungtr,UNGTR)
68: #define LAPACKsytrd_ PETSCBLAS(hetrd,HETRD)
69: #define LAPACKsyevr_ PETSCBLAS(heevr,HEEVR)
70: #define LAPACKsyevd_ PETSCBLAS(heevd,HEEVD)
71: #define LAPACKsygvd_ PETSCBLAS(hegvd,HEGVD)
72: #endif
74: /* subroutines with different signature in real/complex */
75: #define LAPACKggevx_ PETSCBLAS(ggevx,GGEVX)
76: #define LAPACKggev_ PETSCBLAS(ggev,GGEV)
77: #define LAPACKtrevc_ PETSCBLAS(trevc,TREVC)
78: #define LAPACKgeevx_ PETSCBLAS(geevx,GEEVX)
79: #define LAPACKgees_ PETSCBLAS(gees,GEES)
80: #define LAPACKtrexc_ PETSCBLAS(trexc,TREXC)
81: #define LAPACKgesdd_ PETSCBLAS(gesdd,GESDD)
82: #define LAPACKtgevc_ PETSCBLAS(tgevc,TGEVC)
83: #define LAPACKhsein_ PETSCBLAS(hsein,HSEIN)
84: #define LAPACKstedc_ PETSCBLAS(stedc,STEDC)
85: #define LAPACKlascl_ PETSCBLAS(lascl,LASCL)
87: #if defined(PETSC_HAVE_COMPLEX)
88: /* complex subroutines to be called with scalar-type=real */
89: #define BLASCOMPLEXgemm_ PETSCBLASCOMPLEX(gemm,GEMM)
90: #define BLASCOMPLEXscal_ PETSCBLASCOMPLEX(scal,SCAL)
91: #define LAPACKCOMPLEXgesv_ PETSCBLASCOMPLEX(gesv,GESV)
92: #endif
94: #endif