symbfact

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