Interface LDU<N extends Comparable<N>>
- All Superinterfaces:
DeterminantTask<N>, InverterTask<N>, InvertibleFactor<N>, MatrixDecomposition<N>, MatrixDecomposition.Determinant<N>, MatrixDecomposition.Ordered<N>, MatrixDecomposition.RankRevealing<N>, MatrixDecomposition.Solver<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:
DenseCholesky, DenseCholesky.C128, DenseCholesky.H256, DenseCholesky.Q128, DenseCholesky.R064, DenseCholesky.R128, DenseLDL, DenseLDL.C128, DenseLDL.H256, DenseLDL.Q128, DenseLDL.R064, DenseLDL.R128, DenseLU, DenseLU.C128, DenseLU.H256, DenseLU.Q128, DenseLU.R064, DenseLU.R128, RawCholesky, RawLU, SparseLU, SparseQDLDL
public interface LDU<N extends Comparable<N>>
extends MatrixDecomposition.Solver<N>, MatrixDecomposition.Determinant<N>, MatrixDecomposition.RankRevealing<N>
LDU: [A] = [L][D][U] ( [PL][L][D][U][PU] )
- [A] can be any matrix.
- [L] is a unit lower (left) triangular matrix. It has the same number of rows as [A], and ones on the diagonal.
- [D] is a square diagonal matrix.
- [U] is a unit upper (right) triangular matrix. It has the same number of columns as [A], and ones on the diagonal.
- [PL] is a permutation matrix (row pivot order).
- [PU] is a permutation matrix (column pivot order).
Row and/or column permutations may not be necessary and are therefore optional. Numerical stability usually does require ordering of either the rows or columns (most algorithms reorder rows).
Solving the equation system [A][X]=[B] turns into this [L][D][U][X] = [B] and is solved in these steps:
- [L][Z]=[B] ( [Z] = [D][U][X] )
- [D][Y]=[Z] ( [Y] = [U][X] )
- [U][X]=[Y]
[A]H = [U]H[D]H[L]H
ojAlgo does not have a full/general LDU decompositions but contains 3 variations of it:
- LU: [A] = [L][U] where [ULU] = [DLDU][ULDU]
- Cholesky: [A] = [L][L]H where [A] is hermitian positive definite and [LCholesky] = [LLDU][DLDU]½
- LDL: [A] = [L][D][L]H where [A] is hermitian and [LLDL]H = [U LDU]
-
Nested Class Summary
Nested classes/interfaces inherited from interface DeterminantTask
DeterminantTask.Factory<N>Nested classes/interfaces inherited from interface InverterTask
InverterTask.Factory<N>Nested classes/interfaces inherited from interface InvertibleFactor
InvertibleFactor.IdentityFactor<N>Nested classes/interfaces inherited from interface MatrixDecomposition
MatrixDecomposition.Determinant<N>, MatrixDecomposition.EconomySize<N>, MatrixDecomposition.Factory<D>, 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 SolverTask
SolverTask.Factory<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
Fields inherited from interface MatrixDecomposition
TYPICAL -
Method Summary
Modifier and TypeMethodDescriptiondefault booleanThis is a property of the algorithm/implementation, not the data.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, reconstruct, resetMethods inherited from interface MatrixDecomposition.Determinant
getDeterminant, toDeterminantProviderMethods inherited from interface MatrixDecomposition.RankRevealing
countSignificant, getRank, getRankThreshold, isFullRankMethods inherited from interface MatrixDecomposition.Solver
compute, getInverse, getInverse, getSolution, getSolution, invert, isSolvable, preallocate, solve, toInverseProvider, toSolutionProviderMethods 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
-
Method Details
-
isOrdered
default boolean isOrdered()Description copied from interface:MatrixDecomposition.OrderedThis is a property of the algorithm/implementation, not the data. Typically relevant forSingularValue,Eigenvalueor anyMatrixDecomposition.RankRevealingdecomposition.- Specified by:
isOrderedin interfaceMatrixDecomposition.Ordered<N extends Comparable<N>>- Returns:
- true if the rows/columns of the returned matrix factors are guaranteed some specific order; false if there is no such guarantee.
-