Amesos Package Browser (Single Doxygen Collection) Development
amesos_UFconfig.h
Go to the documentation of this file.
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.0.0 contains the following packages:
00080  *
00081  *  AMD       version 2.2.0
00082  *  CAMD      version 2.2.0
00083  *  COLAMD      version 2.7.0
00084  *  CCOLAMD     version 2.7.0
00085  *  CHOLMOD     version 1.5.0
00086  *  CSparse     version 2.2.0
00087  *  CXSparse      version 2.2.0
00088  *  KLU       version 1.0.0
00089  *  BTF       version 1.0.0
00090  *  LDL       version 2.0.0
00091  *  UFconfig      version number is the same as SuiteSparse
00092  *  UMFPACK     version 5.1.0
00093  *  RBio      version 1.1.0
00094  *  UFcollection    version 1.1.0
00095  *
00096  * Other package dependencies:
00097  *  BLAS      required by CHOLMOD and UMFPACK
00098  *  LAPACK      required by CHOLMOD
00099  *  METIS 4.0.1     required by CHOLMOD (optional) and KLU (optional)
00100  */
00101 
00102 #define SUITESPARSE_DATE "May 31, 2007"
00103 #define SUITESPARSE_VER_CODE(main,sub) ((main) * 1000 + (sub))
00104 #define SUITESPARSE_MAIN_VERSION 3
00105 #define SUITESPARSE_SUB_VERSION 0
00106 #define SUITESPARSE_SUBSUB_VERSION 0
00107 #define SUITESPARSE_VERSION \
00108     SUITESPARSE_VER_CODE(SUITESPARSE_MAIN_VERSION,SUITESPARSE_SUB_VERSION)
00109 
00110 #ifdef __cplusplus
00111 }
00112 #endif
00113 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines