Actual source code: slepcblaslapack_mangle.h

slepc-3.11.2 2019-07-30
Report Typos and Errors
  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: */

 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: #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