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