| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | |
| |
|
| | #ifndef CCOLAMD_H |
| | #define CCOLAMD_H |
| |
|
| | |
| | #ifdef __cplusplus |
| | extern "C" { |
| | #endif |
| |
|
| | |
| | #include <stdlib.h> |
| |
|
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #define CCOLAMD_DATE "May 4, 2016" |
| | #define CCOLAMD_VERSION_CODE(main,sub) ((main) * 1000 + (sub)) |
| | #define CCOLAMD_MAIN_VERSION 2 |
| | #define CCOLAMD_SUB_VERSION 9 |
| | #define CCOLAMD_SUBSUB_VERSION 6 |
| | #define CCOLAMD_VERSION \ |
| | CCOLAMD_VERSION_CODE(CCOLAMD_MAIN_VERSION,CCOLAMD_SUB_VERSION) |
| |
|
| | |
| | |
| | |
| |
|
| | |
| | #define CCOLAMD_KNOBS 20 |
| |
|
| | |
| | #define CCOLAMD_STATS 20 |
| |
|
| | |
| | #define CCOLAMD_DENSE_ROW 0 |
| |
|
| | |
| | #define CCOLAMD_DENSE_COL 1 |
| |
|
| | |
| | #define CCOLAMD_AGGRESSIVE 2 |
| |
|
| | |
| | #define CCOLAMD_LU 3 |
| |
|
| | |
| | #define CCOLAMD_DEFRAG_COUNT 2 |
| |
|
| | |
| | #define CCOLAMD_STATUS 3 |
| |
|
| | |
| | #define CCOLAMD_INFO1 4 |
| | #define CCOLAMD_INFO2 5 |
| | #define CCOLAMD_INFO3 6 |
| |
|
| | |
| | #define CCOLAMD_EMPTY_ROW 7 |
| | |
| | #define CCOLAMD_EMPTY_COL 8 |
| | |
| | #define CCOLAMD_NEWLY_EMPTY_ROW 9 |
| | |
| | #define CCOLAMD_NEWLY_EMPTY_COL 10 |
| |
|
| | |
| | #define CCOLAMD_OK (0) |
| | #define CCOLAMD_OK_BUT_JUMBLED (1) |
| | #define CCOLAMD_ERROR_A_not_present (-1) |
| | #define CCOLAMD_ERROR_p_not_present (-2) |
| | #define CCOLAMD_ERROR_nrow_negative (-3) |
| | #define CCOLAMD_ERROR_ncol_negative (-4) |
| | #define CCOLAMD_ERROR_nnz_negative (-5) |
| | #define CCOLAMD_ERROR_p0_nonzero (-6) |
| | #define CCOLAMD_ERROR_A_too_small (-7) |
| | #define CCOLAMD_ERROR_col_length_negative (-8) |
| | #define CCOLAMD_ERROR_row_index_out_of_bounds (-9) |
| | #define CCOLAMD_ERROR_out_of_memory (-10) |
| | #define CCOLAMD_ERROR_invalid_cmember (-11) |
| | #define CCOLAMD_ERROR_internal_error (-999) |
| |
|
| | |
| | |
| | |
| |
|
| | #include "SuiteSparse_config.h" |
| |
|
| | size_t ccolamd_recommended |
| | |
| | ( |
| | int nnz, |
| | int n_row, |
| | int n_col |
| | ) ; |
| |
|
| | size_t ccolamd_l_recommended |
| | |
| | ( |
| | SuiteSparse_long nnz, |
| | SuiteSparse_long n_row, |
| | SuiteSparse_long n_col |
| | ) ; |
| |
|
| | void ccolamd_set_defaults |
| | ( |
| | double knobs [CCOLAMD_KNOBS] |
| | ) ; |
| |
|
| | void ccolamd_l_set_defaults |
| | ( |
| | double knobs [CCOLAMD_KNOBS] |
| | ) ; |
| |
|
| | int ccolamd |
| | ( |
| | int n_row, |
| | int n_col, |
| | int Alen, |
| | int A [ ], |
| | int p [ ], |
| | double knobs [CCOLAMD_KNOBS], |
| | int stats [CCOLAMD_STATS], |
| | int cmember [ ] |
| | ) ; |
| |
|
| | SuiteSparse_long ccolamd_l |
| | ( |
| | SuiteSparse_long n_row, |
| | SuiteSparse_long n_col, |
| | SuiteSparse_long Alen, |
| | SuiteSparse_long A [ ], |
| | SuiteSparse_long p [ ], |
| | double knobs [CCOLAMD_KNOBS], |
| | SuiteSparse_long stats [CCOLAMD_STATS], |
| | SuiteSparse_long cmember [ ] |
| | ) ; |
| |
|
| | int 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 |
| | ) ; |
| |
|
| | SuiteSparse_long csymamd_l |
| | ( |
| | SuiteSparse_long n, |
| | SuiteSparse_long A [ ], |
| | SuiteSparse_long p [ ], |
| | SuiteSparse_long perm [ ], |
| | double knobs [CCOLAMD_KNOBS], |
| | SuiteSparse_long stats [CCOLAMD_STATS], |
| | void * (*allocate) (size_t, size_t), |
| | void (*release) (void *), |
| | SuiteSparse_long cmember [ ], |
| | SuiteSparse_long stype |
| | ) ; |
| |
|
| | void ccolamd_report |
| | ( |
| | int stats [CCOLAMD_STATS] |
| | ) ; |
| |
|
| | void ccolamd_l_report |
| | ( |
| | SuiteSparse_long stats [CCOLAMD_STATS] |
| | ) ; |
| |
|
| | void csymamd_report |
| | ( |
| | int stats [CCOLAMD_STATS] |
| | ) ; |
| |
|
| | void csymamd_l_report |
| | ( |
| | SuiteSparse_long stats [CCOLAMD_STATS] |
| | ) ; |
| |
|
| |
|
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | |
| |
|
| | int 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 [ ] |
| | ) ; |
| |
|
| | SuiteSparse_long ccolamd2_l |
| | ( |
| | SuiteSparse_long n_row, |
| | SuiteSparse_long n_col, |
| | SuiteSparse_long Alen, |
| | SuiteSparse_long A [ ], |
| | SuiteSparse_long p [ ], |
| | double knobs [CCOLAMD_KNOBS], |
| | SuiteSparse_long stats [CCOLAMD_STATS], |
| | SuiteSparse_long Front_npivcol [ ], |
| | SuiteSparse_long Front_nrows [ ], |
| | SuiteSparse_long Front_ncols [ ], |
| | SuiteSparse_long Front_parent [ ], |
| | SuiteSparse_long Front_cols [ ], |
| | SuiteSparse_long *p_nfr, |
| | SuiteSparse_long InFront [ ], |
| | SuiteSparse_long cmember [ ] |
| | ) ; |
| |
|
| | void ccolamd_apply_order |
| | ( |
| | int Front [ ], |
| | const int Order [ ], |
| | int Temp [ ], |
| | int nn, |
| | int nfr |
| | ) ; |
| |
|
| | void ccolamd_l_apply_order |
| | ( |
| | SuiteSparse_long Front [ ], |
| | const SuiteSparse_long Order [ ], |
| | SuiteSparse_long Temp [ ], |
| | SuiteSparse_long nn, |
| | SuiteSparse_long nfr |
| | ) ; |
| |
|
| |
|
| | void ccolamd_fsize |
| | ( |
| | int nn, |
| | int MaxFsize [ ], |
| | int Fnrows [ ], |
| | int Fncols [ ], |
| | int Parent [ ], |
| | int Npiv [ ] |
| | ) ; |
| |
|
| | void ccolamd_l_fsize |
| | ( |
| | SuiteSparse_long nn, |
| | SuiteSparse_long MaxFsize [ ], |
| | SuiteSparse_long Fnrows [ ], |
| | SuiteSparse_long Fncols [ ], |
| | SuiteSparse_long Parent [ ], |
| | SuiteSparse_long Npiv [ ] |
| | ) ; |
| |
|
| | void ccolamd_postorder |
| | ( |
| | int nn, |
| | int Parent [ ], |
| | int Npiv [ ], |
| | int Fsize [ ], |
| | int Order [ ], |
| | int Child [ ], |
| | int Sibling [ ], |
| | int Stack [ ], |
| | int Front_cols [ ], |
| | int cmember [ ] |
| | ) ; |
| |
|
| | void ccolamd_l_postorder |
| | ( |
| | SuiteSparse_long nn, |
| | SuiteSparse_long Parent [ ], |
| | SuiteSparse_long Npiv [ ], |
| | SuiteSparse_long Fsize [ ], |
| | SuiteSparse_long Order [ ], |
| | SuiteSparse_long Child [ ], |
| | SuiteSparse_long Sibling [ ], |
| | SuiteSparse_long Stack [ ], |
| | SuiteSparse_long Front_cols [ ], |
| | SuiteSparse_long cmember [ ] |
| | ) ; |
| |
|
| | int ccolamd_post_tree |
| | ( |
| | int root, |
| | int k, |
| | int Child [ ], |
| | const int Sibling [ ], |
| | int Order [ ], |
| | int Stack [ ] |
| | ) ; |
| |
|
| | SuiteSparse_long ccolamd_l_post_tree |
| | ( |
| | SuiteSparse_long root, |
| | SuiteSparse_long k, |
| | SuiteSparse_long Child [ ], |
| | const SuiteSparse_long Sibling [ ], |
| | SuiteSparse_long Order [ ], |
| | SuiteSparse_long Stack [ ] |
| | ) ; |
| |
|
| | #ifdef __cplusplus |
| | } |
| | #endif |
| |
|
| | #endif |
| |
|