kusano 7d535a
/*! @file slu_Cnames.h
kusano 7d535a
 * \brief Macros defining how C routines will be called
kusano 7d535a
 *
kusano 7d535a
 * 
kusano 7d535a
 * -- SuperLU routine (version 2.0) --
kusano 7d535a
 * Univ. of California Berkeley, Xerox Palo Alto Research Center,
kusano 7d535a
 * and Lawrence Berkeley National Lab.
kusano 7d535a
 * November 1, 1997
kusano 7d535a
 *
kusano 7d535a
 * These macros define how C routines will be called.  ADD_ assumes that
kusano 7d535a
 * they will be called by fortran, which expects C routines to have an
kusano 7d535a
 * underscore postfixed to the name (Suns, and the Intel expect this).
kusano 7d535a
 * NOCHANGE indicates that fortran will be calling, and that it expects
kusano 7d535a
 * the name called by fortran to be identical to that compiled by the C
kusano 7d535a
 * (RS6K's do this).  UPCASE says it expects C routines called by fortran
kusano 7d535a
 * to be in all upcase (CRAY wants this). 
kusano 7d535a
 * 
kusano 7d535a
 */
kusano 7d535a
#ifndef __SUPERLU_CNAMES /* allow multiple inclusions */
kusano 7d535a
#define __SUPERLU_CNAMES
kusano 7d535a
kusano 7d535a
kusano 7d535a
#define ADD_       0
kusano 7d535a
#define ADD__      1
kusano 7d535a
#define NOCHANGE   2
kusano 7d535a
#define UPCASE     3
kusano 7d535a
#define OLD_CRAY   4
kusano 7d535a
#define C_CALL     5
kusano 7d535a
kusano 7d535a
#ifdef UpCase
kusano 7d535a
#define F77_CALL_C  UPCASE
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
#ifdef NoChange
kusano 7d535a
#define F77_CALL_C  NOCHANGE
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
#ifdef Add_
kusano 7d535a
#define F77_CALL_C  ADD_
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
#ifdef Add__
kusano 7d535a
#define F77_CALL_C  ADD__
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
#ifdef _CRAY
kusano 7d535a
#define F77_CALL_C  OLD_CRAY
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
/* Default */
kusano 7d535a
#ifndef F77_CALL_C
kusano 7d535a
#define F77_CALL_C  ADD_
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
kusano 7d535a
#if (F77_CALL_C == ADD_)
kusano 7d535a
/*
kusano 7d535a
 * These defines set up the naming scheme required to have a fortran 77
kusano 7d535a
 * routine call a C routine
kusano 7d535a
 * No redefinition necessary to have following Fortran to C interface:
kusano 7d535a
 *           FORTRAN CALL               C DECLARATION
kusano 7d535a
 *           call dgemm(...)           void dgemm_(...)
kusano 7d535a
 *
kusano 7d535a
 * This is the default.
kusano 7d535a
 */
kusano 7d535a
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
#if (F77_CALL_C == ADD__)
kusano 7d535a
/*
kusano 7d535a
 * These defines set up the naming scheme required to have a fortran 77
kusano 7d535a
 * routine call a C routine 
kusano 7d535a
 * for following Fortran to C interface:
kusano 7d535a
 *           FORTRAN CALL               C DECLARATION
kusano 7d535a
 *           call dgemm(...)           void dgemm__(...)
kusano 7d535a
 */
kusano 7d535a
/* BLAS */
kusano 7d535a
#define sswap_    sswap__
kusano 7d535a
#define saxpy_    saxpy__
kusano 7d535a
#define sasum_    sasum__
kusano 7d535a
#define isamax_   isamax__
kusano 7d535a
#define scopy_    scopy__
kusano 7d535a
#define sscal_    sscal__
kusano 7d535a
#define sger_     sger__
kusano 7d535a
#define snrm2_    snrm2__
kusano 7d535a
#define ssymv_    ssymv__
kusano 7d535a
#define sdot_     sdot__
kusano 7d535a
#define saxpy_    saxpy__
kusano 7d535a
#define ssyr2_    ssyr2__
kusano 7d535a
#define srot_     srot__
kusano 7d535a
#define sgemv_    sgemv__
kusano 7d535a
#define strsv_    strsv__
kusano 7d535a
#define sgemm_    sgemm__
kusano 7d535a
#define strsm_    strsm__
kusano 7d535a
kusano 7d535a
#define dswap_    dswap__
kusano 7d535a
#define daxpy_    daxpy__
kusano 7d535a
#define dasum_    dasum__
kusano 7d535a
#define idamax_   idamax__
kusano 7d535a
#define dcopy_    dcopy__
kusano 7d535a
#define dscal_    dscal__
kusano 7d535a
#define dger_     dger__
kusano 7d535a
#define dnrm2_    dnrm2__
kusano 7d535a
#define dsymv_    dsymv__
kusano 7d535a
#define ddot_     ddot__
kusano 7d535a
#define dsyr2_    dsyr2__
kusano 7d535a
#define drot_     drot__
kusano 7d535a
#define dgemv_    dgemv__
kusano 7d535a
#define dtrsv_    dtrsv__
kusano 7d535a
#define dgemm_    dgemm__
kusano 7d535a
#define dtrsm_    dtrsm__
kusano 7d535a
kusano 7d535a
#define cswap_    cswap__
kusano 7d535a
#define caxpy_    caxpy__
kusano 7d535a
#define scasum_   scasum__
kusano 7d535a
#define icamax_   icamax__
kusano 7d535a
#define ccopy_    ccopy__
kusano 7d535a
#define cscal_    cscal__
kusano 7d535a
#define scnrm2_   scnrm2__
kusano 7d535a
#define caxpy_    caxpy__
kusano 7d535a
#define cgemv_    cgemv__
kusano 7d535a
#define ctrsv_    ctrsv__
kusano 7d535a
#define cgemm_    cgemm__
kusano 7d535a
#define ctrsm_    ctrsm__
kusano 7d535a
#define cgerc_    cgerc__
kusano 7d535a
#define chemv_    chemv__
kusano 7d535a
#define cher2_    cher2__
kusano 7d535a
kusano 7d535a
#define zswap_    zswap__
kusano 7d535a
#define zaxpy_    zaxpy__
kusano 7d535a
#define dzasum_   dzasum__
kusano 7d535a
#define izamax_   izamax__
kusano 7d535a
#define zcopy_    zcopy__
kusano 7d535a
#define zscal_    zscal__
kusano 7d535a
#define dznrm2_   dznrm2__
kusano 7d535a
#define zaxpy_    zaxpy__
kusano 7d535a
#define zgemv_    zgemv__
kusano 7d535a
#define ztrsv_    ztrsv__
kusano 7d535a
#define zgemm_    zgemm__
kusano 7d535a
#define ztrsm_    ztrsm__
kusano 7d535a
#define zgerc_    zgerc__
kusano 7d535a
#define zhemv_    zhemv__
kusano 7d535a
#define zher2_    zher2__
kusano 7d535a
kusano 7d535a
/* LAPACK */
kusano 7d535a
#define dlamch_   dlamch__
kusano 7d535a
#define slamch_   slamch__
kusano 7d535a
#define xerbla_   xerbla__
kusano 7d535a
#define lsame_    lsame__
kusano 7d535a
#define dlacon_   dlacon__
kusano 7d535a
#define slacon_   slacon__
kusano 7d535a
#define icmax1_   icmax1__
kusano 7d535a
#define scsum1_   scsum1__
kusano 7d535a
#define clacon_   clacon__
kusano 7d535a
#define dzsum1_   dzsum1__
kusano 7d535a
#define izmax1_   izmax1__
kusano 7d535a
#define zlacon_   zlacon__
kusano 7d535a
kusano 7d535a
/* Fortran interface */
kusano 7d535a
#define c_bridge_dgssv_ c_bridge_dgssv__
kusano 7d535a
#define c_fortran_sgssv_ c_fortran_sgssv__
kusano 7d535a
#define c_fortran_dgssv_ c_fortran_dgssv__
kusano 7d535a
#define c_fortran_cgssv_ c_fortran_cgssv__
kusano 7d535a
#define c_fortran_zgssv_ c_fortran_zgssv__
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
#if (F77_CALL_C == UPCASE)
kusano 7d535a
/*
kusano 7d535a
 * These defines set up the naming scheme required to have a fortran 77
kusano 7d535a
 * routine call a C routine 
kusano 7d535a
 * following Fortran to C interface:
kusano 7d535a
 *           FORTRAN CALL               C DECLARATION
kusano 7d535a
 *           call dgemm(...)           void DGEMM(...)
kusano 7d535a
 */
kusano 7d535a
/* BLAS */
kusano 7d535a
#define sswap_    SSWAP
kusano 7d535a
#define saxpy_    SAXPY
kusano 7d535a
#define sasum_    SASUM
kusano 7d535a
#define isamax_   ISAMAX
kusano 7d535a
#define scopy_    SCOPY
kusano 7d535a
#define sscal_    SSCAL
kusano 7d535a
#define sger_     SGER
kusano 7d535a
#define snrm2_    SNRM2
kusano 7d535a
#define ssymv_    SSYMV
kusano 7d535a
#define sdot_     SDOT
kusano 7d535a
#define saxpy_    SAXPY
kusano 7d535a
#define ssyr2_    SSYR2
kusano 7d535a
#define srot_     SROT
kusano 7d535a
#define sgemv_    SGEMV
kusano 7d535a
#define strsv_    STRSV
kusano 7d535a
#define sgemm_    SGEMM
kusano 7d535a
#define strsm_    STRSM
kusano 7d535a
kusano 7d535a
#define dswap_    DSWAP
kusano 7d535a
#define daxpy_    DAXPY
kusano 7d535a
#define dasum_    DASUM
kusano 7d535a
#define idamax_   IDAMAX
kusano 7d535a
#define dcopy_    DCOPY
kusano 7d535a
#define dscal_    DSCAL
kusano 7d535a
#define dger_     DGER
kusano 7d535a
#define dnrm2_    DNRM2
kusano 7d535a
#define dsymv_    DSYMV
kusano 7d535a
#define ddot_     DDOT
kusano 7d535a
#define dsyr2_    DSYR2
kusano 7d535a
#define drot_     DROT
kusano 7d535a
#define dgemv_    DGEMV
kusano 7d535a
#define dtrsv_    DTRSV
kusano 7d535a
#define dgemm_    DGEMM
kusano 7d535a
#define dtrsm_    DTRSM
kusano 7d535a
kusano 7d535a
#define cswap_    CSWAP
kusano 7d535a
#define caxpy_    CAXPY
kusano 7d535a
#define scasum_   SCASUM
kusano 7d535a
#define icamax_   ICAMAX
kusano 7d535a
#define ccopy_    CCOPY
kusano 7d535a
#define cscal_    CSCAL
kusano 7d535a
#define scnrm2_   SCNRM2
kusano 7d535a
#define cgemv_    CGEMV
kusano 7d535a
#define ctrsv_    CTRSV
kusano 7d535a
#define cgemm_    CGEMM
kusano 7d535a
#define ctrsm_    CTRSM
kusano 7d535a
#define cgerc_    CGERC
kusano 7d535a
#define chemv_    CHEMV
kusano 7d535a
#define cher2_    CHER2
kusano 7d535a
kusano 7d535a
#define zswap_    ZSWAP
kusano 7d535a
#define zaxpy_    ZAXPY
kusano 7d535a
#define dzasum_   DZASUM
kusano 7d535a
#define izamax_   IZAMAX
kusano 7d535a
#define zcopy_    ZCOPY
kusano 7d535a
#define zscal_    ZSCAL
kusano 7d535a
#define dznrm2_   DZNRM2
kusano 7d535a
#define zgemv_    ZGEMV
kusano 7d535a
#define ztrsv_    ZTRSV
kusano 7d535a
#define zgemm_    ZGEMM
kusano 7d535a
#define ztrsm_    ZTRSM
kusano 7d535a
#define zgerc_    ZGERC
kusano 7d535a
#define zhemv_    ZHEMV
kusano 7d535a
#define zher2_    ZHER2
kusano 7d535a
kusano 7d535a
/* LAPACK */
kusano 7d535a
#define dlamch_   DLAMCH
kusano 7d535a
#define slamch_   SLAMCH
kusano 7d535a
#define xerbla_   XERBLA
kusano 7d535a
#define lsame_    LSAME
kusano 7d535a
#define dlacon_   DLACON
kusano 7d535a
#define slacon_   SLACON
kusano 7d535a
#define icmax1_   ICMAX1
kusano 7d535a
#define scsum1_   SCSUM1
kusano 7d535a
#define clacon_   CLACON
kusano 7d535a
#define dzsum1_   DZSUM1
kusano 7d535a
#define izmax1_   IZMAX1
kusano 7d535a
#define zlacon_   ZLACON
kusano 7d535a
kusano 7d535a
/* Fortran interface */
kusano 7d535a
#define c_bridge_dgssv_ C_BRIDGE_DGSSV
kusano 7d535a
#define c_fortran_sgssv_ C_FORTRAN_SGSSV
kusano 7d535a
#define c_fortran_dgssv_ C_FORTRAN_DGSSV
kusano 7d535a
#define c_fortran_cgssv_ C_FORTRAN_CGSSV
kusano 7d535a
#define c_fortran_zgssv_ C_FORTRAN_ZGSSV
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
kusano 7d535a
#if (F77_CALL_C == OLD_CRAY)
kusano 7d535a
/*
kusano 7d535a
 * These defines set up the naming scheme required to have a fortran 77
kusano 7d535a
 * routine call a C routine 
kusano 7d535a
 * following Fortran to C interface:
kusano 7d535a
 *           FORTRAN CALL               C DECLARATION
kusano 7d535a
 *           call dgemm(...)           void SGEMM(...)
kusano 7d535a
 */
kusano 7d535a
/* BLAS */
kusano 7d535a
#define sswap_    SSWAP
kusano 7d535a
#define saxpy_    SAXPY
kusano 7d535a
#define sasum_    SASUM
kusano 7d535a
#define isamax_   ISAMAX
kusano 7d535a
#define scopy_    SCOPY
kusano 7d535a
#define sscal_    SSCAL
kusano 7d535a
#define sger_     SGER
kusano 7d535a
#define snrm2_    SNRM2
kusano 7d535a
#define ssymv_    SSYMV
kusano 7d535a
#define sdot_     SDOT
kusano 7d535a
#define ssyr2_    SSYR2
kusano 7d535a
#define srot_     SROT
kusano 7d535a
#define sgemv_    SGEMV
kusano 7d535a
#define strsv_    STRSV
kusano 7d535a
#define sgemm_    SGEMM
kusano 7d535a
#define strsm_    STRSM
kusano 7d535a
kusano 7d535a
#define dswap_    SSWAP
kusano 7d535a
#define daxpy_    SAXPY
kusano 7d535a
#define dasum_    SASUM
kusano 7d535a
#define idamax_   ISAMAX
kusano 7d535a
#define dcopy_    SCOPY
kusano 7d535a
#define dscal_    SSCAL
kusano 7d535a
#define dger_     SGER
kusano 7d535a
#define dnrm2_    SNRM2
kusano 7d535a
#define dsymv_    SSYMV
kusano 7d535a
#define ddot_     SDOT
kusano 7d535a
#define dsyr2_    SSYR2
kusano 7d535a
#define drot_     SROT
kusano 7d535a
#define dgemv_    SGEMV
kusano 7d535a
#define dtrsv_    STRSV
kusano 7d535a
#define dgemm_    SGEMM
kusano 7d535a
#define dtrsm_    STRSM
kusano 7d535a
kusano 7d535a
#define cswap_    CSWAP
kusano 7d535a
#define caxpy_    CAXPY
kusano 7d535a
#define scasum_   SCASUM
kusano 7d535a
#define icamax_   ICAMAX
kusano 7d535a
#define ccopy_    CCOPY
kusano 7d535a
#define cscal_    CSCAL
kusano 7d535a
#define scnrm2_   SCNRM2
kusano 7d535a
#define caxpy_    CAXPY
kusano 7d535a
#define cgemv_    CGEMV
kusano 7d535a
#define ctrsv_    CTRSV
kusano 7d535a
#define cgemm_    CGEMM
kusano 7d535a
#define ctrsm_    CTRSM
kusano 7d535a
#define cgerc_    CGERC
kusano 7d535a
#define chemv_    CHEMV
kusano 7d535a
#define cher2_    CHER2
kusano 7d535a
kusano 7d535a
#define zswap_    ZSWAP
kusano 7d535a
#define zaxpy_    ZAXPY
kusano 7d535a
#define dzasum_   DZASUM
kusano 7d535a
#define izamax_   IZAMAX
kusano 7d535a
#define zcopy_    ZCOPY
kusano 7d535a
#define zscal_    ZSCAL
kusano 7d535a
#define dznrm2_   DZNRM2
kusano 7d535a
#define zgemv_    ZGEMV
kusano 7d535a
#define ztrsv_    ZTRSV
kusano 7d535a
#define zgemm_    ZGEMM
kusano 7d535a
#define ztrsm_    ZTRSM
kusano 7d535a
#define zgerc_    ZGERC
kusano 7d535a
#define zhemv_    ZHEMV
kusano 7d535a
#define zher2_    ZHER2
kusano 7d535a
kusano 7d535a
/* LAPACK */
kusano 7d535a
#define dlamch_   DLAMCH
kusano 7d535a
#define slamch_   SLAMCH
kusano 7d535a
#define xerbla_   XERBLA
kusano 7d535a
#define lsame_    LSAME
kusano 7d535a
#define dlacon_   DLACON
kusano 7d535a
#define slacon_   SLACON
kusano 7d535a
#define icmax1_   ICMAX1
kusano 7d535a
#define scsum1_   SCSUM1
kusano 7d535a
#define clacon_   CLACON
kusano 7d535a
#define dzsum1_   DZSUM1
kusano 7d535a
#define izmax1_   IZMAX1
kusano 7d535a
#define zlacon_   ZLACON
kusano 7d535a
kusano 7d535a
/* Fortran interface */
kusano 7d535a
#define c_bridge_dgssv_ C_BRIDGE_DGSSV
kusano 7d535a
#define c_fortran_sgssv_ C_FORTRAN_SGSSV
kusano 7d535a
#define c_fortran_dgssv_ C_FORTRAN_DGSSV
kusano 7d535a
#define c_fortran_cgssv_ C_FORTRAN_CGSSV
kusano 7d535a
#define c_fortran_zgssv_ C_FORTRAN_ZGSSV
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
kusano 7d535a
#if (F77_CALL_C == NOCHANGE)
kusano 7d535a
/*
kusano 7d535a
 * These defines set up the naming scheme required to have a fortran 77
kusano 7d535a
 * routine call a C routine 
kusano 7d535a
 * for following Fortran to C interface:
kusano 7d535a
 *           FORTRAN CALL               C DECLARATION
kusano 7d535a
 *           call dgemm(...)           void dgemm(...)
kusano 7d535a
 */
kusano 7d535a
/* BLAS */
kusano 7d535a
#define sswap_    sswap
kusano 7d535a
#define saxpy_    saxpy
kusano 7d535a
#define sasum_    sasum
kusano 7d535a
#define isamax_   isamax
kusano 7d535a
#define scopy_    scopy
kusano 7d535a
#define sscal_    sscal
kusano 7d535a
#define sger_     sger
kusano 7d535a
#define snrm2_    snrm2
kusano 7d535a
#define ssymv_    ssymv
kusano 7d535a
#define sdot_     sdot
kusano 7d535a
#define saxpy_    saxpy
kusano 7d535a
#define ssyr2_    ssyr2
kusano 7d535a
#define srot_     srot
kusano 7d535a
#define sgemv_    sgemv
kusano 7d535a
#define strsv_    strsv
kusano 7d535a
#define sgemm_    sgemm
kusano 7d535a
#define strsm_    strsm
kusano 7d535a
kusano 7d535a
#define dswap_    dswap
kusano 7d535a
#define daxpy_    daxpy
kusano 7d535a
#define dasum_    dasum
kusano 7d535a
#define idamax_   idamax
kusano 7d535a
#define dcopy_    dcopy
kusano 7d535a
#define dscal_    dscal
kusano 7d535a
#define dger_     dger
kusano 7d535a
#define dnrm2_    dnrm2
kusano 7d535a
#define dsymv_    dsymv
kusano 7d535a
#define ddot_     ddot
kusano 7d535a
#define dsyr2_    dsyr2
kusano 7d535a
#define drot_     drot
kusano 7d535a
#define dgemv_    dgemv
kusano 7d535a
#define dtrsv_    dtrsv
kusano 7d535a
#define dgemm_    dgemm
kusano 7d535a
#define dtrsm_    dtrsm
kusano 7d535a
kusano 7d535a
#define cswap_    cswap
kusano 7d535a
#define caxpy_    caxpy
kusano 7d535a
#define scasum_   scasum
kusano 7d535a
#define icamax_   icamax
kusano 7d535a
#define ccopy_    ccopy
kusano 7d535a
#define cscal_    cscal
kusano 7d535a
#define scnrm2_   scnrm2
kusano 7d535a
#define cgemv_    cgemv
kusano 7d535a
#define ctrsv_    ctrsv
kusano 7d535a
#define cgemm_    cgemm
kusano 7d535a
#define ctrsm_    ctrsm
kusano 7d535a
#define cgerc_    cgerc
kusano 7d535a
#define chemv_    chemv
kusano 7d535a
#define cher2_    cher2
kusano 7d535a
kusano 7d535a
#define zswap_    zswap
kusano 7d535a
#define zaxpy_    zaxpy
kusano 7d535a
#define dzasum_   dzasum
kusano 7d535a
#define izamax_   izamax
kusano 7d535a
#define zcopy_    zcopy
kusano 7d535a
#define zscal_    zscal
kusano 7d535a
#define dznrm2_   dznrm2
kusano 7d535a
#define zgemv_    zgemv
kusano 7d535a
#define ztrsv_    ztrsv
kusano 7d535a
#define zgemm_    zgemm
kusano 7d535a
#define ztrsm_    ztrsm
kusano 7d535a
#define zgerc_    zgerc
kusano 7d535a
#define zhemv_    zhemv
kusano 7d535a
#define zher2_    zher2
kusano 7d535a
kusano 7d535a
/* LAPACK */
kusano 7d535a
#define dlamch_   dlamch
kusano 7d535a
#define slamch_   slamch
kusano 7d535a
#define xerbla_   xerbla
kusano 7d535a
#define lsame_    lsame
kusano 7d535a
#define dlacon_   dlacon
kusano 7d535a
#define slacon_   slacon
kusano 7d535a
#define icmax1_   icmax1
kusano 7d535a
#define scsum1_   scsum1
kusano 7d535a
#define clacon_   clacon
kusano 7d535a
#define dzsum1_   dzsum1
kusano 7d535a
#define izmax1_   izmax1
kusano 7d535a
#define zlacon_   zlacon
kusano 7d535a
kusano 7d535a
/* Fortran interface */
kusano 7d535a
#define c_bridge_dgssv_ c_bridge_dgssv
kusano 7d535a
#define c_fortran_sgssv_ c_fortran_sgssv
kusano 7d535a
#define c_fortran_dgssv_ c_fortran_dgssv
kusano 7d535a
#define c_fortran_cgssv_ c_fortran_cgssv
kusano 7d535a
#define c_fortran_zgssv_ c_fortran_zgssv
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
kusano 7d535a
#endif /* __SUPERLU_CNAMES */