cern.colt.matrix.linalg
Class CholeskyDecomposition

java.lang.Object
  extended by cern.colt.matrix.linalg.CholeskyDecomposition
All Implemented Interfaces:
java.io.Serializable

public class CholeskyDecomposition
extends java.lang.Object
implements java.io.Serializable

For a symmetric, positive definite matrix A, the Cholesky decomposition is a lower triangular matrix L so that A = L*L'; If the matrix is not symmetric or positive definite, the constructor returns a partial decomposition and sets an internal flag that may be queried by the isSymmetricPositiveDefinite() method.

See Also:
Serialized Form

Constructor Summary
CholeskyDecomposition(DoubleMatrix2D A)
          Constructs and returns a new Cholesky decomposition object for a symmetric and positive definite matrix; The decomposed matrices can be retrieved via instance methods of the returned decomposition object.
 
Method Summary
 DoubleMatrix2D getL()
          Returns the triangular factor, L.
 boolean isSymmetricPositiveDefinite()
          Returns whether the matrix A is symmetric and positive definite.
 DoubleMatrix2D solve(DoubleMatrix2D B)
          Solves A*X = B; returns X.
 java.lang.String toString()
          Returns a String with (propertyName, propertyValue) pairs.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CholeskyDecomposition

public CholeskyDecomposition(DoubleMatrix2D A)
Constructs and returns a new Cholesky decomposition object for a symmetric and positive definite matrix; The decomposed matrices can be retrieved via instance methods of the returned decomposition object.

Parameters:
A - Square, symmetric matrix.
Throws:
java.lang.IllegalArgumentException - if A is not square.
Method Detail

getL

public DoubleMatrix2D getL()
Returns the triangular factor, L.

Returns:
L

isSymmetricPositiveDefinite

public boolean isSymmetricPositiveDefinite()
Returns whether the matrix A is symmetric and positive definite.

Returns:
true if A is symmetric and positive definite; false otherwise

solve

public DoubleMatrix2D solve(DoubleMatrix2D B)
Solves A*X = B; returns X.

Parameters:
B - A Matrix with as many rows as A and any number of columns.
Returns:
X so that L*L'*X = B.
Throws:
java.lang.IllegalArgumentException - if B.rows() != A.rows().
java.lang.IllegalArgumentException - if !isSymmetricPositiveDefinite().

toString

public java.lang.String toString()
Returns a String with (propertyName, propertyValue) pairs. Useful for debugging or to quickly get the rough picture. For example,
rank          : 3
trace         : 0

Overrides:
toString in class java.lang.Object