Package org.hipparchus.util
Class IterationManager
java.lang.Object
org.hipparchus.util.IterationManager
This abstract class provides a general framework for managing iterative
algorithms. The maximum number of iterations can be set, and methods are
provided to monitor the current iteration count. A lightweight event
framework is also provided.
-
Constructor Summary
ConstructorsConstructorDescriptionIterationManager(int maxIterations) Creates a new instance of this class.IterationManager(int maxIterations, Incrementor.MaxCountExceededCallback callBack) Creates a new instance of this class. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddIterationListener(IterationListener listener) Attaches a listener to this manager.voidInforms all registered listeners that the initial phase (prior to the main iteration loop) has been completed.voidInforms all registered listeners that a new iteration (in the main iteration loop) has been performed.voidInforms all registered listeners that a new iteration (in the main iteration loop) has been started.voidInforms all registered listeners that the final phase (post-iterations) has been completed.intReturns the number of iterations of this solver, 0 if no iterations has been performed yet.intReturns the maximum number of iterations.voidIncrements the iteration count by one, and throws an exception if the maximum number of iterations is reached.voidremoveIterationListener(IterationListener listener) Removes the specified iteration listener from the list of listeners currently attached tothisobject.voidSets the iteration count to 0.
-
Constructor Details
-
IterationManager
public IterationManager(int maxIterations) Creates a new instance of this class.- Parameters:
maxIterations- the maximum number of iterations
-
IterationManager
Creates a new instance of this class.- Parameters:
maxIterations- the maximum number of iterationscallBack- the function to be called when the maximum number of iterations has been reached- Throws:
NullArgumentException- ifcallBackisnull
-
-
Method Details
-
addIterationListener
Attaches a listener to this manager.- Parameters:
listener- AIterationListenerobject.
-
fireInitializationEvent
Informs all registered listeners that the initial phase (prior to the main iteration loop) has been completed.- Parameters:
e- TheIterationEventobject.
-
fireIterationPerformedEvent
Informs all registered listeners that a new iteration (in the main iteration loop) has been performed.- Parameters:
e- TheIterationEventobject.
-
fireIterationStartedEvent
Informs all registered listeners that a new iteration (in the main iteration loop) has been started.- Parameters:
e- TheIterationEventobject.
-
fireTerminationEvent
Informs all registered listeners that the final phase (post-iterations) has been completed.- Parameters:
e- TheIterationEventobject.
-
getIterations
public int getIterations()Returns the number of iterations of this solver, 0 if no iterations has been performed yet.- Returns:
- the number of iterations.
-
getMaxIterations
public int getMaxIterations()Returns the maximum number of iterations.- Returns:
- the maximum number of iterations.
-
incrementIterationCount
Increments the iteration count by one, and throws an exception if the maximum number of iterations is reached. This method should be called at the beginning of a new iteration.- Throws:
MathIllegalStateException- if the maximum number of iterations is reached.
-
removeIterationListener
Removes the specified iteration listener from the list of listeners currently attached tothisobject. Attempting to remove a listener which was not previously registered does not cause any error.- Parameters:
listener- TheIterationListenerto be removed.
-
resetIterationCount
public void resetIterationCount()Sets the iteration count to 0. This method must be called during the initial phase.
-