org.ojalgo.matrix.jama
Class JamaLU

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

public final class JamaLU
extends Object
implements LU<Double>

This class adapts JAMA's LUDecomposition to ojAlgo's LU interface.

Author:
apete

Constructor Summary
JamaLU()
          Not recommended to use this constructor directly.
 
Method Summary
 boolean compute(Access2D<?> aStore)
           
 boolean computeWithoutPivoting(MatrixStore<?> aStore)
          The normal MatrixDecomposition.compute(Access2D) method must handle cases where pivoting is required.
 boolean equals(MatrixDecomposition<Double> aDecomp, NumberContext aCntxt)
           
 boolean equals(MatrixStore<Double> aStore, NumberContext aCntxt)
           
 Double getDeterminant()
           
 JamaMatrix getInverse()
          The output must be a "right inverse" and a "generalised inverse".
 MatrixStore<Double> getInverse(DecompositionStore<Double> preallocated)
          Makes no use of preallocated at all.
 JamaMatrix getL()
           
 int[] getPivotOrder()
          This can be used to create a [P] matrix using IdentityStore in combination with RowsStore or ColumnsStore.
 int getRank()
           
 int[] getReducedPivots()
           
 JamaMatrix getU()
          http://en.wikipedia.org/wiki/Row_echelon_form

This is the same as [D][U].
 JamaMatrix invert(MatrixStore<Double> aStore)
           
 boolean isAspectRatioNormal()
           
 boolean isComputed()
           
 boolean isFullSize()
           
 boolean isSolvable()
           
 boolean isSquareAndNotSingular()
           
 MatrixStore<Double> reconstruct()
           
 void reset()
          Delete computed results, and resets attributes to default values
 JamaMatrix solve(MatrixStore<Double> aRHS)
          [A][X]=[B] or [this][return]=[aRHS]
 JamaMatrix solve(MatrixStore<Double> aRHS, DecompositionStore<Double> preallocated)
          Makes no use of preallocated at all.
 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, getInverse, solve, solve
 

Constructor Detail

JamaLU

public JamaLU()
Not recommended to use this constructor directly. Consider using the static factory method LUDecomposition.makeJama() instead.

Method Detail

computeWithoutPivoting

public boolean computeWithoutPivoting(MatrixStore<?> aStore)
Description copied from interface: LU
The normal MatrixDecomposition.compute(Access2D) method must handle cases where pivoting is required. If you know that pivoting is not needed you may call this method instead - it's faster.

Specified by:
computeWithoutPivoting in interface LU<Double>

equals

public boolean equals(MatrixStore<Double> aStore,
                      NumberContext aCntxt)
Specified by:
equals in interface MatrixDecomposition<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>

getPivotOrder

public int[] getPivotOrder()
Description copied from interface: LU
This can be used to create a [P] matrix using IdentityStore in combination with RowsStore or ColumnsStore.

Specified by:
getPivotOrder in interface LU<Double>

getRank

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

getReducedPivots

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

getU

public JamaMatrix getU()
Description copied from interface: LU
http://en.wikipedia.org/wiki/Row_echelon_form

This is the same as [D][U]. Together with the pivotOrder and [L] this constitutes an alternative, more compact, way to express the decomposition.

Specified by:
getU in interface LU<Double>
See Also:
LU.getPivotOrder(), LU.getL()

isAspectRatioNormal

public boolean isAspectRatioNormal()

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(Access2D), MatrixDecomposition.isSolvable()

isFullSize

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

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()

isSquareAndNotSingular

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

reconstruct

public MatrixStore<Double> reconstruct()
Specified by:
reconstruct in interface MatrixDecomposition<Double>

reset

public void reset()
Description copied from interface: MatrixDecomposition
Delete computed results, and resets attributes to default values

Specified by:
reset in interface MatrixDecomposition<Double>

toString

public String toString()
Overrides:
toString in class Object

compute

public final boolean compute(Access2D<?> 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(MatrixDecomposition<Double> aDecomp,
                            NumberContext aCntxt)
Specified by:
equals in interface MatrixDecomposition<Double>

getInverse

public final MatrixStore<Double> getInverse(DecompositionStore<Double> preallocated)
Makes no use of preallocated at all. Simply delegates to getInverse().

Specified by:
getInverse in interface MatrixDecomposition<Double>
Parameters:
preallocated - Preallocated memory for the results, possibly some intermediate results. You must assume this is modified, but you cannot assume it will contain the full/final/correct solution.
Returns:
The inverse
See Also:
MatrixDecomposition.getInverse(org.ojalgo.matrix.decomposition.DecompositionStore)

invert

public final JamaMatrix invert(MatrixStore<Double> aStore)

solve

public JamaMatrix solve(MatrixStore<Double> aRHS)
Description copied from interface: MatrixDecomposition
[A][X]=[B] or [this][return]=[aRHS]

Specified by:
solve in interface MatrixDecomposition<Double>

solve

public final JamaMatrix solve(MatrixStore<Double> aRHS,
                              DecompositionStore<Double> preallocated)
Makes no use of preallocated at all. Simply delegates to solve(MatrixStore).

Specified by:
solve in interface MatrixDecomposition<Double>
Parameters:
aRHS - The Right Hand Side, wont be modfied
preallocated - Preallocated memory for the results, possibly some intermediate results. You must assume this is modified, but you cannot assume it will contain the full/final/correct solution.
Returns:
The solution
See Also:
MatrixDecomposition.solve(org.ojalgo.matrix.store.MatrixStore, org.ojalgo.matrix.decomposition.DecompositionStore)