package mikera.matrixx.decompose;
import mikera.matrixx.AMatrix;
/**
* Class implementing Cholesky decomposition
*
* A = L.L*
*
* Where: A is a symmetric (actually Hermitian), positive-definite matrix
* and: L is a lower triangular matrix
* L* is the conjugate transpose of L (which is equal to its transpose, since A is real in Vectorz)
*
* See: http://en.wikipedia.org/wiki/Cholesky_decomposition
*
* @author Mike
*
*/
public class Cholesky {
// TODO: refactor to use best available Cholesky decomposition algorithm for different matrix types and sizes
/**
* Decompose a Matrix according the the Cholesky decomposition A = L.L*
*
* @param a Any symmetric, positive definite matrix
* @return The decomposition result, or null if not possible
*/
public static final ICholeskyResult decompose(AMatrix a) {
return mikera.matrixx.decompose.impl.chol.Cholesky.decompose(a);
}
}