Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of boost. Click here for the latest Boost documentation.
Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Class template modified_midpoint_dense_out

boost::numeric::odeint::modified_midpoint_dense_out

Synopsis

// 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 &);
};

Description

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] Note

This stepper is for internal use only and does not meet any stepper concept.

modified_midpoint_dense_out public construct/copy/destruct

  1. modified_midpoint_dense_out(unsigned short steps = 2, 
                                const algebra_type & algebra = algebra_type());

modified_midpoint_dense_out public member functions

  1. template<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);
  2. void set_steps(unsigned short steps);
  3. unsigned short steps(void) const;
  4. template<typename StateIn> bool resize(const StateIn & x);
  5. template<typename StateIn> void adjust_size(const StateIn & x);

PrevUpHomeNext