00001 /* ========================================================================== */ 00002 /* === Include/cholmod.h ==================================================== */ 00003 /* ========================================================================== */ 00004 00005 /* ----------------------------------------------------------------------------- 00006 * CHOLMOD/Include/cholmod.h. 00007 * Copyright (C) 2005-2006, Univ. of Florida. Author: Timothy A. Davis 00008 * CHOLMOD/Include/cholmod.h is licensed under Version 2.1 of the GNU 00009 * Lesser General Public License. See lesser.txt for a text of the license. 00010 * CHOLMOD is also available under other licenses; contact authors for details. 00011 * http://www.cise.ufl.edu/research/sparse 00012 * 00013 * Portions of CHOLMOD (the Core and Partition Modules) are copyrighted by the 00014 * University of Florida. The Modify Module is co-authored by William W. 00015 * Hager, Univ. of Florida. 00016 * 00017 * Acknowledgements: this work was supported in part by the National Science 00018 * Foundation (NFS CCR-0203270 and DMS-9803599), and a grant from Sandia 00019 * National Laboratories (Dept. of Energy) which supported the development of 00020 * CHOLMOD's Partition Module. 00021 * -------------------------------------------------------------------------- */ 00022 00023 /* CHOLMOD include file, for inclusion user programs. 00024 * 00025 * The include files listed below include a short description of each user- 00026 * callable routine. Each routine in CHOLMOD has a consistent interface. 00027 * More details about the CHOLMOD data types is in the cholmod_core.h file. 00028 * 00029 * Naming convention: 00030 * ------------------ 00031 * 00032 * All routine names, data types, and CHOLMOD library files use the 00033 * cholmod_ prefix. All macros and other #define's use the CHOLMOD 00034 * prefix. 00035 * 00036 * Return value: 00037 * ------------- 00038 * 00039 * Most CHOLMOD routines return an int (TRUE (1) if successful, or FALSE 00040 * (0) otherwise. A UF_long or double return value is >= 0 if successful, 00041 * or -1 otherwise. A size_t return value is > 0 if successful, or 0 00042 * otherwise. 00043 * 00044 * If a routine returns a pointer, it is a pointer to a newly allocated 00045 * object or NULL if a failure occured, with one exception. cholmod_free 00046 * always returns NULL. 00047 * 00048 * "Common" parameter: 00049 * ------------------ 00050 * 00051 * The last parameter in all CHOLMOD routines is a pointer to the CHOLMOD 00052 * "Common" object. This contains control parameters, statistics, and 00053 * workspace used between calls to CHOLMOD. It is always an input/output 00054 * parameter. 00055 * 00056 * Input, Output, and Input/Output parameters: 00057 * ------------------------------------------- 00058 * 00059 * Input parameters are listed first. They are not modified by CHOLMOD. 00060 * 00061 * Input/output are listed next. They must be defined on input, and 00062 * are modified on output. 00063 * 00064 * Output parameters are listed next. If they are pointers, they must 00065 * point to allocated space on input, but their contents are not defined 00066 * on input. 00067 * 00068 * Workspace parameters appear next. They are used in only two routines 00069 * in the Supernodal module. 00070 * 00071 * The cholmod_common *Common parameter always appears as the last 00072 * parameter. It is always an input/output parameter. 00073 */ 00074 00075 #ifndef CHOLMOD_H 00076 #define CHOLMOD_H 00077 00078 /* make it easy for C++ programs to include CHOLMOD */ 00079 #ifdef __cplusplus 00080 extern "C" { 00081 #endif 00082 00083 /* assume large file support. If problems occur, compile with -DNLARGEFILE */ 00084 #include "cholmod_io64.h" 00085 00086 /* define UF_long */ 00087 #include "UFconfig.h" 00088 00089 #include "cholmod_config.h" 00090 00091 /* CHOLMOD always includes the Core module. */ 00092 #include "cholmod_core.h" 00093 00094 #ifndef NCHECK 00095 #include "cholmod_check.h" 00096 #endif 00097 00098 #ifndef NCHOLESKY 00099 #include "cholmod_cholesky.h" 00100 #endif 00101 00102 #ifndef NMATRIXOPS 00103 #include "cholmod_matrixops.h" 00104 #endif 00105 00106 #ifndef NMODIFY 00107 #include "cholmod_modify.h" 00108 #endif 00109 00110 #ifndef NPARTITION 00111 #include "cholmod_partition.h" 00112 #endif 00113 00114 #ifndef NSUPERNODAL 00115 #include "cholmod_supernodal.h" 00116 #endif 00117 00118 #ifdef __cplusplus 00119 } 00120 #endif 00121 00122 #endif