Interface LU<N extends Comparable<N>>
- All Superinterfaces:
DeterminantTask<N>, InverterTask<N>, InvertibleFactor<N>, LDU<N>, MatrixDecomposition<N>, MatrixDecomposition.Determinant<N>, MatrixDecomposition.Ordered<N>, MatrixDecomposition.Pivoting<N>, MatrixDecomposition.RankRevealing<N>, MatrixDecomposition.Solver<N>, MatrixDecomposition.Updatable<N>, MatrixTask<N>, Provider2D, Provider2D.Determinant<N>, Provider2D.Inverse<Optional<MatrixStore<N>>>, Provider2D.Rank, Provider2D.Solution<Optional<MatrixStore<N>>>, SolverTask<N>, Structure1D, Structure2D
- All Known Implementing Classes:
DenseLU, DenseLU.C128, DenseLU.H256, DenseLU.Q128, DenseLU.R064, DenseLU.R128, RawLU, SparseLU
public interface LU<N extends Comparable<N>>
extends LDU<N>, MatrixDecomposition.Updatable<N>, MatrixDecomposition.Pivoting<N>
LU: [A] = [L][U]
Decomposes [this] into [L] and [U] (with pivot order information in an int[]) where:
- [L] is a unit lower (left) triangular matrix. It has the same number of rows as [this], and ones on the diagonal.
- [U] is an upper (right) triangular matrix. It has the same number of columns as [this].
- [this] = [L][U] (with reordered rows according to the pivot order)
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.
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface InvertibleFactor
InvertibleFactor.IdentityFactor<N>Nested classes/interfaces inherited from interface MatrixDecomposition
MatrixDecomposition.Determinant<N>, MatrixDecomposition.EconomySize<N>, MatrixDecomposition.Hermitian<N>, MatrixDecomposition.Ordered<N>, MatrixDecomposition.Pivoting<N>, MatrixDecomposition.RankRevealing<N>, MatrixDecomposition.Solver<N>, MatrixDecomposition.Updatable<N>, MatrixDecomposition.Values<N>Nested classes/interfaces inherited from interface Provider2D
Provider2D.Condition, Provider2D.Determinant<N>, Provider2D.Eigenpairs, Provider2D.Hermitian, Provider2D.Inverse<M>, Provider2D.Rank, Provider2D.Solution<M>, Provider2D.Symmetric, Provider2D.Trace<N>Nested classes/interfaces inherited from interface Structure1D
Structure1D.BasicMapper<T>, Structure1D.IndexMapper<T>, Structure1D.IntIndex, Structure1D.LongIndex, Structure1D.LoopCallbackNested classes/interfaces inherited from interface Structure2D
Structure2D.IntRowColumn, Structure2D.Logical<S,B>, Structure2D.LongRowColumn, Structure2D.ReducibleTo1D<R>, Structure2D.Reshapable, Structure2D.RowColumnKey<R, C>, Structure2D.RowColumnMapper<R, C> -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final LU.Factory<ComplexNumber> static final LU.Factory<Quaternion> static final LU.Factory<RationalNumber> static final LU.Factory<Double> static final LU.Factory<Quadruple> Fields inherited from interface MatrixDecomposition
TYPICAL -
Method Summary
Modifier and TypeMethodDescriptionstatic <N extends Comparable<N>>
booleanequals(MatrixStore<N> matrix, LU<N> decomposition, NumberContext context) getL()default MatrixStore<N> getSolution(Access2D.Collectable<N, ? super PhysicalStore<N>> rhs) [A][X]=[B] or [this][return]=[rhs]getU()http://en.wikipedia.org/wiki/Row_echelon_form
This is the same as [D][U].default MatrixStore<N> Methods inherited from interface DeterminantTask
calculateDeterminantMethods inherited from interface InverterTask
invert, invert, preallocateMethods inherited from interface InvertibleFactor
btran, btran, ftran, ftranMethods inherited from interface MatrixDecomposition
decompose, isComputed, resetMethods inherited from interface MatrixDecomposition.Determinant
getDeterminant, toDeterminantProviderMethods inherited from interface MatrixDecomposition.Pivoting
decomposeWithoutPivoting, getPivotOrder, getReversePivotOrder, isPivotedMethods inherited from interface MatrixDecomposition.RankRevealing
countSignificant, getRank, getRankThreshold, isFullRankMethods inherited from interface MatrixDecomposition.Solver
compute, getInverse, getInverse, getSolution, invert, isSolvable, preallocate, solve, toInverseProvider, toSolutionProviderMethods inherited from interface MatrixDecomposition.Updatable
updateColumnMethods inherited from interface SolverTask
preallocate, preallocate, solve, solveMethods inherited from interface Structure2D
count, countColumns, countRows, firstInColumn, firstInRow, getColDim, getMaxDim, getMinDim, getRowDim, isEmpty, isFat, isScalar, isSquare, isTall, isVector, limitOfColumn, limitOfRow, size
-
Field Details
-
C128
-
H256
-
Q128
-
R064
-
R128
-
-
Method Details
-
newSparseR064
-
equals
static <N extends Comparable<N>> boolean equals(MatrixStore<N> matrix, LU<N> decomposition, NumberContext context) -
getL
MatrixStore<N> getL() -
getSolution
Description copied from interface:MatrixDecomposition.Solver[A][X]=[B] or [this][return]=[rhs]- Specified by:
getSolutionin interfaceMatrixDecomposition.Solver<N extends Comparable<N>>
-
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:
-
reconstruct
- Specified by:
reconstructin interfaceMatrixDecomposition<N extends Comparable<N>>
-