# Reference

## Contents

## Index

`AMD.Amd`

— TypeBase 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.amd`

— Function```
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.colamd`

— Function```
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.symamd`

— Function```
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.