boost::numeric::odeint::modified_midpoint_dense_out
// In header: <boost/numeric/odeint/stepper/modified_midpoint.hpp> template<typename State, typename Value = double, typename Deriv = State, typename Time = Value, typename Algebra = typename algebra_dispatcher< State >::algebra_type, typename Operations = typename operations_dispatcher< State >::operations_type, typename Resizer = initially_resizer> class modified_midpoint_dense_out { public: // types typedef State state_type; typedef Value value_type; typedef Deriv deriv_type; typedef Time time_type; typedef Algebra algebra_type; typedef Operations operations_type; typedef Resizer resizer_type; typedef state_wrapper< state_type > wrapped_state_type; typedef state_wrapper< deriv_type > wrapped_deriv_type; typedef modified_midpoint_dense_out< State, Value, Deriv, Time, Algebra, Operations, Resizer > stepper_type; typedef std::vector< wrapped_deriv_type > deriv_table_type; // construct/copy/destruct modified_midpoint_dense_out(unsigned short = 2, const algebra_type & = algebra_type()); // public member functions template<typename System, typename StateIn, typename DerivIn, typename StateOut> void do_step(System, const StateIn &, const DerivIn &, time_type, StateOut &, time_type, state_type &, deriv_table_type &); void set_steps(unsigned short); unsigned short steps(void) const; template<typename StateIn> bool resize(const StateIn &); template<typename StateIn> void adjust_size(const StateIn &); };
Implementation of the modified midpoint method with a configurable number of intermediate steps. This class is used by the dense output Bulirsch-Stoer algorithm and is not meant for direct usage.
Note | |
---|---|
This stepper is for internal use only and does not meet any stepper concept. |
modified_midpoint_dense_out
public member functionstemplate<typename System, typename StateIn, typename DerivIn, typename StateOut> void do_step(System system, const StateIn & in, const DerivIn & dxdt, time_type t, StateOut & out, time_type dt, state_type & x_mp, deriv_table_type & derivs);
void set_steps(unsigned short steps);
unsigned short steps(void) const;
template<typename StateIn> bool resize(const StateIn & x);
template<typename StateIn> void adjust_size(const StateIn & x);