Actual source code: slepcblaslapack_mangle.h

      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: /* MANSEC = Sys */

     15: /* LAPACK functions without string parameters */
     16: #define BLASrot_     PETSCBLAS(rot,ROT)
     17: #define BLASMIXEDrot_ PETSCBLASMIXED(rot,ROT)
     18: #if !defined(SLEPC_MISSING_LAPACK_LAEV2)
     19: #define LAPACKlaev2_ PETSCBLAS(laev2,LAEV2)
     20: #endif
     21: #if !defined(SLEPC_MISSING_LAPACK_GEHRD)
     22: #define LAPACKgehrd_ PETSCBLAS(gehrd,GEHRD)
     23: #endif
     24: #if !defined(SLEPC_MISSING_LAPACK_LARFG)
     25: #define LAPACKlarfg_ PETSCBLAS(larfg,LARFG)
     26: #endif
     27: #if !defined(SLEPC_MISSING_LAPACK_LAG2)
     28: #define LAPACKlag2_  PETSCBLASREAL(lag2,LAG2)
     29: #endif
     30: #if !defined(SLEPC_MISSING_LAPACK_LASV2)
     31: #define LAPACKlasv2_ PETSCBLASREAL(lasv2,LASV2)
     32: #endif
     33: #if !defined(SLEPC_MISSING_LAPACK_LARTG)
     34: #define LAPACKlartg_ PETSCBLAS(lartg,LARTG)
     35: #define LAPACKREALlartg_ PETSCBLASREAL(lartg,LARTG)
     36: #endif
     37: #if !defined(SLEPC_MISSING_LAPACK_LAED4)
     38: #define LAPACKlaed4_ PETSCBLASREAL(laed4,LAED4)
     39: #endif
     40: #if !defined(SLEPC_MISSING_LAPACK_LAMRG)
     41: #define LAPACKlamrg_ PETSCBLASREAL(lamrg,LAMRG)
     42: #endif
     43: #if !defined(SLEPC_MISSING_LAPACK_ORGHR)
     44: #if !defined(PETSC_USE_COMPLEX)
     45: #define LAPACKorghr_ PETSCBLAS(orghr,ORGHR)
     46: #else
     47: #define LAPACKorghr_ PETSCBLAS(unghr,UNGHR)
     48: #endif
     49: #endif
     50: #if !defined(SLEPC_MISSING_LAPACK_TGEXC)
     51: #define LAPACKtgexc_ PETSCBLAS(tgexc,TGEXC)
     52: #endif
     53: #define LAPACKgeqp3_ PETSCBLAS(geqp3,GEQP3)

     55: /* LAPACK functions with string parameters */

     57: /* same name for real and complex */
     58: #define BLAStrmm_    PETSCBLAS(trmm,TRMM)
     59: #if !defined(SLEPC_MISSING_LAPACK_LANHS)
     60: #define LAPACKlanhs_ PETSCBLAS(lanhs,LANHS)
     61: #endif
     62: #define LAPACKlange_ PETSCBLAS(lange,LANGE)
     63: #if !defined(SLEPC_MISSING_LAPACK_LARF)
     64: #define LAPACKlarf_  PETSCBLAS(larf,LARF)
     65: #endif
     66: #define LAPACKlansy_ PETSCBLAS(lansy,LANSY)
     67: #if !defined(SLEPC_MISSING_LAPACK_TRSYL)
     68: #define LAPACKtrsyl_ PETSCBLAS(trsyl,TRSYL)
     69: #endif

     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_ORMBR)
     87: #define LAPACKormbr_ PETSCBLAS(ormbr,ORMBR)
     88: #endif
     89: #if !defined(SLEPC_MISSING_LAPACK_SYTRD)
     90: #define LAPACKsytrd_ PETSCBLAS(sytrd,SYTRD)
     91: #endif
     92: #define LAPACKsyevd_ PETSCBLAS(syevd,SYEVD)
     93: #define LAPACKsygvd_ PETSCBLAS(sygvd,SYGVD)
     94: #else
     95: #if !defined(SLEPC_MISSING_LAPACK_ORGTR)
     96: #define LAPACKorgtr_ PETSCBLAS(ungtr,UNGTR)
     97: #endif
     98: #if !defined(SLEPC_MISSING_LAPACK_ORMBR)
     99: #define LAPACKormbr_ PETSCBLAS(unmbr,UNMBR)
    100: #endif
    101: #if !defined(SLEPC_MISSING_LAPACK_SYTRD)
    102: #define LAPACKsytrd_ PETSCBLAS(hetrd,HETRD)
    103: #endif
    104: #define LAPACKsyevd_ PETSCBLAS(heevd,HEEVD)
    105: #define LAPACKsygvd_ PETSCBLAS(hegvd,HEGVD)
    106: #endif

    108: /* subroutines with different signature in real/complex */
    109: #define LAPACKggev_  PETSCBLAS(ggev,GGEV)
    110: #if !defined(SLEPC_MISSING_LAPACK_GGEV3)   /* ggev and ggev3 have the same signature */
    111: #define LAPACKggev3_ PETSCBLAS(ggev3,GGEV3)
    112: #define LAPACKggevalt_ LAPACKggev3_
    113: #else
    114: #define LAPACKggevalt_ LAPACKggev_
    115: #endif
    116: #if !defined(SLEPC_MISSING_LAPACK_GGES3)   /* gges and gges3 have the same signature */
    117: #define LAPACKgges3_ PETSCBLAS(gges3,GGES3)
    118: #define LAPACKggesalt_ LAPACKgges3_
    119: #else
    120: #define LAPACKggesalt_ LAPACKgges_
    121: #endif
    122: #if !defined(SLEPC_MISSING_LAPACK_GGSVD)
    123: #define LAPACKggsvd_ PETSCBLAS(ggsvd,GGSVD)
    124: #endif
    125: #if !defined(SLEPC_MISSING_LAPACK_GGSVD3)
    126: #define LAPACKggsvd3_ PETSCBLAS(ggsvd3,GGSVD3)
    127: #endif
    128: #if !defined(SLEPC_MISSING_LAPACK_TREVC)
    129: #define LAPACKtrevc_ PETSCBLAS(trevc,TREVC)
    130: #endif
    131: #define LAPACKgeevx_ PETSCBLAS(geevx,GEEVX)
    132: #define LAPACKgees_  PETSCBLAS(gees,GEES)
    133: #if !defined(SLEPC_MISSING_LAPACK_TREXC)
    134: #define LAPACKtrexc_ PETSCBLAS(trexc,TREXC)
    135: #endif
    136: #define LAPACKgesdd_ PETSCBLAS(gesdd,GESDD)
    137: #if !defined(SLEPC_MISSING_LAPACK_TGEVC)
    138: #define LAPACKtgevc_ PETSCBLAS(tgevc,TGEVC)
    139: #endif
    140: #if !defined(SLEPC_MISSING_LAPACK_HSEIN)
    141: #define LAPACKhsein_ PETSCBLAS(hsein,HSEIN)
    142: #endif
    143: #if !defined(SLEPC_MISSING_LAPACK_STEDC)
    144: #define LAPACKstedc_ PETSCBLAS(stedc,STEDC)
    145: #endif
    146: #if !defined(SLEPC_MISSING_LAPACK_LASCL)
    147: #define LAPACKlascl_ PETSCBLAS(lascl,LASCL)
    148: #endif
    149: #if !defined(SLEPC_MISSING_LAPACK_BDSQR)
    150: #define LAPACKbdsqr_ PETSCBLAS(bdsqr,BDSQR)
    151: #endif
    152: #if !defined(SLEPC_MISSING_LAPACK_GEBRD)
    153: #define LAPACKgebrd_ PETSCBLAS(gebrd,GEBRD)
    154: #endif

    156: #if defined(PETSC_HAVE_COMPLEX)
    157: /* complex subroutines to be called with scalar-type=real */
    158: #define BLASCOMPLEXgemm_   PETSCBLASCOMPLEX(gemm,GEMM)
    159: #define BLASCOMPLEXscal_   PETSCBLASCOMPLEX(scal,SCAL)
    160: #define LAPACKCOMPLEXgesv_ PETSCBLASCOMPLEX(gesv,GESV)
    161: #endif