Boost C++ Libraries 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


Class template dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>

boost::numeric::odeint::dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag> — The class representing dense-output Runge-Kutta steppers with FSAL property.


// In header: <boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp>

template<typename Stepper> 
class dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag> {
  // types
  typedef Stepper                               controlled_stepper_type;  
  typedef controlled_stepper_type::stepper_type stepper_type;             
  typedef stepper_type::state_type              state_type;               
  typedef stepper_type::wrapped_state_type      wrapped_state_type;       
  typedef stepper_type::value_type              value_type;               
  typedef stepper_type::deriv_type              deriv_type;               
  typedef stepper_type::wrapped_deriv_type      wrapped_deriv_type;       
  typedef stepper_type::time_type               time_type;                
  typedef stepper_type::algebra_type            algebra_type;             
  typedef stepper_type::operations_type         operations_type;          
  typedef stepper_type::resizer_type            resizer_type;             
  typedef dense_output_stepper_tag              stepper_category;         
  typedef dense_output_runge_kutta< Stepper >   dense_output_stepper_type;

  // construct/copy/destruct
  dense_output_runge_kutta(const controlled_stepper_type & = controlled_stepper_type());

  // public member functions
  template<typename StateType> 
    void initialize(const StateType &, time_type, time_type);
  template<typename System> std::pair< time_type, time_type > do_step(System);
  template<typename StateOut> void calc_state(time_type, StateOut &) const;
  template<typename StateOut> 
    void calc_state(time_type, const StateOut &) const;
  template<typename StateIn> bool resize(const StateIn &);
  template<typename StateType> void adjust_size(const StateType &);
  const state_type & current_state(void) const;
  time_type current_time(void) const;
  const state_type & previous_state(void) const;
  time_type previous_time(void) const;
  time_type current_time_step(void) const;

  // private member functions
  state_type & get_current_state(void);
  const state_type & get_current_state(void) const;
  state_type & get_old_state(void);
  const state_type & get_old_state(void) const;
  deriv_type & get_current_deriv(void);
  const deriv_type & get_current_deriv(void) const;
  deriv_type & get_old_deriv(void);
  const deriv_type & get_old_deriv(void) const;
  void toggle_current_state(void);


The interface is the same as for dense_output_runge_kutta< Stepper , stepper_tag >. This class provides dense output functionality based on methods with step size controlled

Template Parameters

  1. typename Stepper

    The stepper type of the underlying algorithm.

dense_output_runge_kutta public construct/copy/destruct

  1. dense_output_runge_kutta(const controlled_stepper_type & stepper = controlled_stepper_type());

dense_output_runge_kutta public member functions

  1. template<typename StateType> 
      void initialize(const StateType & x0, time_type t0, time_type dt0);
  2. template<typename System> 
      std::pair< time_type, time_type > do_step(System system);
  3. template<typename StateOut> void calc_state(time_type t, StateOut & x) const;
  4. template<typename StateOut> 
      void calc_state(time_type t, const StateOut & x) const;
  5. template<typename StateIn> bool resize(const StateIn & x);
  6. template<typename StateType> void adjust_size(const StateType & x);
  7. const state_type & current_state(void) const;
  8. time_type current_time(void) const;
  9. const state_type & previous_state(void) const;
  10. time_type previous_time(void) const;
  11. time_type current_time_step(void) const;

dense_output_runge_kutta private member functions

  1. state_type & get_current_state(void);
  2. const state_type & get_current_state(void) const;
  3. state_type & get_old_state(void);
  4. const state_type & get_old_state(void) const;
  5. deriv_type & get_current_deriv(void);
  6. const deriv_type & get_current_deriv(void) const;
  7. deriv_type & get_old_deriv(void);
  8. const deriv_type & get_old_deriv(void) const;
  9. void toggle_current_state(void);