Package org.ojalgo.matrix.task.iterative
Class ParallelGaussSeidelSolver
java.lang.Object
org.ojalgo.matrix.task.iterative.IterativeSolverTask
org.ojalgo.matrix.task.iterative.StationaryIterativeSolver
org.ojalgo.matrix.task.iterative.ParallelGaussSeidelSolver
- All Implemented Interfaces:
IterativeSolverTask.SparseDelegate
,MatrixTask<Double>
,SolverTask<Double>
public final class ParallelGaussSeidelSolver
extends StationaryIterativeSolver
implements IterativeSolverTask.SparseDelegate
Experimental parallelised version of
GaussSeidelSolver
.-
Nested Class Summary
Nested classes/interfaces inherited from class org.ojalgo.matrix.task.iterative.IterativeSolverTask
IterativeSolverTask.Configurator, IterativeSolverTask.SparseDelegate
Nested classes/interfaces inherited from interface org.ojalgo.matrix.task.SolverTask
SolverTask.Factory<N extends Comparable<N>>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final DivideAndConquer.Divider
private static final IntSupplier
private static final int
Fields inherited from class org.ojalgo.matrix.task.iterative.IterativeSolverTask
DEFAULT
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static void
divide
(int nbEquations, DivideAndConquer.Conquerer conquerer) double
resolve
(List<Equation> equations, PhysicalStore<Double> solution) private double
resolve
(List<Equation> equations, PhysicalStore<Double> solution, double normRHS, AtomicInteger iterationsCounter, int first, int last) solve
(Access2D<?> body, Access2D<?> rhs, PhysicalStore<Double> current) Exactly how (if at all) a specific implementation makes use ofpreallocated
is not specified by this interface.Methods inherited from class org.ojalgo.matrix.task.iterative.StationaryIterativeSolver
getRelaxationFactor, setRelaxationFactor
Methods inherited from class org.ojalgo.matrix.task.iterative.IterativeSolverTask
configurator, debug, getAccuracyContext, getIterationsLimit, isDebugPrinterSet, preallocate, setAccuracyContext, setDebugPrinter, setIterationsLimit, solve, toListOfRows
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.task.iterative.IterativeSolverTask.SparseDelegate
resolve
Methods inherited from interface org.ojalgo.matrix.task.SolverTask
preallocate, solve, toSolutionProvider
-
Field Details
-
DIVIDER
-
PARALLELISM
-
THRESHOLD
private static final int THRESHOLD- See Also:
-
-
Constructor Details
-
ParallelGaussSeidelSolver
public ParallelGaussSeidelSolver()
-
-
Method Details
-
divide
-
resolve
- Specified by:
resolve
in interfaceIterativeSolverTask.SparseDelegate
-
solve
public MatrixStore<Double> solve(Access2D<?> body, Access2D<?> rhs, PhysicalStore<Double> current) throws RecoverableCondition Description copied from interface: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 suitbalepreallocated
.- Specified by:
solve
in interfaceSolverTask<Double>
- Parameters:
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/ /correct solution.- Returns:
- The solution
- Throws:
RecoverableCondition
-
resolve
private double resolve(List<Equation> equations, PhysicalStore<Double> solution, double normRHS, AtomicInteger iterationsCounter, int first, int last)
-