# Decompose

## Decompose(C, I, J)

Returns the Cholesky decomposition (square root) matrix of matrix «C» along dimensions «I» and «J». Matrix «C» must be symmetric and positive-definite. (Positive-definite means that v*C*v > 0, for all vectors v.)

Cholesky decomposition computes a lower diagonal matrix L such that L*L' = C, where L' is the transpose of L.

## Testing for positive definiteness

To avoid an error, the following user-defined function can be used to test for positive definiteness:

Declaration:

IsPosDefinite(A: Number[I, J]; I, J: Index)

Description:

Returns true (1) if «A» is positive-definite, 0 (false) otherwise.

Definition:

Min(EigenDecomp(A + Transpose(A, I, J), I, J)[.Item = 'value'], J) > 0

## Complex numbers

When «C» contains complex numbers, then the matrix must be Hermitian and positive definite. The Hermitian condition is the same as the symmetric condition for real-valued matrices, but requires the transpose to be the complex conjugate of the matrix.