forked from bartvdbraak/blender
119 lines
4.1 KiB
C
119 lines
4.1 KiB
C
/* ========================================================================== */
|
|
/* === UFconfig.h =========================================================== */
|
|
/* ========================================================================== */
|
|
|
|
/* Configuration file for SuiteSparse: a Suite of Sparse matrix packages
|
|
* (AMD, COLAMD, CCOLAMD, CAMD, CHOLMOD, UMFPACK, CXSparse, and others).
|
|
*
|
|
* UFconfig.h provides the definition of the long integer. On most systems,
|
|
* a C program can be compiled in LP64 mode, in which long's and pointers are
|
|
* both 64-bits, and int's are 32-bits. Windows 64, however, uses the LLP64
|
|
* model, in which int's and long's are 32-bits, and long long's and pointers
|
|
* are 64-bits.
|
|
*
|
|
* SuiteSparse packages that include long integer versions are
|
|
* intended for the LP64 mode. However, as a workaround for Windows 64
|
|
* (and perhaps other systems), the long integer can be redefined.
|
|
*
|
|
* If _WIN64 is defined, then the __int64 type is used instead of long.
|
|
*
|
|
* The long integer can also be defined at compile time. For example, this
|
|
* could be added to UFconfig.mk:
|
|
*
|
|
* CFLAGS = -O -D'UF_long=long long' -D'UF_long_max=9223372036854775801' \
|
|
* -D'UF_long_id="%lld"'
|
|
*
|
|
* This file defines UF_long as either long (on all but _WIN64) or
|
|
* __int64 on Windows 64. The intent is that a UF_long is always a 64-bit
|
|
* integer in a 64-bit code. ptrdiff_t might be a better choice than long;
|
|
* it is always the same size as a pointer.
|
|
*
|
|
* This file also defines the SUITESPARSE_VERSION and related definitions.
|
|
*
|
|
* Copyright (c) 2007, University of Florida. No licensing restrictions
|
|
* apply to this file or to the UFconfig directory. Author: Timothy A. Davis.
|
|
*/
|
|
|
|
#ifndef _UFCONFIG_H
|
|
#define _UFCONFIG_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include <limits.h>
|
|
|
|
/* ========================================================================== */
|
|
/* === UF_long ============================================================== */
|
|
/* ========================================================================== */
|
|
|
|
#ifndef UF_long
|
|
|
|
#ifdef _WIN64
|
|
|
|
#define UF_long __int64
|
|
#define UF_long_max _I64_MAX
|
|
#define UF_long_id "%I64d"
|
|
|
|
#else
|
|
|
|
#define UF_long long
|
|
#define UF_long_max LONG_MAX
|
|
#define UF_long_id "%ld"
|
|
|
|
#endif
|
|
#endif
|
|
|
|
/* ========================================================================== */
|
|
/* === SuiteSparse version ================================================== */
|
|
/* ========================================================================== */
|
|
|
|
/* SuiteSparse is not a package itself, but a collection of packages, some of
|
|
* which must be used together (UMFPACK requires AMD, CHOLMOD requires AMD,
|
|
* COLAMD, CAMD, and CCOLAMD, etc). A version number is provided here for the
|
|
* collection itself. The versions of packages within each version of
|
|
* SuiteSparse are meant to work together. Combining one packge from one
|
|
* version of SuiteSparse, with another package from another version of
|
|
* SuiteSparse, may or may not work.
|
|
*
|
|
* SuiteSparse Version 3.4.0 contains the following packages:
|
|
*
|
|
* AMD version 2.2.0
|
|
* CAMD version 2.2.0
|
|
* COLAMD version 2.7.1
|
|
* CCOLAMD version 2.7.1
|
|
* CHOLMOD version 1.7.1
|
|
* CSparse version 2.2.3
|
|
* CXSparse version 2.2.3
|
|
* KLU version 1.1.0
|
|
* BTF version 1.1.0
|
|
* LDL version 2.0.1
|
|
* UFconfig version number is the same as SuiteSparse
|
|
* UMFPACK version 5.4.0
|
|
* RBio version 1.1.2
|
|
* UFcollection version 1.2.0
|
|
* LINFACTOR version 1.1.0
|
|
* MESHND version 1.1.1
|
|
* SSMULT version 2.0.0
|
|
* MATLAB_Tools no specific version number
|
|
* SuiteSparseQR version 1.1.2
|
|
*
|
|
* Other package dependencies:
|
|
* BLAS required by CHOLMOD and UMFPACK
|
|
* LAPACK required by CHOLMOD
|
|
* METIS 4.0.1 required by CHOLMOD (optional) and KLU (optional)
|
|
*/
|
|
|
|
#define SUITESPARSE_DATE "May 20, 2009"
|
|
#define SUITESPARSE_VER_CODE(main,sub) ((main) * 1000 + (sub))
|
|
#define SUITESPARSE_MAIN_VERSION 3
|
|
#define SUITESPARSE_SUB_VERSION 4
|
|
#define SUITESPARSE_SUBSUB_VERSION 0
|
|
#define SUITESPARSE_VERSION \
|
|
SUITESPARSE_VER_CODE(SUITESPARSE_MAIN_VERSION,SUITESPARSE_SUB_VERSION)
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|