org.ojalgo.matrix.jama
Class JamaCholesky

java.lang.Object
  extended by org.ojalgo.matrix.jama.JamaCholesky
All Implemented Interfaces:
Cholesky<Double>, LU<Double>, MatrixDecomposition<Double>

public final class JamaCholesky
extends Object
implements Cholesky<Double>

JamaCholesky

Author:
apete

Constructor Summary
JamaCholesky()
           
 
Method Summary
 boolean compute(MatrixStore<Double> aStore)
           
 boolean equals(BasicMatrix aMtrx, NumberContext aCntxt)
           
 boolean equals(MatrixStore<Double> aStore, NumberContext aCntxt)
           
 JamaMatrix getD()
           
 Double getDeterminant()
           
 JamaMatrix getInverse()
          The output must be a "right inverse" and a "generalised inverse".
 JamaMatrix getL()
           
 JamaMatrix getP()
           
 int[] getPivotOrder()
           
 JamaMatrix getR()
           
 int getRank()
           
 JamaMatrix getU()
           
 MatrixStore<Double> invert(MatrixStore<Double> aStore)
          A convenience method that produces exactly the same result as if you first call MatrixDecomposition.compute(MatrixStore) and then MatrixDecomposition.getInverse().
 boolean isComputed()
           
 boolean isFullSize()
           
 boolean isSingular()
           
 boolean isSolvable()
           
 boolean isSPD()
          To use the Cholesky decomposition rather than the LU decomposition the matrix must be symmetric and positive definite.
 void reset()
           
 JamaMatrix solve(MatrixStore<Double> aRHS)
           
 Future<DecomposeAndSolve<Double>> solve(MatrixStore<Double> aBody, MatrixStore<Double> aRHS)
          Will solve [aBody][X]=[aRHS] concurrently by first calling MatrixDecomposition.compute(MatrixStore) using [aBody], and then MatrixDecomposition.solve(MatrixStore) using [aRHS].
 String toString()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.ojalgo.matrix.decomposition.MatrixDecomposition
compute, equals, invert, solve, solve
 

Constructor Detail

JamaCholesky

public JamaCholesky()
Method Detail

equals

public boolean equals(MatrixStore<Double> aStore,
                      NumberContext aCntxt)
Specified by:
equals in interface MatrixDecomposition<Double>

getD

public JamaMatrix getD()
Specified by:
getD in interface LU<Double>

getDeterminant

public Double getDeterminant()
Specified by:
getDeterminant in interface LU<Double>

getInverse

public JamaMatrix getInverse()
Description copied from interface: MatrixDecomposition
The output must be a "right inverse" and a "generalised inverse".

Specified by:
getInverse in interface MatrixDecomposition<Double>
See Also:
BasicMatrix.invert()

getL

public JamaMatrix getL()
Specified by:
getL in interface LU<Double>

getP

public JamaMatrix getP()
Specified by:
getP in interface LU<Double>

getPivotOrder

public int[] getPivotOrder()
Specified by:
getPivotOrder in interface LU<Double>

getR

public JamaMatrix getR()
Specified by:
getR in interface Cholesky<Double>

getRank

public int getRank()
Specified by:
getRank in interface LU<Double>

getU

public JamaMatrix getU()
Specified by:
getU in interface LU<Double>

isComputed

public boolean isComputed()
Specified by:
isComputed in interface MatrixDecomposition<Double>
Returns:
true if computation has been attemped; false if not.
See Also:
MatrixDecomposition.compute(MatrixStore), MatrixDecomposition.isSolvable()

isFullSize

public boolean isFullSize()
Specified by:
isFullSize in interface MatrixDecomposition<Double>
Returns:
True if the implementation generates a full sized decomposition.

isSingular

public boolean isSingular()
Specified by:
isSingular in interface LU<Double>

isSolvable

public boolean isSolvable()
Specified by:
isSolvable in interface MatrixDecomposition<Double>
Returns:
true if it is ok to call MatrixDecomposition.solve(MatrixStore) (computation was successful); false if not
See Also:
MatrixDecomposition.solve(MatrixStore), MatrixDecomposition.isComputed()

isSPD

public boolean isSPD()
Description copied from interface: Cholesky
To use the Cholesky decomposition rather than the LU decomposition the matrix must be symmetric and positive definite. It is recommended that the decomposition algorithm checks for this during calculation. Possibly the matrix could be assumed to be symmetric (to improve performance) but tests should be made to assure the matrix is positive definite.

Specified by:
isSPD in interface Cholesky<Double>
Returns:
true if the tests did not fail.

reset

public void reset()
Specified by:
reset in interface MatrixDecomposition<Double>

toString

public String toString()
Overrides:
toString in class Object

compute

public final boolean compute(MatrixStore<Double> aStore)
Specified by:
compute in interface MatrixDecomposition<Double>
Parameters:
aStore - A matrix to decompose
Returns:
true if the computation suceeded; false if not

equals

public final boolean equals(BasicMatrix aMtrx,
                            NumberContext aCntxt)
Specified by:
equals in interface MatrixDecomposition<Double>

invert

public final MatrixStore<Double> invert(MatrixStore<Double> aStore)
Description copied from interface: MatrixDecomposition
A convenience method that produces exactly the same result as if you first call MatrixDecomposition.compute(MatrixStore) and then MatrixDecomposition.getInverse().

Specified by:
invert in interface MatrixDecomposition<Double>

solve

public JamaMatrix solve(MatrixStore<Double> aRHS)
Specified by:
solve in interface MatrixDecomposition<Double>

solve

public final Future<DecomposeAndSolve<Double>> solve(MatrixStore<Double> aBody,
                                                     MatrixStore<Double> aRHS)
Description copied from interface: MatrixDecomposition
Will solve [aBody][X]=[aRHS] concurrently by first calling MatrixDecomposition.compute(MatrixStore) using [aBody], and then MatrixDecomposition.solve(MatrixStore) using [aRHS]. If either of the input [aBody] or [aRHS] is set to null the corresponing calculation is skipped.

Specified by:
solve in interface MatrixDecomposition<Double>
Parameters:
aBody - The equation system body
aRHS - The equation system right hand side
Returns:
The matrix decomposition and the equation system solution, [X]