Class ProductFormInverse
java.lang.Object
org.ojalgo.optimisation.linear.ProductFormInverse
- All Implemented Interfaces:
InvertibleFactor<Double>, BasisRepresentation, Structure1D, Structure2D
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final class(package private) static final classNested classes/interfaces inherited from interface InvertibleFactor
InvertibleFactor.IdentityFactor<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
FieldsModifier and TypeFieldDescriptionprivate final ObjectPool<SparseArray<Double>> private final intprivate final List<ProductFormInverse.ElementaryFactor> private final doubleprivate final R064Store -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidbtran(double[] arg) voidbtran(PhysicalStore<Double> arg) Backwards-transformationprivate voidvoidftran(double[] arg) voidftran(PhysicalStore<Double> arg) Forward-transformationintintvoidreset(MatrixStore<Double> basis) Update the product form inverse to reflect a replaced column.voidupdate(MatrixStore<Double> basis, int col, SparseArray<Double> values) Update the inverse to reflect a replaced column in the basis.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Structure2D
count, countColumns, countRows, firstInColumn, firstInRow, getMaxDim, getMinDim, isEmpty, isFat, isScalar, isSquare, isTall, isVector, limitOfColumn, limitOfRow, size
-
Field Details
-
myArrayPool
-
myDim
private final int myDim -
myFactors
-
myRoot
-
myScalingThreshold
private final double myScalingThreshold -
myWork
-
-
Constructor Details
-
ProductFormInverse
ProductFormInverse(int dim, double scalingThreshold)
-
-
Method Details
-
btran
public void btran(double[] arg) - Specified by:
btranin interfaceInvertibleFactor<Double>- See Also:
-
btran
Description copied from interface:InvertibleFactorBackwards-transformationSolve [x]T[A] = [b]T (equivalent to [A]T[x] = [b]) by transforming [b] into [x] in-place.
- Specified by:
btranin interfaceInvertibleFactor<Double>- Parameters:
arg- [b] transformed into [x]
-
ftran
public void ftran(double[] arg) - Specified by:
ftranin interfaceInvertibleFactor<Double>- See Also:
-
ftran
Description copied from interface:InvertibleFactorForward-transformationSolve [A][x] = [b] by transforming [b] into [x] in-place.
- Specified by:
ftranin interfaceInvertibleFactor<Double>- Parameters:
arg- [b] transformed into [x]
-
getColDim
public int getColDim()- Specified by:
getColDimin interfaceStructure2D- Returns:
- The number of columns
-
getRowDim
public int getRowDim()- Specified by:
getRowDimin interfaceStructure2D- Returns:
- The number of rows
-
reset
Update the product form inverse to reflect a replaced column.- Specified by:
resetin interfaceBasisRepresentation- Parameters:
basis- Full basis, with the column already exchanged.
-
update
Update the inverse to reflect a replaced column in the basis.- Specified by:
updatein interfaceBasisRepresentation- Parameters:
basis- Full basis, with the column already exchanged.col- The index, of the column, that was exchanged.values- The (non zero) values of that column.
-
clearFactors
private void clearFactors() -
newFactor
private ProductFormInverse.ElementaryFactor newFactor(R064Store values, int col, double diagonalElement)
-