17 #ifndef AMESOS_CCOLAMD_H
18 #define AMESOS_CCOLAMD_H
46 #define CCOLAMD_DATE "May 31, 2007"
47 #define CCOLAMD_VERSION_CODE(main,sub) ((main) * 1000 + (sub))
48 #define CCOLAMD_MAIN_VERSION 2
49 #define CCOLAMD_SUB_VERSION 7
50 #define CCOLAMD_SUBSUB_VERSION 0
51 #define CCOLAMD_VERSION \
52 CCOLAMD_VERSION_CODE(CCOLAMD_MAIN_VERSION,CCOLAMD_SUB_VERSION)
59 #define CCOLAMD_KNOBS 20
62 #define CCOLAMD_STATS 20
65 #define CCOLAMD_DENSE_ROW 0
68 #define CCOLAMD_DENSE_COL 1
71 #define CCOLAMD_AGGRESSIVE 2
77 #define CCOLAMD_DEFRAG_COUNT 2
80 #define CCOLAMD_STATUS 3
83 #define CCOLAMD_INFO1 4
84 #define CCOLAMD_INFO2 5
85 #define CCOLAMD_INFO3 6
88 #define CCOLAMD_EMPTY_ROW 7
90 #define CCOLAMD_EMPTY_COL 8
92 #define CCOLAMD_NEWLY_EMPTY_ROW 9
94 #define CCOLAMD_NEWLY_EMPTY_COL 10
97 #define CCOLAMD_OK (0)
98 #define CCOLAMD_OK_BUT_JUMBLED (1)
99 #define CCOLAMD_ERROR_A_not_present (-1)
100 #define CCOLAMD_ERROR_p_not_present (-2)
101 #define CCOLAMD_ERROR_nrow_negative (-3)
102 #define CCOLAMD_ERROR_ncol_negative (-4)
103 #define CCOLAMD_ERROR_nnz_negative (-5)
104 #define CCOLAMD_ERROR_p0_nonzero (-6)
105 #define CCOLAMD_ERROR_A_too_small (-7)
106 #define CCOLAMD_ERROR_col_length_negative (-8)
107 #define CCOLAMD_ERROR_row_index_out_of_bounds (-9)
108 #define CCOLAMD_ERROR_out_of_memory (-10)
109 #define CCOLAMD_ERROR_invalid_cmember (-11)
110 #define CCOLAMD_ERROR_internal_error (-999)
177 void * (*allocate) (size_t, size_t),
179 void (*release) (
void *),
193 void * (*allocate) (size_t, size_t),
194 void (*release) (
void *),
239 int Front_npivcol [ ],
242 int Front_parent [ ],
340 const int Sibling [ ],
356 #define EXTERN extern
void amesos_ccolamd_l_report(UF_long stats[CCOLAMD_STATS])
void amesos_ccolamd_report(int stats[CCOLAMD_STATS])
void amesos_ccolamd_l_set_defaults(double knobs[CCOLAMD_KNOBS])
UF_long amesos_ccolamd_l_post_tree(UF_long root, UF_long k, UF_long Child[], const UF_long Sibling[], UF_long Order[], UF_long Stack[])
UF_long CHOLMOD() nnz(cholmod_sparse *A, cholmod_common *Common)
void amesos_ccolamd_l_fsize(UF_long nn, UF_long MaxFsize[], UF_long Fnrows[], UF_long Fncols[], UF_long Parent[], UF_long Npiv[])
UF_long amesos_ccolamd2_l(UF_long n_row, UF_long n_col, UF_long Alen, UF_long A[], UF_long p[], double knobs[CCOLAMD_KNOBS], UF_long stats[CCOLAMD_STATS], UF_long Front_npivcol[], UF_long Front_nrows[], UF_long Front_ncols[], UF_long Front_parent[], UF_long Front_cols[], UF_long *p_nfr, UF_long InFront[], UF_long cmember[])
void amesos_ccolamd_postorder(int nn, int Parent[], int Npiv[], int Fsize[], int Order[], int Child[], int Sibling[], int Stack[], int Front_cols[], int cmember[])
size_t amesos_ccolamd_recommended(int nnz, int n_row, int n_col)
size_t amesos_ccolamd_l_recommended(UF_long nnz, UF_long n_row, UF_long n_col)
UF_long amesos_csymamd_l(UF_long n, UF_long A[], UF_long p[], UF_long perm[], double knobs[CCOLAMD_KNOBS], UF_long stats[CCOLAMD_STATS], void *(*allocate)(size_t, size_t), void(*release)(void *), UF_long cmember[], UF_long stype)
void amesos_ccolamd_set_defaults(double knobs[CCOLAMD_KNOBS])
int amesos_ccolamd2(int n_row, int n_col, int Alen, int A[], int p[], double knobs[CCOLAMD_KNOBS], int stats[CCOLAMD_STATS], int Front_npivcol[], int Front_nrows[], int Front_ncols[], int Front_parent[], int Front_cols[], int *p_nfr, int InFront[], int cmember[])
void amesos_ccolamd_fsize(int nn, int MaxFsize[], int Fnrows[], int Fncols[], int Parent[], int Npiv[])
int amesos_csymamd(int n, int A[], int p[], int perm[], double knobs[CCOLAMD_KNOBS], int stats[CCOLAMD_STATS], void *(*allocate)(size_t, size_t), void(*release)(void *), int cmember[], int stype)
void amesos_ccolamd_l_apply_order(UF_long Front[], const UF_long Order[], UF_long Temp[], UF_long nn, UF_long nfr)
int amesos_ccolamd_post_tree(int root, int k, int Child[], const int Sibling[], int Order[], int Stack[])
EXTERN int(* amesos_ccolamd_printf)(const char *,...)
int amesos_ccolamd(int n_row, int n_col, int Alen, int A[], int p[], double knobs[CCOLAMD_KNOBS], int stats[CCOLAMD_STATS], int cmember[])
void amesos_csymamd_l_report(UF_long stats[CCOLAMD_STATS])
UF_long amesos_ccolamd_l(UF_long n_row, UF_long n_col, UF_long Alen, UF_long A[], UF_long p[], double knobs[CCOLAMD_KNOBS], UF_long stats[CCOLAMD_STATS], UF_long cmember[])
void amesos_ccolamd_l_postorder(UF_long nn, UF_long Parent[], UF_long Npiv[], UF_long Fsize[], UF_long Order[], UF_long Child[], UF_long Sibling[], UF_long Stack[], UF_long Front_cols[], UF_long cmember[])
void amesos_ccolamd_apply_order(int Front[], const int Order[], int Temp[], int nn, int nfr)
void amesos_csymamd_report(int stats[CCOLAMD_STATS])