Package org.ojalgo.matrix.decomposition
Interface MatrixDecomposition<N extends Comparable<N>>
- All Superinterfaces:
Structure1D
,Structure2D
- All Known Subinterfaces:
Bidiagonal<N>
,Cholesky<N>
,Eigenvalue<N>
,Eigenvalue.Generalised<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.Values<N>
,QR<N>
,SingularValue<N>
,Tridiagonal<N>
- All Known Implementing Classes:
AbstractDecomposition
,BidiagonalDecomposition
,BidiagonalDecomposition.C128
,BidiagonalDecomposition.H256
,BidiagonalDecomposition.Q128
,BidiagonalDecomposition.R064
,BidiagonalDecomposition.R128
,CholeskyDecomposition
,CholeskyDecomposition.C128
,CholeskyDecomposition.H256
,CholeskyDecomposition.Q128
,CholeskyDecomposition.R064
,CholeskyDecomposition.R128
,DeferredTridiagonal
,DeferredTridiagonal.C128
,DeferredTridiagonal.H256
,DeferredTridiagonal.Q128
,DeferredTridiagonal.R064
,DeferredTridiagonal.R128
,DynamicEvD
,DynamicEvD.R064
,EigenvalueDecomposition
,GeneralEvD
,GeneralEvD.R064
,GeneralisedEvD
,GenericDecomposition
,HermitianEvD
,HermitianEvD.C128
,HermitianEvD.H256
,HermitianEvD.Q128
,HermitianEvD.R064
,HermitianEvD.R128
,HessenbergDecomposition
,HessenbergDecomposition.C128
,HessenbergDecomposition.H256
,HessenbergDecomposition.Q128
,HessenbergDecomposition.R064
,HessenbergDecomposition.R128
,InPlaceDecomposition
,LDLDecomposition
,LDLDecomposition.C128
,LDLDecomposition.H256
,LDLDecomposition.Q128
,LDLDecomposition.R064
,LDLDecomposition.R128
,LUDecomposition
,LUDecomposition.C128
,LUDecomposition.H256
,LUDecomposition.Q128
,LUDecomposition.R064
,LUDecomposition.R128
,QRDecomposition
,QRDecomposition.C128
,QRDecomposition.H256
,QRDecomposition.Q128
,QRDecomposition.R064
,QRDecomposition.R128
,RawCholesky
,RawDecomposition
,RawEigenvalue
,RawEigenvalue.Dynamic
,RawEigenvalue.General
,RawEigenvalue.Symmetric
,RawLU
,RawQR
,RawSingularValue
,SimultaneousTridiagonal
,SingularValueDecomposition
,SingularValueDecomposition.C128
,SingularValueDecomposition.H256
,SingularValueDecomposition.Q128
,SingularValueDecomposition.R064
,SingularValueDecomposition.R128
,TridiagonalDecomposition
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 equilvalent 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 - obvioulsly 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 ClassesModifier and TypeInterfaceDescriptionstatic interface
MatrixDecomposition.Determinant<N extends Comparable<N>>
static interface
MatrixDecomposition.EconomySize<N extends 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 interface
MatrixDecomposition.Factory<D extends MatrixDecomposition<?>>
static interface
MatrixDecomposition.Hermitian<N extends 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 interface
MatrixDecomposition.Ordered<N extends Comparable<N>>
static interface
MatrixDecomposition.Pivoting<N extends 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 interface
MatrixDecomposition.RankRevealing<N extends 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 interface
MatrixDecomposition.Solver<N extends Comparable<N>>
static interface
MatrixDecomposition.Values<N extends 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 -
Method Summary
Modifier and TypeMethodDescriptionboolean
decompose
(Access2D.Collectable<N, ? super PhysicalStore<N>> matrix) boolean
void
reset()
Delete computed results, and resets attributes to default valuesMethods 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 Details
-
TYPICAL
-
-
Method Details
-
decompose
- 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:
-
reconstruct
MatrixStore<N> reconstruct() -
reset
void reset()Delete computed results, and resets attributes to default values
-