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