Module ojalgo
Package org.ojalgo.matrix.decomposition
Interface MatrixDecomposition<N extends java.lang.Comparable<N>>
-
- All Superinterfaces:
Structure1D,Structure2D
- All Known Subinterfaces:
Bidiagonal<N>,Cholesky<N>,Eigenvalue<N>,Eigenvalue.Generalised<N>,Eigenvalue.Spectral<N>,Hessenberg<N>,LDL<N>,LDU<N>,LU<N>,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>,QR<N>,SingularValue<N>,Tridiagonal<N>
- All Known Implementing Classes:
AbstractDecomposition,DeferredTridiagonal,DeferredTridiagonal.C128,DeferredTridiagonal.H256,DeferredTridiagonal.Q128,DeferredTridiagonal.R064,DeferredTridiagonal.R128,DenseBidiagonal,DenseBidiagonal.C128,DenseBidiagonal.H256,DenseBidiagonal.Q128,DenseBidiagonal.R064,DenseBidiagonal.R128,DenseCholesky,DenseCholesky.C128,DenseCholesky.H256,DenseCholesky.Q128,DenseCholesky.R064,DenseCholesky.R128,DenseEigenvalue,DenseHessenberg,DenseHessenberg.C128,DenseHessenberg.H256,DenseHessenberg.Q128,DenseHessenberg.R064,DenseHessenberg.R128,DenseLDL,DenseLDL.C128,DenseLDL.H256,DenseLDL.Q128,DenseLDL.R064,DenseLDL.R128,DenseLU,DenseLU.C128,DenseLU.H256,DenseLU.Q128,DenseLU.R064,DenseLU.R128,DenseQR,DenseQR.C128,DenseQR.H256,DenseQR.Q128,DenseQR.R064,DenseQR.R128,DenseSingularValue,DenseSingularValue.C128,DenseSingularValue.H256,DenseSingularValue.Q128,DenseSingularValue.R064,DenseSingularValue.R128,DenseTridiagonal,DynamicEvD,DynamicEvD.R064,GeneralEvD,GeneralEvD.R064,GeneralisedEvD,HermitianEvD,HermitianEvD.C128,HermitianEvD.H256,HermitianEvD.Q128,HermitianEvD.R064,HermitianEvD.R128,InPlaceDecomposition,RawCholesky,RawDecomposition,RawEigenvalue,RawEigenvalue.Dynamic,RawEigenvalue.General,RawEigenvalue.Symmetric,RawLU,RawQR,RawSingularValue,SimultaneousTridiagonal,SparseLU,SparseQDLDL
public interface MatrixDecomposition<N extends java.lang.Comparable<N>> extends Structure2D
Notation used to describe the various matrix decompositions:- [A] could be any matrix. (The original matrix to decompose.)
- [A]-1 is the inverse of [A].
- [A]T is the transpose of [A].
- [A]H is the conjugate transpose of [A]. [A]H is equivalent to [A]T if the elements are all real.
- [D] is a diagonal matrix. Possibly bi-, tri- or block-diagonal.
- [H] is an, upper or lower, Hessenberg matrix.
- [I] is an identity matrix - obviously orthogonal/unitary.
- [L] is a lower (left) triangular matrix.
- [P] is a permutation matrix - an identity matrix with interchanged rows or columns - and orthogonal/unitary.
- [Q] is an orthogonal/unitary matrix. [Q]-1 = [Q]H, and with real matrices = [Q] T.
- [R] is a right (upper) tringular matrix. It is equivalent to [U].
- [U] is an upper (right) triangular matrix. It is equivalent to [R]. Alternatively [U] is also used to denominate the left, orthonormal, singular vectors.
- [V] is an eigenvector matrix and/or an orthogonal matrix – the columns are the eigenvectors or the right, orthonormal, singular vectors.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interfaceMatrixDecomposition.Determinant<N extends java.lang.Comparable<N>>static interfaceMatrixDecomposition.EconomySize<N extends java.lang.Comparable<N>>Several matrix decompositions can be expressed "economy sized" - some rows or columns of the decomposed matrix parts are not needed for the most releveant use cases, and can therefore be left out.static interfaceMatrixDecomposition.Factory<D extends MatrixDecomposition<?>>static interfaceMatrixDecomposition.Hermitian<N extends java.lang.Comparable<N>>Some matrix decompositions are only available with hermitian (symmetric) matrices or different decomposition algorithms could be used depending on if the matrix is hemitian or not.static interfaceMatrixDecomposition.Ordered<N extends java.lang.Comparable<N>>static interfaceMatrixDecomposition.Pivoting<N extends java.lang.Comparable<N>>The pivot or pivot element is the element of a matrix, or an array, which is selected first by an algorithm (e.g.static interfaceMatrixDecomposition.RankRevealing<N extends java.lang.Comparable<N>>A rank-revealing matrix decomposition of a matrix [A] is a decomposition that is, or can be transformed to be, on the form [A]=[X][D][Y]T where: [X] and [Y] are square and well conditioned. [D] is diagonal with nonnegative and non-increasing values on the diagonal.static interfaceMatrixDecomposition.Solver<N extends java.lang.Comparable<N>>static interfaceMatrixDecomposition.Updatable<N extends java.lang.Comparable<N>>static interfaceMatrixDecomposition.Values<N extends java.lang.Comparable<N>>Eigenvalue and Singular Value decompositions can calculate the "values" only.-
Nested classes/interfaces inherited from interface org.ojalgo.structure.Structure1D
Structure1D.BasicMapper<T>, Structure1D.IndexMapper<T>, Structure1D.IntIndex, Structure1D.LongIndex, Structure1D.LoopCallback
-
Nested classes/interfaces inherited from interface org.ojalgo.structure.Structure2D
Structure2D.IntRowColumn, Structure2D.Logical<S extends Structure2D,B extends Structure2D.Logical<S,B>>, Structure2D.LongRowColumn, Structure2D.ReducibleTo1D<R extends Structure1D>, Structure2D.Reshapable, Structure2D.RowColumnKey<R,C>, Structure2D.RowColumnMapper<R,C>
-
-
Field Summary
Fields Modifier and Type Field Description static Structure2DTYPICAL
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description booleandecompose(Access2D.Collectable<N,? super TransformableRegion<N>> matrix)booleanisComputed()MatrixStore<N>reconstruct()voidreset()Delete computed results, and resets attributes to default values-
Methods inherited from interface org.ojalgo.structure.Structure2D
count, countColumns, countRows, firstInColumn, firstInRow, getColDim, getMaxDim, getMinDim, getRowDim, isEmpty, isFat, isScalar, isSquare, isTall, isVector, limitOfColumn, limitOfRow, size
-
-
-
-
Field Detail
-
TYPICAL
static final Structure2D TYPICAL
-
-
Method Detail
-
decompose
boolean decompose(Access2D.Collectable<N,? super TransformableRegion<N>> matrix)
- Parameters:
matrix- A matrix to decompose- Returns:
- true if decomposition suceeded; false if not
-
isComputed
boolean isComputed()
- Returns:
- true if decomposition has been attemped and was successful; false if not.
- See Also:
decompose(Access2D.Collectable)
-
reconstruct
MatrixStore<N> reconstruct()
-
reset
void reset()
Delete computed results, and resets attributes to default values
-
-