Blame view

fvn_sparse/UFconfig/UFconfig.h 3.96 KB
422234dc3   daniau   git-svn-id: https...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
  /* ========================================================================== */
  /* === 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.0.0 contains the following packages:
   *
   *  AMD		    version 2.2.0
   *  CAMD	    version 2.2.0
   *  COLAMD	    version 2.7.0
   *  CCOLAMD	    version 2.7.0
   *  CHOLMOD	    version 1.5.0
   *  CSparse	    version 2.2.0
   *  CXSparse	    version 2.2.0
   *  KLU		    version 1.0.0
   *  BTF		    version 1.0.0
   *  LDL		    version 2.0.0
   *  UFconfig	    version number is the same as SuiteSparse
   *  UMFPACK	    version 5.1.0
   *  RBio	    version 1.1.0
   *  UFcollection    version 1.1.0
   *
   * 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 31, 2007"
  #define SUITESPARSE_VER_CODE(main,sub) ((main) * 1000 + (sub))
  #define SUITESPARSE_MAIN_VERSION 3
  #define SUITESPARSE_SUB_VERSION 0
  #define SUITESPARSE_SUBSUB_VERSION 0
  #define SUITESPARSE_VERSION \
      SUITESPARSE_VER_CODE(SUITESPARSE_MAIN_VERSION,SUITESPARSE_SUB_VERSION)
  
  #ifdef __cplusplus
  }
  #endif
  #endif