javax.robotics.vecmath.jama
Class CholeskyDecomposition

java.lang.Object
  extended by javax.robotics.vecmath.jama.CholeskyDecomposition
All Implemented Interfaces:
java.io.Serializable

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

Cholesky Decomposition.

For a symmetric, positive definite matrix A, the Cholesky decomposition is an 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 isSPD() method.

See Also:
Serialized Form

Constructor Summary
CholeskyDecomposition(double[][] Arg, int dim)
          Cholesky algorithm for symmetric and positive definite matrix.
 
Method Summary
 double[][] getL()
          Return triangular factor.
 boolean isSPD()
          Is the matrix symmetric and positive definite?
 double[][] solve(double[][] B, int dim)
          Solve A*X = B
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CholeskyDecomposition

public CholeskyDecomposition(double[][] Arg,
                             int dim)
Cholesky algorithm for symmetric and positive definite matrix.

Parameters:
Arg - Square, symmetric matrix.
Method Detail

isSPD

public final boolean isSPD()
Is the matrix symmetric and positive definite?

Returns:
true if A is symmetric and positive definite.

getL

public final double[][] getL()
Return triangular factor.

Returns:
L

solve

public double[][] solve(double[][] B,
                        int dim)
Solve A*X = B

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 - JamaMatrix row dimensions must agree.
java.lang.RuntimeException - JamaMatrix is not symmetric positive definite.