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_csymamd_report(int stats [CCOLAMD_STATS])
void amesos_csymamd_l_report(UF_long stats [CCOLAMD_STATS])
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_l_apply_order(UF_long Front [], const UF_long Order [], UF_long Temp [], UF_long nn, UF_long nfr)
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 [])
UF_long CHOLMOD() nnz(cholmod_sparse *A, cholmod_common *Common)
void amesos_ccolamd_l_report(UF_long stats [CCOLAMD_STATS])
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 [])
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 [])
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 [])
size_t amesos_ccolamd_recommended(int nnz, int n_row, int n_col)
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_apply_order(int Front [], const int Order [], int Temp [], int nn, int nfr)
size_t amesos_ccolamd_l_recommended(UF_long nnz, UF_long n_row, UF_long n_col)
void amesos_ccolamd_set_defaults(double knobs [CCOLAMD_KNOBS])
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 [])
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)
EXTERN int(* amesos_ccolamd_printf)(const char *,...)
void amesos_ccolamd_l_fsize(UF_long nn, UF_long MaxFsize [], UF_long Fnrows [], UF_long Fncols [], UF_long Parent [], UF_long Npiv [])
void amesos_ccolamd_report(int stats [CCOLAMD_STATS])
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_l_set_defaults(double knobs [CCOLAMD_KNOBS])
int amesos_ccolamd_post_tree(int root, int k, int Child [], const int Sibling [], int Order [], int Stack [])
void amesos_ccolamd_fsize(int nn, int MaxFsize [], int Fnrows [], int Fncols [], int Parent [], int Npiv [])