|
#define | NDEBUG |
|
#define | NULL ((void *) 0) |
|
#define | PUBLIC |
|
#define | PRIVATE static |
|
#define | DENSE_DEGREE(alpha, n) ((Int) MAX (16.0, (alpha) * sqrt ((double) (n)))) |
|
#define | MAX(a, b) (((a) > (b)) ? (a) : (b)) |
|
#define | MIN(a, b) (((a) < (b)) ? (a) : (b)) |
|
#define | ONES_COMPLEMENT(r) (-(r)-1) |
|
#define | TRUE (1) |
|
#define | FALSE (0) |
|
#define | EMPTY (-1) |
|
#define | ALIVE (0) |
|
#define | DEAD (-1) |
|
#define | DEAD_PRINCIPAL (-1) |
|
#define | DEAD_NON_PRINCIPAL (-2) |
|
#define | ROW_IS_DEAD(r) ROW_IS_MARKED_DEAD (Row[r].shared2.mark) |
|
#define | ROW_IS_MARKED_DEAD(row_mark) (row_mark < ALIVE) |
|
#define | ROW_IS_ALIVE(r) (Row [r].shared2.mark >= ALIVE) |
|
#define | COL_IS_DEAD(c) (Col [c].start < ALIVE) |
|
#define | COL_IS_ALIVE(c) (Col [c].start >= ALIVE) |
|
#define | COL_IS_DEAD_PRINCIPAL(c) (Col [c].start == DEAD_PRINCIPAL) |
|
#define | KILL_ROW(r) { Row [r].shared2.mark = DEAD ; } |
|
#define | KILL_PRINCIPAL_COL(c) { Col [c].start = DEAD_PRINCIPAL ; } |
|
#define | KILL_NON_PRINCIPAL_COL(c) { Col [c].start = DEAD_NON_PRINCIPAL ; } |
|
#define | INDEX(i) (i) |
|
#define | DEBUG0(params) ; |
|
#define | DEBUG1(params) ; |
|
#define | DEBUG2(params) ; |
|
#define | DEBUG3(params) ; |
|
#define | DEBUG4(params) ; |
|
#define | ASSERT(expression) |
|
#define | COLAMD_C(n_col, ok) ((t_mult (t_add (n_col, 1, ok), sizeof (Colamd_Col), ok) / sizeof (Int))) |
|
#define | COLAMD_R(n_row, ok) ((t_mult (t_add (n_row, 1, ok), sizeof (Colamd_Row), ok) / sizeof (Int))) |
|
|
PRIVATE Int | init_rows_cols (Int n_row, Int n_col, Colamd_Row Row[], Colamd_Col Col[], Int A[], Int p[], Int stats[COLAMD_STATS]) |
|
PRIVATE void | init_scoring (Int n_row, Int n_col, Colamd_Row Row[], Colamd_Col Col[], Int A[], Int head[], double knobs[COLAMD_KNOBS], Int *p_n_row2, Int *p_n_col2, Int *p_max_deg) |
|
PRIVATE Int | find_ordering (Int n_row, Int n_col, Int Alen, Colamd_Row Row[], Colamd_Col Col[], Int A[], Int head[], Int n_col2, Int max_deg, Int pfree, Int aggressive) |
|
PRIVATE void | order_children (Int n_col, Colamd_Col Col[], Int p[]) |
|
PRIVATE void | detect_super_cols (Colamd_Col Col[], Int A[], Int head[], Int row_start, Int row_length) |
|
PRIVATE Int | garbage_collection (Int n_row, Int n_col, Colamd_Row Row[], Colamd_Col Col[], Int A[], Int *pfree) |
|
PRIVATE Int | clear_mark (Int tag_mark, Int max_mark, Int n_row, Colamd_Row Row[]) |
|
PRIVATE void | print_report (char *method, Int stats[COLAMD_STATS]) |
|
static size_t | t_add (size_t a, size_t b, int *ok) |
|
static size_t | t_mult (size_t a, size_t k, int *ok) |
|
PUBLIC size_t | COLAMD_recommended (Int nnz, Int n_row, Int n_col) |
|
PUBLIC void | COLAMD_set_defaults (double knobs[COLAMD_KNOBS]) |
|
PUBLIC Int | SYMAMD_MAIN (Int n, Int A[], Int p[], Int perm[], double knobs[COLAMD_KNOBS], Int stats[COLAMD_STATS], void *(*allocate)(size_t, size_t), void(*release)(void *)) |
|
PUBLIC Int | COLAMD_MAIN (Int n_row, Int n_col, Int Alen, Int A[], Int p[], double knobs[COLAMD_KNOBS], Int stats[COLAMD_STATS]) |
|
Copyright (c) 2003, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from U.S. Dept. of Energy)
All rights reserved.
The source code is distributed under BSD license, see the file License.txt at the top-level directory.