1 /* ========================================================================== */
2 /* === Include/cholmod.h ==================================================== */
3 /* ========================================================================== */
4 
5 /* -----------------------------------------------------------------------------
6  * CHOLMOD/Include/cholmod.h.
7  * Copyright (C) 2005-2013, Univ. of Florida.  Author: Timothy A. Davis
8  * http://www.suitesparse.com
9  *
10  * Portions of CHOLMOD (the Core and Partition Modules) are copyrighted by the
11  * University of Florida.  The Modify Module is co-authored by William W.
12  * Hager, Univ. of Florida.
13  *
14  * Acknowledgements:  this work was supported in part by the National Science
15  * Foundation (NFS CCR-0203270 and DMS-9803599), and a grant from Sandia
16  * National Laboratories (Dept. of Energy) which supported the development of
17  * CHOLMOD's Partition Module.
18  * -------------------------------------------------------------------------- */
19 
20 /* CHOLMOD include file, for inclusion user programs.
21  *
22  * The include files listed below include a short description of each user-
23  * callable routine.  Each routine in CHOLMOD has a consistent interface.
24  * More details about the CHOLMOD data types is in the cholmod_core.h file.
25  *
26  * Naming convention:
27  * ------------------
28  *
29  *	All routine names, data types, and CHOLMOD library files use the
30  *	cholmod_ prefix.  All macros and other #define's use the CHOLMOD
31  *	prefix.
32  *
33  * Return value:
34  * -------------
35  *
36  *	Most CHOLMOD routines return an int (TRUE (1) if successful, or FALSE
37  *	(0) otherwise.  A SuiteSparse_long or double return value is >= 0 if
38  *	successful, or -1 otherwise.  A size_t return value is > 0 if
39  *	successful, or 0 otherwise.
40  *
41  *	If a routine returns a pointer, it is a pointer to a newly allocated
42  *	object or NULL if a failure occured, with one exception.  cholmod_free
43  *	always returns NULL.
44  *
45  * "Common" parameter:
46  * ------------------
47  *
48  *	The last parameter in all CHOLMOD routines is a pointer to the CHOLMOD
49  *	"Common" object.  This contains control parameters, statistics, and
50  *	workspace used between calls to CHOLMOD.  It is always an input/output
51  *	parameter.
52  *
53  * Input, Output, and Input/Output parameters:
54  * -------------------------------------------
55  *
56  *	Input parameters are listed first.  They are not modified by CHOLMOD.
57  *
58  *	Input/output are listed next.  They must be defined on input, and
59  *	are modified on output.
60  *
61  *	Output parameters are listed next.  If they are pointers, they must
62  *	point to allocated space on input, but their contents are not defined
63  *	on input.
64  *
65  *	Workspace parameters appear next.  They are used in only two routines
66  *	in the Supernodal module.
67  *
68  *	The cholmod_common *Common parameter always appears as the last
69  *	parameter.  It is always an input/output parameter.
70  */
71 
72 #ifndef CHOLMOD_H
73 #define CHOLMOD_H
74 
75 /* make it easy for C++ programs to include CHOLMOD */
76 #ifdef __cplusplus
77 extern "C" {
78 #endif
79 
80 /* assume large file support.  If problems occur, compile with -DNLARGEFILE */
81 #include "cholmod_io64.h"
82 
83 #include "SuiteSparse_config.h"
84 
85 #include "cholmod_config.h"
86 
87 
88 /* CHOLMOD always includes the Core module. */
89 #include "cholmod_core.h"
90 
91 #ifndef NCHECK
92 #include "cholmod_check.h"
93 #endif
94 
95 #ifndef NCHOLESKY
96 #include "cholmod_cholesky.h"
97 #endif
98 
99 #ifndef NMATRIXOPS
100 #include "cholmod_matrixops.h"
101 #endif
102 
103 #ifndef NMODIFY
104 #include "cholmod_modify.h"
105 #endif
106 
107 #ifndef NCAMD
108 #include "cholmod_camd.h"
109 #endif
110 
111 #ifndef NPARTITION
112 #include "cholmod_partition.h"
113 #endif
114 
115 #ifndef NSUPERNODAL
116 #include "cholmod_supernodal.h"
117 #endif
118 
119 #ifdef GPU_BLAS
120 #include "cholmod_gpu.h"
121 #endif
122 
123 #ifdef __cplusplus
124 }
125 #endif
126 
127 #endif
128