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
114
115
116
117
118
119
120
121
122
123
124
125
|
/* ========================================================================== */
/* === Include/cholmod.h ==================================================== */
/* ========================================================================== */
/* -----------------------------------------------------------------------------
* CHOLMOD/Include/cholmod.h.
* Copyright (C) 2005-2013, Univ. of Florida. Author: Timothy A. Davis
* CHOLMOD/Include/cholmod.h is licensed under Version 2.1 of the GNU
* Lesser General Public License. See lesser.txt for a text of the license.
* CHOLMOD is also available under other licenses; contact authors for details.
* http://www.suitesparse.com
*
* Portions of CHOLMOD (the Core and Partition Modules) are copyrighted by the
* University of Florida. The Modify Module is co-authored by William W.
* Hager, Univ. of Florida.
*
* Acknowledgements: this work was supported in part by the National Science
* Foundation (NFS CCR-0203270 and DMS-9803599), and a grant from Sandia
* National Laboratories (Dept. of Energy) which supported the development of
* CHOLMOD's Partition Module.
* -------------------------------------------------------------------------- */
/* CHOLMOD include file, for inclusion user programs.
*
* The include files listed below include a short description of each user-
* callable routine. Each routine in CHOLMOD has a consistent interface.
* More details about the CHOLMOD data types is in the cholmod_core.h file.
*
* Naming convention:
* ------------------
*
* All routine names, data types, and CHOLMOD library files use the
* cholmod_ prefix. All macros and other #define's use the CHOLMOD
* prefix.
*
* Return value:
* -------------
*
* Most CHOLMOD routines return an int (TRUE (1) if successful, or FALSE
* (0) otherwise. A SuiteSparse_long or double return value is >= 0 if
* successful, or -1 otherwise. A size_t return value is > 0 if
* successful, or 0 otherwise.
*
* If a routine returns a pointer, it is a pointer to a newly allocated
* object or NULL if a failure occured, with one exception. cholmod_free
* always returns NULL.
*
* "Common" parameter:
* ------------------
*
* The last parameter in all CHOLMOD routines is a pointer to the CHOLMOD
* "Common" object. This contains control parameters, statistics, and
* workspace used between calls to CHOLMOD. It is always an input/output
* parameter.
*
* Input, Output, and Input/Output parameters:
* -------------------------------------------
*
* Input parameters are listed first. They are not modified by CHOLMOD.
*
* Input/output are listed next. They must be defined on input, and
* are modified on output.
*
* Output parameters are listed next. If they are pointers, they must
* point to allocated space on input, but their contents are not defined
* on input.
*
* Workspace parameters appear next. They are used in only two routines
* in the Supernodal module.
*
* The cholmod_common *Common parameter always appears as the last
* parameter. It is always an input/output parameter.
*/
#ifndef CHOLMOD_H
#define CHOLMOD_H
/* make it easy for C++ programs to include CHOLMOD */
#ifdef __cplusplus
extern "C" {
#endif
/* assume large file support. If problems occur, compile with -DNLARGEFILE */
#include "cholmod_io64.h"
#include "SuiteSparse_config.h"
#include "cholmod_config.h"
/* CHOLMOD always includes the Core module. */
#include "cholmod_core.h"
#ifndef NCHECK
#include "cholmod_check.h"
#endif
#ifndef NCHOLESKY
#include "cholmod_cholesky.h"
#endif
#ifndef NMATRIXOPS
#include "cholmod_matrixops.h"
#endif
#ifndef NMODIFY
#include "cholmod_modify.h"
#endif
#ifndef NCAMD
#include "cholmod_camd.h"
#endif
#ifndef NPARTITION
#include "cholmod_partition.h"
#endif
#ifndef NSUPERNODAL
#include "cholmod_supernodal.h"
#endif
#ifdef __cplusplus
}
#endif
#endif
|