00001 /* ========================================================================== */ 00002 /* === UFconfig.h =========================================================== */ 00003 /* ========================================================================== */ 00004 00005 /* Configuration file for SuiteSparse: a Suite of Sparse matrix packages 00006 * (AMD, COLAMD, CCOLAMD, CAMD, CHOLMOD, UMFPACK, CXSparse, and others). 00007 * 00008 * UFconfig.h provides the definition of the long integer. On most systems, 00009 * a C program can be compiled in LP64 mode, in which long's and pointers are 00010 * both 64-bits, and int's are 32-bits. Windows 64, however, uses the LLP64 00011 * model, in which int's and long's are 32-bits, and long long's and pointers 00012 * are 64-bits. 00013 * 00014 * SuiteSparse packages that include long integer versions are 00015 * intended for the LP64 mode. However, as a workaround for Windows 64 00016 * (and perhaps other systems), the long integer can be redefined. 00017 * 00018 * If _WIN64 is defined, then the __int64 type is used instead of long. 00019 * 00020 * The long integer can also be defined at compile time. For example, this 00021 * could be added to UFconfig.mk: 00022 * 00023 * CFLAGS = -O -D'UF_long=long long' -D'UF_long_max=9223372036854775801' \ 00024 * -D'UF_long_id="%lld"' 00025 * 00026 * This file defines UF_long as either long (on all but _WIN64) or 00027 * __int64 on Windows 64. The intent is that a UF_long is always a 64-bit 00028 * integer in a 64-bit code. ptrdiff_t might be a better choice than long; 00029 * it is always the same size as a pointer. 00030 * 00031 * This file also defines the SUITESPARSE_VERSION and related definitions. 00032 * 00033 * Copyright (c) 2007, University of Florida. No licensing restrictions 00034 * apply to this file or to the UFconfig directory. Author: Timothy A. Davis. 00035 */ 00036 00037 #ifndef _UFCONFIG_H 00038 #define _UFCONFIG_H 00039 00040 #ifdef __cplusplus 00041 extern "C" { 00042 #endif 00043 00044 #include <limits.h> 00045 00046 /* ========================================================================== */ 00047 /* === UF_long ============================================================== */ 00048 /* ========================================================================== */ 00049 00050 #ifndef UF_long 00051 00052 #ifdef _WIN64 00053 00054 #define UF_long __int64 00055 #define UF_long_max _I64_MAX 00056 #define UF_long_id "%I64d" 00057 00058 #else 00059 00060 #define UF_long long 00061 #define UF_long_max LONG_MAX 00062 #define UF_long_id "%ld" 00063 00064 #endif 00065 #endif 00066 00067 /* ========================================================================== */ 00068 /* === SuiteSparse version ================================================== */ 00069 /* ========================================================================== */ 00070 00071 /* SuiteSparse is not a package itself, but a collection of packages, some of 00072 * which must be used together (UMFPACK requires AMD, CHOLMOD requires AMD, 00073 * COLAMD, CAMD, and CCOLAMD, etc). A version number is provided here for the 00074 * collection itself. The versions of packages within each version of 00075 * SuiteSparse are meant to work together. Combining one packge from one 00076 * version of SuiteSparse, with another package from another version of 00077 * SuiteSparse, may or may not work. 00078 * 00079 * SuiteSparse Version 3.4.0 contains the following packages: 00080 * 00081 * AMD version 2.2.0 00082 * CAMD version 2.2.0 00083 * COLAMD version 2.7.1 00084 * CCOLAMD version 2.7.1 00085 * CHOLMOD version 1.7.1 00086 * CSparse version 2.2.3 00087 * CXSparse version 2.2.3 00088 * KLU version 1.1.0 00089 * BTF version 1.1.0 00090 * LDL version 2.0.1 00091 * UFconfig version number is the same as SuiteSparse 00092 * UMFPACK version 5.4.0 00093 * RBio version 1.1.2 00094 * UFcollection version 1.2.0 00095 * LINFACTOR version 1.1.0 00096 * MESHND version 1.1.1 00097 * SSMULT version 2.0.0 00098 * MATLAB_Tools no specific version number 00099 * SuiteSparseQR version 1.1.2 00100 * 00101 * Other package dependencies: 00102 * BLAS required by CHOLMOD and UMFPACK 00103 * LAPACK required by CHOLMOD 00104 * METIS 4.0.1 required by CHOLMOD (optional) and KLU (optional) 00105 */ 00106 00107 #define SUITESPARSE_DATE "May 20, 2009" 00108 #define SUITESPARSE_VER_CODE(main,sub) ((main) * 1000 + (sub)) 00109 #define SUITESPARSE_MAIN_VERSION 3 00110 #define SUITESPARSE_SUB_VERSION 4 00111 #define SUITESPARSE_SUBSUB_VERSION 0 00112 #define SUITESPARSE_VERSION \ 00113 SUITESPARSE_VER_CODE(SUITESPARSE_MAIN_VERSION,SUITESPARSE_SUB_VERSION) 00114 00115 #ifdef __cplusplus 00116 } 00117 #endif 00118 #endif