# Reference

## Index

AMD.AmdType

Base type to hold control and information related to a call to AMD. control is a Vector{Float64} with components:

• d = control[AMD_DENSE]: rows with more than max(d√n, 16) entries are considered "dense" and appear last in the permutation.

If d < 0 no row will be treated as dense.

• control[AMD_AGGRESSIVE]: triggers aggressive absorption if nonzero.

info is a Vector{Float64} that contains statistics on the ordering.

AMD.amdFunction
amd(A)
amd(A, meta)

Given a sparse matrix A and an Amd structure meta, p = amd(A, meta) computes the approximate minimum degree ordering of A + Aᵀ. The ordering is represented as a permutation vector p. Factorizations of A[p,p] tend to be sparser than those of A.

The matrix A must be square and the sparsity pattern of A + Aᵀ is implicit. Thus it is convenient to represent symmetric or hermitian matrices using one triangle only. The diagonal of A may be present but will be ignored.

The ordering may be influenced by changing meta.control[AMD_DENSE] and meta.control[AMD_AGGRESSIVE].

Statistics on the ordering appear in meta.info.

AMD.colamdFunction
colamd(A)
colamd(A, meta)

colamd computes a permutation vector p such that the Cholesky factorization of A[:,p]' * A[:,p] has less fill-in and requires fewer floating point operations than AᵀA.

AMD.symamdFunction
symamd(A)
symamd(A, meta)

Given a symmetric or hermitian matrix A, symamd computes a permutation vector p such that the Cholesky factorization of A[p,p] has less fill-in and requires fewer floating point operations than that of A.