|
| | InterpolationDecorator (std::unique_ptr< AbstractIntegrator< S > > integrator, InterpolationConfig config={}) |
| | Construct interpolation decorator.
|
| |
| void | step (typename IntegratorDecorator< S >::state_type &state, typename IntegratorDecorator< S >::time_type dt) override |
| | Override step to record state history.
|
| |
| void | integrate (typename IntegratorDecorator< S >::state_type &state, typename IntegratorDecorator< S >::time_type dt, typename IntegratorDecorator< S >::time_type end_time) override |
| | Override integrate to maintain history during integration.
|
| |
| S | interpolate_at (typename IntegratorDecorator< S >::time_type t) |
| | Get interpolated state at arbitrary time.
|
| |
| std::vector< S > | interpolate_at_multiple (const std::vector< typename IntegratorDecorator< S >::time_type > &time_points) |
| | Get interpolated states at multiple time points.
|
| |
| std::pair< std::vector< typename IntegratorDecorator< S >::time_type >, std::vector< S > > | get_dense_output (typename IntegratorDecorator< S >::time_type start_time, typename IntegratorDecorator< S >::time_type end_time, size_t num_points) |
| | Get dense output over time interval.
|
| |
| const InterpolationStats & | get_statistics () const |
| | Get current interpolation statistics.
|
| |
| void | reset_statistics () |
| | Reset interpolation statistics.
|
| |
| std::pair< typename IntegratorDecorator< S >::time_type, typename IntegratorDecorator< S >::time_type > | get_time_bounds () const |
| | Get time bounds of available history.
|
| |
| void | clear_history () |
| | Clear all history.
|
| |
| size_t | get_history_size () const |
| | Get number of stored history points.
|
| |
| InterpolationConfig & | config () |
| | Access and modify interpolation configuration.
|
| |
| const InterpolationConfig & | config () const |
| |
| | IntegratorDecorator (std::unique_ptr< base_type > integrator) |
| | Construct decorator wrapping another integrator.
|
| |
|
virtual | ~IntegratorDecorator ()=default |
| | Virtual destructor for proper cleanup.
|
| |
| void | step (state_type &state, time_type dt) override |
| |
| void | integrate (state_type &state, time_type dt, time_type end_time) override |
| |
| time_type | current_time () const override |
| |
| void | set_time (time_type t) override |
| |
| void | set_system (system_function sys) override |
| |
| base_type & | wrapped () |
| | Access to wrapped integrator for advanced use.
|
| |
| const base_type & | wrapped () const |
| |
| bool | has_wrapped_integrator () const |
| | Check if wrapped integrator exists.
|
| |
| | AbstractIntegrator (system_function sys) |
| |
| time_type | current_time () const |
| |
| void | set_time (time_type t) |
| |
| void | set_system (system_function sys) |
| |
template<
system_state S>
class diffeq::core::composable::InterpolationDecorator< S >
Interpolation decorator - adds dense output capabilities to any integrator.
This decorator provides comprehensive interpolation capabilities with the following features:
- Dense output with multiple interpolation methods
- Adaptive sampling and history management
- Memory-efficient compression
- Query interface for arbitrary time points
Key Design Principles:
- Single Responsibility: ONLY handles interpolation and dense output
- Efficient: Minimal memory overhead with compression
- Flexible: Multiple interpolation methods
- Robust: Handles edge cases and extrapolation
Definition at line 226 of file interpolation_decorator.hpp.