Package org.ojalgo.optimisation.linear
Class ProductFormInverse
- java.lang.Object
-
- org.ojalgo.optimisation.linear.ProductFormInverse
-
- All Implemented Interfaces:
InvertibleFactor<java.lang.Double>
,Structure1D
,Structure2D
final class ProductFormInverse extends java.lang.Object implements InvertibleFactor<java.lang.Double>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
ProductFormInverse.ArrayPool
(package private) static class
ProductFormInverse.ElementaryFactor
-
Nested classes/interfaces inherited from interface org.ojalgo.matrix.transformation.InvertibleFactor
InvertibleFactor.IdentityFactor<N extends java.lang.Comparable<N>>
-
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 private ObjectPool<SparseArray<java.lang.Double>>
myArrayPool
private int
myDim
private java.util.List<ProductFormInverse.ElementaryFactor>
myFactors
private LU<java.lang.Double>
myRoot
private double
myScalingThreshold
private R064Store
myWork
-
Constructor Summary
Constructors Constructor Description ProductFormInverse(int dim, double scalingThreshold)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
btran(PhysicalStore<java.lang.Double> arg)
Backwards-transformationprivate void
clearFactors()
void
ftran(PhysicalStore<java.lang.Double> arg)
Forward-transformationint
getColDim()
int
getRowDim()
private ProductFormInverse.ElementaryFactor
newFactor(R064Store values, int col, double diagonalElement)
(package private) void
reset()
(package private) void
reset(MatrixStore<java.lang.Double> basis)
Update the product form inverse to reflect a replaced column.(package private) void
update(int col, SparseArray<java.lang.Double> values)
Update the product form inverse to reflect a replaced column.(package private) void
update(MatrixStore<java.lang.Double> basis, int index, SparseArray<java.lang.Double> values)
Update the inverse to reflect a replaced column in the basis.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.ojalgo.matrix.transformation.InvertibleFactor
btran, ftran
-
Methods inherited from interface org.ojalgo.structure.Structure2D
count, countColumns, countRows, firstInColumn, firstInRow, getMaxDim, getMinDim, isEmpty, isFat, isScalar, isSquare, isTall, isVector, limitOfColumn, limitOfRow, size
-
-
-
-
Field Detail
-
myArrayPool
private final ObjectPool<SparseArray<java.lang.Double>> myArrayPool
-
myDim
private final int myDim
-
myFactors
private final java.util.List<ProductFormInverse.ElementaryFactor> myFactors
-
myRoot
private final LU<java.lang.Double> myRoot
-
myScalingThreshold
private final double myScalingThreshold
-
myWork
private final R064Store myWork
-
-
Method Detail
-
btran
public void btran(PhysicalStore<java.lang.Double> arg)
Description copied from interface:InvertibleFactor
Backwards-transformationSolve [x]T[A] = [b]T (equivalent to [A]T[x] = [b]) by transforming [b] into [x] in-place.
- Specified by:
btran
in interfaceInvertibleFactor<java.lang.Double>
- Parameters:
arg
- [b] transformed into [x]
-
ftran
public void ftran(PhysicalStore<java.lang.Double> arg)
Description copied from interface:InvertibleFactor
Forward-transformationSolve [A][x] = [b] by transforming [b] into [x] in-place.
- Specified by:
ftran
in interfaceInvertibleFactor<java.lang.Double>
- Parameters:
arg
- [b] transformed into [x]
-
getColDim
public int getColDim()
- Specified by:
getColDim
in interfaceStructure2D
- Returns:
- The number of columns
-
getRowDim
public int getRowDim()
- Specified by:
getRowDim
in interfaceStructure2D
- Returns:
- The number of rows
-
clearFactors
private void clearFactors()
-
newFactor
private ProductFormInverse.ElementaryFactor newFactor(R064Store values, int col, double diagonalElement)
-
reset
void reset()
-
reset
void reset(MatrixStore<java.lang.Double> basis)
Update the product form inverse to reflect a replaced column.- Parameters:
basis
- Full basis, with the column already exchanged.
-
update
void update(int col, SparseArray<java.lang.Double> values)
Update the product form inverse to reflect a replaced column.- Parameters:
col
- The column, of the basis, that was exchanged.values
- The (non zero) values of that column.
-
update
void update(MatrixStore<java.lang.Double> basis, int index, SparseArray<java.lang.Double> values)
Update the inverse to reflect a replaced column in the basis.- Parameters:
basis
- Full basis, with the column already exchanged.index
- The index, of the column, that was exchanged.values
- The (non zero) values of that column.
-
-