Date: 2020-01-13T12:02:24+00:00

Actual source code: slepcblaslapack_mangle.h
slepc-3.12.2 2020-01-13
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