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>
,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
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 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 Classes Modifier and Type Interface Description static interface
MatrixDecomposition.Determinant<N extends java.lang.Comparable<N>>
static interface
MatrixDecomposition.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 interface
MatrixDecomposition.Factory<D extends MatrixDecomposition<?>>
static interface
MatrixDecomposition.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 interface
MatrixDecomposition.Ordered<N extends java.lang.Comparable<N>>
static interface
MatrixDecomposition.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 interface
MatrixDecomposition.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 interface
MatrixDecomposition.Solver<N extends java.lang.Comparable<N>>
static interface
MatrixDecomposition.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 Structure2D
TYPICAL
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
decompose(Access2D.Collectable<N,? super PhysicalStore<N>> matrix)
boolean
isComputed()
MatrixStore<N>
reconstruct()
void
reset()
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 PhysicalStore<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
-
-