public abstract class MutableSolver<D extends org.ojalgo.matrix.task.iterative.IterativeSolverTask & org.ojalgo.matrix.task.iterative.IterativeSolverTask.SparseDelegate> extends Object
Modifier and Type | Class and Description |
---|---|
static class |
IterativeSolverTask.Configurator |
SolverTask.Factory<N extends Number>
COMPLEX, PRIMITIVE, QUATERNION, RATIONAL
Modifier | Constructor and Description |
---|---|
protected |
MutableSolver(D delegate,
long size) |
Modifier and Type | Method and Description |
---|---|
boolean |
add(Equation row) |
void |
clear() |
IterativeSolverTask.Configurator |
configurator() |
protected void |
debug(int iteration,
Access1D<?> current) |
protected double |
doubleValue(int row,
int column) |
protected NumberContext |
getAccuracyContext() |
protected D |
getDelegate() |
protected int |
getIterationsLimit() |
protected boolean |
isDebugPrinterSet() |
PhysicalStore<Double> |
preallocate(Structure2D templateBody,
Structure2D templateRHS)
Will create a PhysicalStore instance suitable for use with
SolverTask.solve(Access2D, Access2D, PhysicalStore) . |
boolean |
remove(Equation row) |
double |
resolve(PhysicalStore<Double> solution)
A variation of solve(Access2D, Access2D, PhysicalStore) where you do not supply the
equation system
body . |
protected void |
setAccuracyContext(NumberContext accuracyContext) |
protected void |
setDebugPrinter(BasicLogger.Printer debugPrinter) |
protected void |
setIterationsLimit(int iterationsLimit) |
MatrixStore<Double> |
solve(Access2D<?> body,
Access2D<?> rhs,
PhysicalStore<Double> current)
Exactly how (if at all) a specific implementation makes use of
preallocated is not
specified by this interface. |
Optional<MatrixStore<Double>> |
solve(MatrixStore<Double> body,
MatrixStore<Double> rhs) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
preallocate, solve
protected MutableSolver(D delegate, long size)
public boolean add(Equation row)
public void clear()
public boolean remove(Equation row)
public final double resolve(PhysicalStore<Double> solution)
body
. It is assumed to have been set up beforehand.public MatrixStore<Double> solve(Access2D<?> body, Access2D<?> rhs, PhysicalStore<Double> current) throws RecoverableCondition
SolverTask
Exactly how (if at all) a specific implementation makes use of preallocated
is not
specified by this interface. It must be documented for each implementation.
Should produce the same results as calling SolverTask.solve(Access2D, Access2D)
.
Use SolverTask.preallocate(Structure2D, Structure2D)
to obtain a suitbale preallocated
.
rhs
- The Right Hand Side, wont be modfiedcurrent
- Preallocated memory for the results, possibly some intermediate results. You must
assume this is modified, but you cannot assume it will contain the full/final/correct solution.RecoverableCondition
protected double doubleValue(int row, int column)
protected final D getDelegate()
protected void setAccuracyContext(NumberContext accuracyContext)
protected void setDebugPrinter(BasicLogger.Printer debugPrinter)
protected void setIterationsLimit(int iterationsLimit)
public final IterativeSolverTask.Configurator configurator()
public final PhysicalStore<Double> preallocate(Structure2D templateBody, Structure2D templateRHS)
SolverTask
Will create a PhysicalStore instance suitable for use with
SolverTask.solve(Access2D, Access2D, PhysicalStore)
. The dimensions of the returned instance is not
specified by this interface - it is specified by the behaviour/requirements of each implementation.
When solving an equation system [A][X]=[B] ([mxn][nxb]=[mxb]) the preallocated memory/matrix will typically be either mxb or nxb.
preallocate
in interface SolverTask<Double>
public final Optional<MatrixStore<Double>> solve(MatrixStore<Double> body, MatrixStore<Double> rhs)
protected final void debug(int iteration, Access1D<?> current)
protected final NumberContext getAccuracyContext()
protected final int getIterationsLimit()
protected final boolean isDebugPrinterSet()
Copyright © 2019 Optimatika. All rights reserved.