spam (version 2.5-1)

det: Calculate the determinant of a positive definite Sparse Matrix

Description

det and determinant calculate the determinant of a positive definite sparse matrix. determinant returns separately the modulus of the determinant, optionally on the logarithm scale, and the sign of the determinant.

Usage

det(x, ...)
determinant(x, logarithm = TRUE, ...)

Arguments

x

sparse matrix of class spam or a Cholesky factor of class spam.chol.NgPeyton.

logarithm

logical; if TRUE (default) return the logarithm of the modulus of the determinant.

...

Optional arguments. Examples include method argument and additional parameters used by the method.

Value

For det, the determinant of x. For determinant, a list with components

modulus

a numeric value. The modulus (absolute value) of the determinant if logarithm is FALSE; otherwise the logarithm of the modulus.

sign

integer; either +1 or -1 according to whether the determinant is positive or negative.

Details

If the matrix is not positive definite, the function issues a warning and returns NA.

The determinant is based on the product of the diagonal entries of a Cholesky factor, i.e. internally, a Cholesky decomposition is performed. By default, the NgPeyton algorithm with minimal degree ordering us used. To change the methods or supply additonal parameters to the Cholesky factorization function, see the help for chol.

The determinant of a Cholesky factor is also defined.

References

Ng, E. G. and B. W. Peyton (1993) Block sparse Cholesky algorithms on advanced uniprocessor computers, SIAM J. Sci. Comput., 14, 1034--1056.

See Also

chol.spam

Examples

Run this code
# NOT RUN {
x <- spam( c(4,3,0,3,5,1,0,1,4),3)
det( x)
determinant( x)

det( chol( x))
# }

Run the code above in your browser using DataLab