src/colamd/colamd.h
author Alpar Juttner <alpar@cs.elte.hu>
Sun, 05 Dec 2010 17:35:23 +0100
changeset 2 4c8956a7bdf4
permissions -rw-r--r--
Set up CMAKE build environment
     1 /* colamd.h */
     2 
     3 /* Written by Andrew Makhorin <mao@gnu.org>. */
     4 
     5 #ifndef COLAMD_H
     6 #define COLAMD_H
     7 
     8 #define _GLPSTD_STDIO
     9 #include "glpenv.h"
    10 
    11 #define COLAMD_DATE "Nov 1, 2007"
    12 #define COLAMD_VERSION_CODE(main, sub) ((main) * 1000 + (sub))
    13 #define COLAMD_MAIN_VERSION 2
    14 #define COLAMD_SUB_VERSION 7
    15 #define COLAMD_SUBSUB_VERSION 1
    16 #define COLAMD_VERSION \
    17         COLAMD_VERSION_CODE(COLAMD_MAIN_VERSION, COLAMD_SUB_VERSION)
    18 
    19 #define COLAMD_KNOBS 20
    20 #define COLAMD_STATS 20
    21 #define COLAMD_DENSE_ROW 0
    22 #define COLAMD_DENSE_COL 1
    23 #define COLAMD_AGGRESSIVE 2
    24 #define COLAMD_DEFRAG_COUNT 2
    25 #define COLAMD_STATUS 3
    26 #define COLAMD_INFO1 4
    27 #define COLAMD_INFO2 5
    28 #define COLAMD_INFO3 6
    29 
    30 #define COLAMD_OK                            (0)
    31 #define COLAMD_OK_BUT_JUMBLED                (1)
    32 #define COLAMD_ERROR_A_not_present           (-1)
    33 #define COLAMD_ERROR_p_not_present           (-2)
    34 #define COLAMD_ERROR_nrow_negative           (-3)
    35 #define COLAMD_ERROR_ncol_negative           (-4)
    36 #define COLAMD_ERROR_nnz_negative            (-5)
    37 #define COLAMD_ERROR_p0_nonzero              (-6)
    38 #define COLAMD_ERROR_A_too_small             (-7)
    39 #define COLAMD_ERROR_col_length_negative     (-8)
    40 #define COLAMD_ERROR_row_index_out_of_bounds (-9)
    41 #define COLAMD_ERROR_out_of_memory           (-10)
    42 #define COLAMD_ERROR_internal_error          (-999)
    43 
    44 #define colamd_recommended _glp_colamd_recommended
    45 size_t colamd_recommended(int nnz, int n_row, int n_col);
    46 
    47 #define colamd_set_defaults _glp_colamd_set_defaults
    48 void colamd_set_defaults(double knobs [COLAMD_KNOBS]);
    49 
    50 #define colamd _glp_colamd
    51 int colamd(int n_row, int n_col, int Alen, int A[], int p[],
    52       double knobs[COLAMD_KNOBS], int stats[COLAMD_STATS]);
    53 
    54 #define symamd _glp_symamd
    55 int symamd(int n, int A[], int p[], int perm[],
    56       double knobs[COLAMD_KNOBS], int stats[COLAMD_STATS],
    57       void *(*allocate)(size_t, size_t), void(*release)(void *));
    58 
    59 #define colamd_report _glp_colamd_report
    60 void colamd_report(int stats[COLAMD_STATS]);
    61 
    62 #define symamd_report _glp_symamd_report
    63 void symamd_report(int stats[COLAMD_STATS]);
    64 
    65 #define colamd_printf xprintf
    66 
    67 #endif
    68 
    69 /* eof */