all integrate function now use the adaption to provide checking functionality
the implementations in detail::integrate_* are not aware of the checkers at
all.
integrate_times now uses checked_stepper and checked_observer to implement
the checking facility. Not that this means the integrate implementations in
detail::integrate_times have no knowledge on the checkers at all.
instead of adding the functionality within the integrate functions we
will use adapters, i.e. checked_stepper and checked_observer to implement
the checking functionality
this commit contains the first implementation of this for integrate_times
generate function now support additional max_dt parameter for setting the set
size limit.
Added a test case to check limiter behavior for controlled and dense out
integration.
the logic for step size adjustment is moved to the error_checker.
this removes code duplication and will make it easier to add step size
limiting functionality.
the additional state requried in the find_condition function was potentially
not allocated. Now odeint's resizing mechanism is used to ensure the correct
memory allocation.
simple example for an event detection implementation based on dopri5
stepper and simple bisection.
Simple, straight forward implementation, but shouldnt be difficult to adapt
to other problems.
Following the discussion in #173, the integrate_const function now
provide a mechanisms to check for TOO_MUCH_WORK situations where too
many steps are performed without any progress (i.e. observer calls).
Naturally, this only makes sense for controlled steppers or dense
output steppers.
Also, integrate_adaptive functions do not require such functionality as
there observer calls happen at every time step.
Hence, only integrate_n_steps and integrate_times will be adapted shortly
the code in integrate_times for a controlled stepper and in the dense out
stepper was inconsistent in terms of when exactly to throw the exception.
See #173 for some discussion on this.
warning: struct template 'reference_wrapper' was previously declared as a class template [-Wmismatched-tags]
include/boost/core/ref.hpp:59:25: note: previous use is here