internal::Colamd¶
Classes¶
Name | |
---|---|
struct | internal::Colamd::ColStructure |
struct | internal::Colamd::RowStructure |
Types¶
Name | |
---|---|
enum | KnobsStatsIndex |
enum | Status |
enum | RowColumnStatus |
enum | ColumnStatus |
Functions¶
Name | |
---|---|
template <typename IndexType > IndexType |
ones_complement(const IndexType r) |
template <typename IndexType > IndexType |
colamd_c(IndexType n_col) |
template <typename IndexType > IndexType |
colamd_r(IndexType n_row) |
template <typename IndexType > IndexType |
init_rows_cols(IndexType n_row, IndexType n_col, RowStructure< IndexType > Row[], ColStructure< IndexType > col[], IndexType A[], IndexType p[], IndexType stats[NStats]) |
template <typename IndexType > void |
init_scoring(IndexType n_row, IndexType n_col, RowStructure< IndexType > Row[], ColStructure< IndexType > Col[], IndexType A[], IndexType head[], double knobs[NKnobs], IndexType * p_n_row2, IndexType * p_n_col2, IndexType * p_max_deg) |
template <typename IndexType > IndexType |
find_ordering(IndexType n_row, IndexType n_col, IndexType Alen, RowStructure< IndexType > Row[], ColStructure< IndexType > Col[], IndexType A[], IndexType head[], IndexType n_col2, IndexType max_deg, IndexType pfree) |
template <typename IndexType > void |
order_children(IndexType n_col, ColStructure< IndexType > Col[], IndexType p[]) |
template <typename IndexType > void |
detect_super_cols(ColStructure< IndexType > Col[], IndexType A[], IndexType head[], IndexType row_start, IndexType row_length) |
template <typename IndexType > IndexType |
garbage_collection(IndexType n_row, IndexType n_col, RowStructure< IndexType > Row[], ColStructure< IndexType > Col[], IndexType A[], IndexType * pfree) |
template <typename IndexType > IndexType |
clear_mark(IndexType n_row, RowStructure< IndexType > Row[]) |
template <typename IndexType > IndexType |
recommended(IndexType nnz, IndexType n_row, IndexType n_col) Returns the recommended value of Alen. |
void | set_defaults(double knobs[NKnobs]) set default parameters The use of this routine is optional. |
template <typename IndexType > bool |
compute_ordering(IndexType n_row, IndexType n_col, IndexType Alen, IndexType * A, IndexType * p, double knobs[NKnobs], IndexType stats[NStats]) Computes a column ordering using the column approximate minimum degree ordering. |
Attributes¶
Name | |
---|---|
const int | NKnobs |
const int | NStats |
const int | Empty |
Types Documentation¶
enum KnobsStatsIndex¶
Enumerator | Value | Description |
---|---|---|
DenseRow | 0 | |
DenseCol | 1 | |
DefragCount | 2 | |
Status | 3 | |
Info1 | 4 | |
Info2 | 5 | |
Info3 | 6 |
enum Status¶
Enumerator | Value | Description |
---|---|---|
Ok | 0 | |
OkButJumbled | 1 | |
ErrorANotPresent | -1 | |
ErrorPNotPresent | -2 | |
ErrorNrowNegative | -3 | |
ErrorNcolNegative | -4 | |
ErrorNnzNegative | -5 | |
ErrorP0Nonzero | -6 | |
ErrorATooSmall | -7 | |
ErrorColLengthNegative | -8 | |
ErrorRowIndexOutOfBounds | -9 | |
ErrorOutOfMemory | -10 | |
ErrorInternalError | -999 |
enum RowColumnStatus¶
Enumerator | Value | Description |
---|---|---|
Alive | 0 | |
Dead | -1 |
enum ColumnStatus¶
Enumerator | Value | Description |
---|---|---|
DeadPrincipal | -1 | |
DeadNonPrincipal | -2 |
Functions Documentation¶
function ones_complement¶
template <typename IndexType >
IndexType ones_complement(
const IndexType r
)
function colamd_c¶
template <typename IndexType >
inline IndexType colamd_c(
IndexType n_col
)
function colamd_r¶
template <typename IndexType >
inline IndexType colamd_r(
IndexType n_row
)
function init_rows_cols¶
template <typename IndexType >
static IndexType init_rows_cols(
IndexType n_row,
IndexType n_col,
RowStructure< IndexType > Row[],
ColStructure< IndexType > col[],
IndexType A[],
IndexType p[],
IndexType stats[NStats]
)
function init_scoring¶
template <typename IndexType >
static void init_scoring(
IndexType n_row,
IndexType n_col,
RowStructure< IndexType > Row[],
ColStructure< IndexType > Col[],
IndexType A[],
IndexType head[],
double knobs[NKnobs],
IndexType * p_n_row2,
IndexType * p_n_col2,
IndexType * p_max_deg
)
function find_ordering¶
template <typename IndexType >
static IndexType find_ordering(
IndexType n_row,
IndexType n_col,
IndexType Alen,
RowStructure< IndexType > Row[],
ColStructure< IndexType > Col[],
IndexType A[],
IndexType head[],
IndexType n_col2,
IndexType max_deg,
IndexType pfree
)
function order_children¶
template <typename IndexType >
static inline void order_children(
IndexType n_col,
ColStructure< IndexType > Col[],
IndexType p[]
)
function detect_super_cols¶
template <typename IndexType >
static void detect_super_cols(
ColStructure< IndexType > Col[],
IndexType A[],
IndexType head[],
IndexType row_start,
IndexType row_length
)
function garbage_collection¶
template <typename IndexType >
static IndexType garbage_collection(
IndexType n_row,
IndexType n_col,
RowStructure< IndexType > Row[],
ColStructure< IndexType > Col[],
IndexType A[],
IndexType * pfree
)
function clear_mark¶
template <typename IndexType >
static inline IndexType clear_mark(
IndexType n_row,
RowStructure< IndexType > Row[]
)
function recommended¶
template <typename IndexType >
inline IndexType recommended(
IndexType nnz,
IndexType n_row,
IndexType n_col
)
Returns the recommended value of Alen.
Parameters:
- nnz nonzeros in A
- n_row number of rows in A
- n_col number of columns in A
Return: recommended value of Alen for use by colamd
Returns recommended value of Alen for use by colamd. Returns -1 if any input argument is negative. The use of this routine or macro is optional. Note that the macro uses its arguments more than once, so be careful for side effects, if you pass expressions as arguments to COLAMD_RECOMMENDED.
function set_defaults¶
static inline void set_defaults(
double knobs[NKnobs]
)
set default parameters The use of this routine is optional.
Parameters:
- knobs parameter settings for colamd
Colamd: rows with more than (knobs [DenseRow] * n_col) entries are removed prior to ordering. Columns with more than (knobs [DenseCol] * n_row) entries are removed prior to ordering, and placed last in the output column ordering.
DenseRow and DenseCol are defined as 0 and 1, respectively, in colamd.h. Default values of these two knobs are both 0.5. Currently, only knobs [0] and knobs [1] are used, but future versions may use more knobs. If so, they will be properly set to their defaults by the future version of colamd_set_defaults, so that the code that calls colamd will not need to change, assuming that you either use colamd_set_defaults, or pass a (double *) NULL pointer as the knobs array to colamd or symamd.
function compute_ordering¶
template <typename IndexType >
static bool compute_ordering(
IndexType n_row,
IndexType n_col,
IndexType Alen,
IndexType * A,
IndexType * p,
double knobs[NKnobs],
IndexType stats[NStats]
)
Computes a column ordering using the column approximate minimum degree ordering.
Parameters:
- n_row number of rows in A
- n_col number of columns in A
- Alensize of the array A
- A row indices of the matrix, of size ALen
- p column pointers of A, of size n_col+1
- knobs parameter settings for colamd
- stats colamd output statistics and error codes
Computes a column ordering (Q) of A such that P(AQ)=LU or (AQ)'AQ=LL' have less fill-in and require fewer floating point operations than factorizing the unpermuted matrix A or A'A, respectively.
Attributes Documentation¶
variable NKnobs¶
const int NKnobs = 20;
variable NStats¶
const int NStats = 20;
variable Empty¶
const int Empty = -1;
Updated on 2023-11-29 at 18:22:17 +0000