symbfact - Symbolic factorization analysis - MATLAB (original) (raw)

Symbolic factorization analysis

Syntax

count = symbfact(A) count = symbfact(A,'sym') count = symbfact(A,'col') count = symbfact(A,'row') count = symbfact(A,'lo') [count,h,parent,post,R] = symbfact(...) [count,h,parent,post,L] = symbfact(A,type,'lower')

Description

count = symbfact(A) returns the vector of row counts of `R=chol(A)`. symbfact should be much faster than chol(A).

count = symbfact(A,'sym') is the same as count = symbfact(A).

count = symbfact(A,'col') returns row counts of R=chol(A'*A) (without forming it explicitly).

count = symbfact(A,'row') returns row counts of R=chol(A*A').

count = symbfact(A,'lo') is the same as count = symbfact(A) and uses tril(A).

[count,h,parent,post,R] = symbfact(...) has several optional return values.

The flop count for a subsequent Cholesky factorization is sum(count.^2)

Return Value Description
h Height of the elimination tree
parent The elimination tree itself
post Postordering of the elimination tree
R 0-1 matrix having the structure of chol(A) for the symmetric case, chol(A'*A) for the 'col' case, or chol(A*A') for the 'row' case.

symbfact(A) and symbfact(A,'sym') use the upper triangular part of A (triu(A)) and assume the lower triangular part is the transpose of the upper triangular part. symbfact(A,'lo') uses tril(A) instead.

[count,h,parent,post,L] = symbfact(A,type,'lower') where type is one of 'sym','col', 'row', or'lo' returns a lower triangular symbolic factor L=R'. This form is quicker and requires less memory.

References

[1] Chen, Yanqing, Timothy A. Davis, William W. Hager, and Sivasankaran Rajamanickam. “Algorithm 887: CHOLMOD, Supernodal Sparse Cholesky Factorization and Update/Downdate.” ACM Transactions on Mathematical Software 35, no. 3 (October 2008): 1–14.https://doi.org/10.1145/1391989.1391995.

Extended Capabilities

Version History

Introduced before R2006a