16 if (!M || !sym || !Mpp || !work)
return FAIL;
19 if (ordering_method ==
AMD)
23 double Info [AMD_INFO];
25 #ifdef LADEL_64BIT_INDICES
26 status = amd_l_order(M->
ncol, M->
p, M->
i, sym->
p, NULL, Info);
28 status = amd_order(M->
ncol, M->
p, M->
i, sym->
p, NULL, Info);
30 if (status != AMD_OK)
return FAIL;
50 #ifdef LADEL_SIMPLE_COL_COUNTS
#define NO_ORDERING
No ordering is performed during the symbolic part of the factorization.
#define AMD
Ordering method during the symbolic part of the factorization.
#define GIVEN_ORDERING
The ordering was computed previously and is already stored in sym->p.
#define SUCCESS
For status returns.
#define FAIL
For status returns.
Computes the col counts needed for the symbolic factorization (after etree and postorder).
ladel_int ladel_col_counts(ladel_sparse_matrix *M, ladel_symbolics *sym, ladel_work *work)
Computes the column counts of the factor.
Constants and macros used in LADEL.
Routines to print out matrices and vectors.
Routines to compute the elimination tree of a matrix.
ladel_int ladel_etree_and_col_counts(ladel_sparse_matrix *M, ladel_symbolics *sym, ladel_work *work)
Computes the elimination tree and column counts of a matrix.
ladel_int ladel_etree(ladel_sparse_matrix *M, ladel_symbolics *sym, ladel_work *work)
Computes the elimination tree of a matrix.
Memory allocation routines.
void * ladel_free(void *p)
Version of free (for mex or for regular C).
ladel_int ladel_ldl_symbolic(ladel_sparse_matrix *M, ladel_symbolics *sym, ladel_int ordering_method, ladel_sparse_matrix *Mpp, ladel_work *work)
Symbolic part of the factorization.
Routines to permute vectors and matrices.
void ladel_permute_symmetric_matrix(ladel_sparse_matrix *M, ladel_int *p, ladel_sparse_matrix *Mpp, ladel_work *work)
Compute .
void ladel_invert_permutation_vector(ladel_int *p, ladel_int *pinv, ladel_int size)
Invert a permutation vector, such that .
Routine to compute the postordering of the elimination tree.
ladel_int ladel_postorder(ladel_sparse_matrix *M, ladel_symbolics *sym, ladel_work *work)
Compute the postordering of the elimination tree.
Structures and types used in LADEL routines.
int64_t ladel_int
Type for integer numbers (default: int64_t)
Sparse matrix in compressed column storage.
ladel_int ncol
number of columns
ladel_int * p
column pointers (size ncol+1)
ladel_int * i
row pointers (size nzmax)
Workspace required for various routines in LADEL.