forked from bartvdbraak/blender
282 lines
6.7 KiB
C
282 lines
6.7 KiB
C
|
/*
|
||
|
* -- SuperLU routine (version 2.0) --
|
||
|
* Univ. of California Berkeley, Xerox Palo Alto Research Center,
|
||
|
* and Lawrence Berkeley National Lab.
|
||
|
* November 1, 1997
|
||
|
*
|
||
|
*/
|
||
|
#ifndef __SUPERLU_CNAMES /* allow multiple inclusions */
|
||
|
#define __SUPERLU_CNAMES
|
||
|
|
||
|
/* We want this flag, safer than putting in build system */
|
||
|
#define Add_
|
||
|
|
||
|
/*
|
||
|
* These macros define how C routines will be called. ADD_ assumes that
|
||
|
* they will be called by fortran, which expects C routines to have an
|
||
|
* underscore postfixed to the name (Suns, and the Intel expect this).
|
||
|
* NOCHANGE indicates that fortran will be calling, and that it expects
|
||
|
* the name called by fortran to be identical to that compiled by the C
|
||
|
* (RS6K's do this). UPCASE says it expects C routines called by fortran
|
||
|
* to be in all upcase (CRAY wants this).
|
||
|
*/
|
||
|
|
||
|
#define ADD_ 0
|
||
|
#define ADD__ 1
|
||
|
#define NOCHANGE 2
|
||
|
#define UPCASE 3
|
||
|
#define C_CALL 4
|
||
|
|
||
|
#ifdef UpCase
|
||
|
#define F77_CALL_C UPCASE
|
||
|
#endif
|
||
|
|
||
|
#ifdef NoChange
|
||
|
#define F77_CALL_C NOCHANGE
|
||
|
#endif
|
||
|
|
||
|
#ifdef Add_
|
||
|
#define F77_CALL_C ADD_
|
||
|
#endif
|
||
|
|
||
|
#ifdef Add__
|
||
|
#define F77_CALL_C ADD__
|
||
|
#endif
|
||
|
|
||
|
/* Default */
|
||
|
#ifndef F77_CALL_C
|
||
|
#define F77_CALL_C ADD_
|
||
|
#endif
|
||
|
|
||
|
|
||
|
#if (F77_CALL_C == ADD_)
|
||
|
/*
|
||
|
* These defines set up the naming scheme required to have a fortran 77
|
||
|
* routine call a C routine
|
||
|
* No redefinition necessary to have following Fortran to C interface:
|
||
|
* FORTRAN CALL C DECLARATION
|
||
|
* call dgemm(...) void dgemm_(...)
|
||
|
*
|
||
|
* This is the default.
|
||
|
*/
|
||
|
|
||
|
#endif
|
||
|
|
||
|
#if (F77_CALL_C == ADD__)
|
||
|
/*
|
||
|
* These defines set up the naming scheme required to have a fortran 77
|
||
|
* routine call a C routine
|
||
|
* for following Fortran to C interface:
|
||
|
* FORTRAN CALL C DECLARATION
|
||
|
* call dgemm(...) void dgemm__(...)
|
||
|
*/
|
||
|
#define sasum_ sasum__
|
||
|
#define isamax_ isamax__
|
||
|
#define scopy_ scopy__
|
||
|
#define sscal_ sscal__
|
||
|
#define sger_ sger__
|
||
|
#define snrm2_ snrm2__
|
||
|
#define ssymv_ ssymv__
|
||
|
#define sdot_ sdot__
|
||
|
#define saxpy_ saxpy__
|
||
|
#define ssyr2_ ssyr2__
|
||
|
#define srot_ srot__
|
||
|
#define sgemv_ sgemv__
|
||
|
#define strsv_ strsv__
|
||
|
#define sgemm_ sgemm__
|
||
|
#define strsm_ strsm__
|
||
|
|
||
|
#define dasum_ dasum__
|
||
|
#define idamax_ idamax__
|
||
|
#define dcopy_ dcopy__
|
||
|
#define dscal_ dscal__
|
||
|
#define dger_ dger__
|
||
|
#define dnrm2_ dnrm2__
|
||
|
#define dsymv_ dsymv__
|
||
|
#define ddot_ ddot__
|
||
|
#define daxpy_ daxpy__
|
||
|
#define dsyr2_ dsyr2__
|
||
|
#define drot_ drot__
|
||
|
#define dgemv_ dgemv__
|
||
|
#define dtrsv_ dtrsv__
|
||
|
#define dgemm_ dgemm__
|
||
|
#define dtrsm_ dtrsm__
|
||
|
|
||
|
#define scasum_ scasum__
|
||
|
#define icamax_ icamax__
|
||
|
#define ccopy_ ccopy__
|
||
|
#define cscal_ cscal__
|
||
|
#define scnrm2_ scnrm2__
|
||
|
#define caxpy_ caxpy__
|
||
|
#define cgemv_ cgemv__
|
||
|
#define ctrsv_ ctrsv__
|
||
|
#define cgemm_ cgemm__
|
||
|
#define ctrsm_ ctrsm__
|
||
|
#define cgerc_ cgerc__
|
||
|
#define chemv_ chemv__
|
||
|
#define cher2_ cher2__
|
||
|
|
||
|
#define dzasum_ dzasum__
|
||
|
#define izamax_ izamax__
|
||
|
#define zcopy_ zcopy__
|
||
|
#define zscal_ zscal__
|
||
|
#define dznrm2_ dznrm2__
|
||
|
#define zaxpy_ zaxpy__
|
||
|
#define zgemv_ zgemv__
|
||
|
#define ztrsv_ ztrsv__
|
||
|
#define zgemm_ zgemm__
|
||
|
#define ztrsm_ ztrsm__
|
||
|
#define zgerc_ zgerc__
|
||
|
#define zhemv_ zhemv__
|
||
|
#define zher2_ zher2__
|
||
|
|
||
|
#define c_bridge_dgssv_ c_bridge_dgssv__
|
||
|
#define c_fortran_dgssv_ c_fortran_dgssv__
|
||
|
#endif
|
||
|
|
||
|
#if (F77_CALL_C == UPCASE)
|
||
|
/*
|
||
|
* These defines set up the naming scheme required to have a fortran 77
|
||
|
* routine call a C routine
|
||
|
* following Fortran to C interface:
|
||
|
* FORTRAN CALL C DECLARATION
|
||
|
* call dgemm(...) void DGEMM(...)
|
||
|
*/
|
||
|
#define sasum_ SASUM
|
||
|
#define isamax_ ISAMAX
|
||
|
#define scopy_ SCOPY
|
||
|
#define sscal_ SSCAL
|
||
|
#define sger_ SGER
|
||
|
#define snrm2_ SNRM2
|
||
|
#define ssymv_ SSYMV
|
||
|
#define sdot_ SDOT
|
||
|
#define saxpy_ SAXPY
|
||
|
#define ssyr2_ SSYR2
|
||
|
#define srot_ SROT
|
||
|
#define sgemv_ SGEMV
|
||
|
#define strsv_ STRSV
|
||
|
#define sgemm_ SGEMM
|
||
|
#define strsm_ STRSM
|
||
|
|
||
|
#define dasum_ SASUM
|
||
|
#define idamax_ ISAMAX
|
||
|
#define dcopy_ SCOPY
|
||
|
#define dscal_ SSCAL
|
||
|
#define dger_ SGER
|
||
|
#define dnrm2_ SNRM2
|
||
|
#define dsymv_ SSYMV
|
||
|
#define ddot_ SDOT
|
||
|
#define daxpy_ SAXPY
|
||
|
#define dsyr2_ SSYR2
|
||
|
#define drot_ SROT
|
||
|
#define dgemv_ SGEMV
|
||
|
#define dtrsv_ STRSV
|
||
|
#define dgemm_ SGEMM
|
||
|
#define dtrsm_ STRSM
|
||
|
|
||
|
#define scasum_ SCASUM
|
||
|
#define icamax_ ICAMAX
|
||
|
#define ccopy_ CCOPY
|
||
|
#define cscal_ CSCAL
|
||
|
#define scnrm2_ SCNRM2
|
||
|
#define caxpy_ CAXPY
|
||
|
#define cgemv_ CGEMV
|
||
|
#define ctrsv_ CTRSV
|
||
|
#define cgemm_ CGEMM
|
||
|
#define ctrsm_ CTRSM
|
||
|
#define cgerc_ CGERC
|
||
|
#define chemv_ CHEMV
|
||
|
#define cher2_ CHER2
|
||
|
|
||
|
#define dzasum_ SCASUM
|
||
|
#define izamax_ ICAMAX
|
||
|
#define zcopy_ CCOPY
|
||
|
#define zscal_ CSCAL
|
||
|
#define dznrm2_ SCNRM2
|
||
|
#define zaxpy_ CAXPY
|
||
|
#define zgemv_ CGEMV
|
||
|
#define ztrsv_ CTRSV
|
||
|
#define zgemm_ CGEMM
|
||
|
#define ztrsm_ CTRSM
|
||
|
#define zgerc_ CGERC
|
||
|
#define zhemv_ CHEMV
|
||
|
#define zher2_ CHER2
|
||
|
|
||
|
#define c_bridge_dgssv_ C_BRIDGE_DGSSV
|
||
|
#define c_fortran_dgssv_ C_FORTRAN_DGSSV
|
||
|
#endif
|
||
|
|
||
|
#if (F77_CALL_C == NOCHANGE)
|
||
|
/*
|
||
|
* These defines set up the naming scheme required to have a fortran 77
|
||
|
* routine call a C routine
|
||
|
* for following Fortran to C interface:
|
||
|
* FORTRAN CALL C DECLARATION
|
||
|
* call dgemm(...) void dgemm(...)
|
||
|
*/
|
||
|
#define sasum_ sasum
|
||
|
#define isamax_ isamax
|
||
|
#define scopy_ scopy
|
||
|
#define sscal_ sscal
|
||
|
#define sger_ sger
|
||
|
#define snrm2_ snrm2
|
||
|
#define ssymv_ ssymv
|
||
|
#define sdot_ sdot
|
||
|
#define saxpy_ saxpy
|
||
|
#define ssyr2_ ssyr2
|
||
|
#define srot_ srot
|
||
|
#define sgemv_ sgemv
|
||
|
#define strsv_ strsv
|
||
|
#define sgemm_ sgemm
|
||
|
#define strsm_ strsm
|
||
|
|
||
|
#define dasum_ dasum
|
||
|
#define idamax_ idamax
|
||
|
#define dcopy_ dcopy
|
||
|
#define dscal_ dscal
|
||
|
#define dger_ dger
|
||
|
#define dnrm2_ dnrm2
|
||
|
#define dsymv_ dsymv
|
||
|
#define ddot_ ddot
|
||
|
#define daxpy_ daxpy
|
||
|
#define dsyr2_ dsyr2
|
||
|
#define drot_ drot
|
||
|
#define dgemv_ dgemv
|
||
|
#define dtrsv_ dtrsv
|
||
|
#define dgemm_ dgemm
|
||
|
#define dtrsm_ dtrsm
|
||
|
|
||
|
#define scasum_ scasum
|
||
|
#define icamax_ icamax
|
||
|
#define ccopy_ ccopy
|
||
|
#define cscal_ cscal
|
||
|
#define scnrm2_ scnrm2
|
||
|
#define caxpy_ caxpy
|
||
|
#define cgemv_ cgemv
|
||
|
#define ctrsv_ ctrsv
|
||
|
#define cgemm_ cgemm
|
||
|
#define ctrsm_ ctrsm
|
||
|
#define cgerc_ cgerc
|
||
|
#define chemv_ chemv
|
||
|
#define cher2_ cher2
|
||
|
|
||
|
#define dzasum_ dzasum
|
||
|
#define izamax_ izamax
|
||
|
#define zcopy_ zcopy
|
||
|
#define zscal_ zscal
|
||
|
#define dznrm2_ dznrm2
|
||
|
#define zaxpy_ zaxpy
|
||
|
#define zgemv_ zgemv
|
||
|
#define ztrsv_ ztrsv
|
||
|
#define zgemm_ zgemm
|
||
|
#define ztrsm_ ztrsm
|
||
|
#define zgerc_ zgerc
|
||
|
#define zhemv_ zhemv
|
||
|
#define zher2_ zher2
|
||
|
|
||
|
#define c_bridge_dgssv_ c_bridge_dgssv
|
||
|
#define c_fortran_dgssv_ c_fortran_dgssv
|
||
|
#endif
|
||
|
|
||
|
#endif /* __SUPERLU_CNAMES */
|