Main Content


Symbolic factorization analysis


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')


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 ValueDescription

Height of the elimination tree


The elimination tree itself


Postordering of the elimination tree


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.


[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.

Extended Capabilities

Version History

Introduced before R2006a

See Also

| |