org.ojalgo.matrix.decomposition
Interface LU<N extends Number>

All Superinterfaces:
MatrixDecomposition<N>
All Known Implementing Classes:
JamaLU, LUDecomposition

public interface LU<N extends Number>
extends MatrixDecomposition<N>

Decomposes [this] into [L] and [U] (with pivot order information in an int[]) where:

Note: The number of columns in [L] and the number of rows in [U] is not specified by this interface.

The LU decomposition always exists - the compute method should always succeed - even for non-square and/or singular matrices. The primary use of the LU decomposition is in the solution of systems of simultaneous linear equations. That will, however, only work for square non-singular matrices.

Author:
apete

Method Summary
 boolean computeWithoutPivoting(MatrixStore<N> aStore)
          The normal MatrixDecomposition.compute(MatrixStore) method must handle cases where pivoting is required.
 N getDeterminant()
           
 MatrixStore<N> getL()
           
 int[] getPivotOrder()
           
 int getRank()
           
 MatrixStore<N> getU()
          http://en.wikipedia.org/wiki/Row_echelon_form

This is the same as [D][U].
 boolean isSquareAndNotSingular()
           
 
Methods inherited from interface org.ojalgo.matrix.decomposition.MatrixDecomposition
compute, equals, equals, getInverse, invert, isComputed, isFullSize, isSolvable, reset, solve, solve
 

Method Detail

computeWithoutPivoting

boolean computeWithoutPivoting(MatrixStore<N> aStore)
The normal MatrixDecomposition.compute(MatrixStore) 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.


getDeterminant

N getDeterminant()

getL

MatrixStore<N> getL()

getPivotOrder

int[] getPivotOrder()

getRank

int getRank()

getU

MatrixStore<N> getU()
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.

See Also:
getPivotOrder(), getL()

isSquareAndNotSingular

boolean isSquareAndNotSingular()