Classes | Enumerations | Functions | Variables
internal::Colamd Namespace Reference

Classes

struct  ColStructure
 
struct  RowStructure
 

Enumerations

enum  ColumnStatus { DeadPrincipal = -1, DeadNonPrincipal = -2 }
 
enum  KnobsStatsIndex {
  DenseRow = 0, DenseCol = 1, DefragCount = 2, Status = 3,
  Info1 = 4, Info2 = 5, Info3 = 6
}
 
enum  RowColumnStatus { Alive = 0, Dead = -1 }
 
enum  Status {
  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
}
 

Functions

template<typename IndexType >
static IndexType clear_mark (IndexType n_row, RowStructure< IndexType > Row[])
 
template<typename IndexType >
IndexType colamd_c (IndexType n_col)
 
template<typename IndexType >
IndexType colamd_r (IndexType n_row)
 
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. More...
 
template<typename IndexType >
static void detect_super_cols (ColStructure< IndexType > Col[], IndexType A[], IndexType head[], IndexType row_start, IndexType row_length)
 
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)
 
template<typename IndexType >
static IndexType garbage_collection (IndexType n_row, IndexType n_col, RowStructure< IndexType > Row[], ColStructure< IndexType > Col[], IndexType A[], IndexType *pfree)
 
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])
 
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)
 
template<typename IndexType >
IndexType ones_complement (const IndexType r)
 
template<typename IndexType >
static void order_children (IndexType n_col, ColStructure< IndexType > Col[], IndexType p[])
 
template<typename IndexType >
IndexType recommended (IndexType nnz, IndexType n_row, IndexType n_col)
 Returns the recommended value of Alen. More...
 
static void set_defaults (double knobs[NKnobs])
 set default parameters The use of this routine is optional. More...
 

Variables

const int Empty = -1
 
const int NKnobs = 20
 
const int NStats = 20
 

Enumeration Type Documentation

◆ ColumnStatus

Enumerator
DeadPrincipal 
DeadNonPrincipal 

Definition at line 125 of file Eigen_Colamd.h.

◆ KnobsStatsIndex

Enumerator
DenseRow 
DenseCol 
DefragCount 
Status 
Info1 
Info2 
Info3 

Definition at line 71 of file Eigen_Colamd.h.

◆ RowColumnStatus

Enumerator
Alive 
Dead 

Definition at line 119 of file Eigen_Colamd.h.

◆ Status

Enumerator
Ok 
OkButJumbled 
ErrorANotPresent 
ErrorPNotPresent 
ErrorNrowNegative 
ErrorNcolNegative 
ErrorNnzNegative 
ErrorP0Nonzero 
ErrorATooSmall 
ErrorColLengthNegative 
ErrorRowIndexOutOfBounds 
ErrorOutOfMemory 
ErrorInternalError 

Definition at line 91 of file Eigen_Colamd.h.

Function Documentation

◆ clear_mark()

template<typename IndexType >
static IndexType internal::Colamd::clear_mark ( IndexType  n_row,
RowStructure< IndexType >  Row[] 
)
inlinestatic

Definition at line 1839 of file Eigen_Colamd.h.

◆ colamd_c()

template<typename IndexType >
IndexType internal::Colamd::colamd_c ( IndexType  n_col)
inline

Definition at line 222 of file Eigen_Colamd.h.

◆ colamd_r()

template<typename IndexType >
IndexType internal::Colamd::colamd_r ( IndexType  n_row)
inline

Definition at line 226 of file Eigen_Colamd.h.

◆ compute_ordering()

template<typename IndexType >
static bool internal::Colamd::compute_ordering ( IndexType  n_row,
IndexType  n_col,
IndexType  Alen,
IndexType *  A,
IndexType *  p,
double  knobs[NKnobs],
IndexType  stats[NStats] 
)
static

Computes a column ordering using the column approximate minimum degree ordering.

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.

Parameters
n_rownumber of rows in A
n_colnumber of columns in A
Alen,sizeof the array A
Arow indices of the matrix, of size ALen
pcolumn pointers of A, of size n_col+1
knobsparameter settings for colamd
statscolamd output statistics and error codes

Definition at line 342 of file Eigen_Colamd.h.

◆ detect_super_cols()

template<typename IndexType >
static void internal::Colamd::detect_super_cols ( ColStructure< IndexType >  Col[],
IndexType  A[],
IndexType  head[],
IndexType  row_start,
IndexType  row_length 
)
static

Definition at line 1567 of file Eigen_Colamd.h.

◆ find_ordering()

template<typename IndexType >
static IndexType internal::Colamd::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 
)
static

Definition at line 955 of file Eigen_Colamd.h.

◆ garbage_collection()

template<typename IndexType >
static IndexType internal::Colamd::garbage_collection ( IndexType  n_row,
IndexType  n_col,
RowStructure< IndexType >  Row[],
ColStructure< IndexType >  Col[],
IndexType  A[],
IndexType *  pfree 
)
static

Definition at line 1718 of file Eigen_Colamd.h.

◆ init_rows_cols()

template<typename IndexType >
static IndexType internal::Colamd::init_rows_cols ( IndexType  n_row,
IndexType  n_col,
RowStructure< IndexType >  Row[],
ColStructure< IndexType >  col[],
IndexType  A[],
IndexType  p[],
IndexType  stats[NStats] 
)
static

Definition at line 502 of file Eigen_Colamd.h.

◆ init_scoring()

template<typename IndexType >
static void internal::Colamd::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 
)
static

Definition at line 718 of file Eigen_Colamd.h.

◆ ones_complement()

template<typename IndexType >
IndexType internal::Colamd::ones_complement ( const IndexType  r)

Definition at line 111 of file Eigen_Colamd.h.

◆ order_children()

template<typename IndexType >
static void internal::Colamd::order_children ( IndexType  n_col,
ColStructure< IndexType >  Col[],
IndexType  p[] 
)
inlinestatic

Definition at line 1466 of file Eigen_Colamd.h.

◆ recommended()

template<typename IndexType >
IndexType internal::Colamd::recommended ( IndexType  nnz,
IndexType  n_row,
IndexType  n_col 
)
inline

Returns the recommended value of Alen.

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.

Parameters
nnznonzeros in A
n_rownumber of rows in A
n_colnumber of columns in A
Returns
recommended value of Alen for use by colamd

Definition at line 277 of file Eigen_Colamd.h.

◆ set_defaults()

static void internal::Colamd::set_defaults ( double  knobs[NKnobs])
inlinestatic

set default parameters The use of this routine is optional.

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.

Parameters
knobsparameter settings for colamd

Definition at line 306 of file Eigen_Colamd.h.

Variable Documentation

◆ Empty

const int internal::Colamd::Empty = -1

Definition at line 116 of file Eigen_Colamd.h.

◆ NKnobs

const int internal::Colamd::NKnobs = 20

Definition at line 65 of file Eigen_Colamd.h.

◆ NStats

const int internal::Colamd::NStats = 20

Definition at line 68 of file Eigen_Colamd.h.



gtsam
Author(s):
autogenerated on Sun Dec 22 2024 04:25:00