Module ojalgo
Package org.ojalgo.matrix.transformation
Interface InvertibleFactor<N extends Comparable<N>>
- All Superinterfaces:
Structure1D,Structure2D
- All Known Subinterfaces:
BasisRepresentation,Cholesky<N>,Eigenvalue.Spectral<N>,LDL<N>,LDU<N>,LU<N>,MatrixDecomposition.Solver<N>,QR<N>,SingularValue<N>
- All Known Implementing Classes:
DecomposedInverse,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,DenseQR,DenseQR.C128,DenseQR.H256,DenseQR.Q128,DenseQR.R064,DenseQR.R128,DenseSingularValue,DenseSingularValue.C128,DenseSingularValue.H256,DenseSingularValue.Q128,DenseSingularValue.R064,DenseSingularValue.R128,HermitianEvD,HermitianEvD.C128,HermitianEvD.H256,HermitianEvD.Q128,HermitianEvD.R064,HermitianEvD.R128,InvertibleFactor.IdentityFactor,ProductFormInverse,ProductFormInverse.ElementaryFactor,RawCholesky,RawEigenvalue.Symmetric,RawLU,RawQR,RawSingularValue,SparseLU,SparseLU.PermutationEta
A chainable and reversible in-place (equation system) solver.
Matrix decompositions produce factorisations like [A] = [L][U], [A] = [Q][R] or [A] = [U][D][V]T. When solving equation systems the factors are used in sequence:
[A][x] = [b] and [A] = [L][U] gives [L][U][x] = [b], which is solved in these steps:
- [L][y] = [b] or [y] = [L]-1[b]
- [U][x] = [y] or [x] = [U]-1[y]
If we instead want to solve [x]T[A] = [b]T or [A]T[x] = [b] the steps are:
- [U]T[y] = [b] or [y] = [U]-T[b]
- [L]T[x] = [y] or [x] = [L]-T[y]
Implementing this interface can be useful whenever a matrix (or its inverse) can be constructed using a sequence of factors.
An invertible factor needs to be square.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final classInvertibleFactor.IdentityFactor<N extends Comparable<N>>Nested classes/interfaces inherited from interface org.ojalgo.structure.Structure1D
Structure1D.BasicMapper<T>, Structure1D.IndexMapper<T>, Structure1D.IntIndex, Structure1D.LongIndex, Structure1D.LoopCallbackNested 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> -
Method Summary
Modifier and TypeMethodDescriptionvoidbtran(PhysicalStore<N> arg) Backwards-transformationvoidftran(PhysicalStore<N> arg) Forward-transformationstatic <N extends Comparable<N>>
InvertibleFactor<N> identity(int dim) 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
-
Method Details
-
identity
-
btran
Backwards-transformationSolve [x]T[A] = [b]T (equivalent to [A]T[x] = [b]) by transforming [b] into [x] in-place.
- Parameters:
arg- [b] transformed into [x]
-
ftran
Forward-transformationSolve [A][x] = [b] by transforming [b] into [x] in-place.
- Parameters:
arg- [b] transformed into [x]
-