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
 */
kusano 7d535a
#ifndef __SUPERLU_CNAMES /* allow multiple inclusions */
kusano 7d535a
#define __SUPERLU_CNAMES
kusano 7d535a
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
#define ADD_       0
kusano 7d535a
#define NOCHANGE   1
kusano 7d535a
#define UPCASE     2
kusano 7d535a
#define C_CALL     3
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
#ifndef F77_CALL_C
kusano 7d535a
#define F77_CALL_C ADD_
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
 * 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 == 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
#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 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 daxpy_    SAXPY
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 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 dzasum_   SCASUM
kusano 7d535a
#define izamax_   ICAMAX
kusano 7d535a
#define zcopy_    CCOPY
kusano 7d535a
#define zscal_    CSCAL
kusano 7d535a
#define dznrm2_   SCNRM2
kusano 7d535a
#define zaxpy_    CAXPY
kusano 7d535a
#define zgemv_    CGEMV
kusano 7d535a
#define ztrsv_    CTRSV
kusano 7d535a
#define zgemm_    CGEMM
kusano 7d535a
#define ztrsm_    CTRSM
kusano 7d535a
#define zgerc_    CGERC
kusano 7d535a
#define zhemv_    CHEMV
kusano 7d535a
#define zher2_    CHER2
kusano 7d535a
kusano 7d535a
#define c_bridge_dgssv_ C_BRIDGE_DGSSV
kusano 7d535a
#endif
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
#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 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 daxpy_    daxpy
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 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 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
#define c_bridge_dgssv_ c_bridge_dgssv
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
#endif /* __SUPERLU_CNAMES */