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); } }