00001 /* ========================================================================== */ 00002 /* === colamd prototypes and definitions ==================================== */ 00003 /* ========================================================================== */ 00004 00005 /* 00006 This is the colamd include file, 00007 00008 http://www.cise.ufl.edu/~davis/colamd/colamd.h 00009 00010 for use in the colamd.c, colamdmex.c, and symamdmex.c files located at 00011 00012 http://www.cise.ufl.edu/~davis/colamd/ 00013 00014 See those files for a description of colamd and symamd, and for the 00015 copyright notice, which also applies to this file. 00016 00017 August 3, 1998. Version 1.0. 00018 */ 00019 00020 /* ========================================================================== */ 00021 /* === Definitions ========================================================== */ 00022 /* ========================================================================== */ 00023 00024 /* size of the knobs [ ] array. Only knobs [0..1] are currently used. */ 00025 #define COLAMD_KNOBS 20 00026 00027 /* number of output statistics. Only A [0..2] are currently used. */ 00028 #define COLAMD_STATS 20 00029 00030 /* knobs [0] and A [0]: dense row knob and output statistic. */ 00031 #define COLAMD_DENSE_ROW 0 00032 00033 /* knobs [1] and A [1]: dense column knob and output statistic. */ 00034 #define COLAMD_DENSE_COL 1 00035 00036 /* A [2]: memory defragmentation count output statistic */ 00037 #define COLAMD_DEFRAG_COUNT 2 00038 00039 /* A [3]: whether or not the input columns were jumbled or had duplicates */ 00040 #define COLAMD_JUMBLED_COLS 3 00041 00042 /* ========================================================================== */ 00043 /* === Prototypes of user-callable routines ================================= */ 00044 /* ========================================================================== */ 00045 00046 int colamd_recommended /* returns recommended value of Alen */ 00047 ( 00048 int nnz, /* nonzeros in A */ 00049 int n_row, /* number of rows in A */ 00050 int n_col /* number of columns in A */ 00051 ) ; 00052 00053 void colamd_set_defaults /* sets default parameters */ 00054 ( /* knobs argument is modified on output */ 00055 double knobs [COLAMD_KNOBS] /* parameter settings for colamd */ 00056 ) ; 00057 00058 int colamd /* returns TRUE if successful, FALSE otherwise*/ 00059 ( /* A and p arguments are modified on output */ 00060 int n_row, /* number of rows in A */ 00061 int n_col, /* number of columns in A */ 00062 int Alen, /* size of the array A */ 00063 int A [], /* row indices of A, of size Alen */ 00064 int p [], /* column pointers of A, of size n_col+1 */ 00065 double knobs [COLAMD_KNOBS] /* parameter settings for colamd */ 00066 ) ; 00067