| Home | Libraries | People | FAQ | More

## Class template rosenbrock4_controller

boost::numeric::odeint::rosenbrock4_controller

## Synopsis

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

    template<typename Stepper>
    class rosenbrock4_controller {
    public:
      // types
      typedef Stepper                           stepper_type;
      typedef stepper_type::value_type          value_type;
      typedef stepper_type::state_type          state_type;
      typedef stepper_type::wrapped_state_type  wrapped_state_type;
      typedef stepper_type::time_type           time_type;
      typedef stepper_type::deriv_type          deriv_type;
      typedef stepper_type::wrapped_deriv_type  wrapped_deriv_type;
      typedef stepper_type::resizer_type        resizer_type;
      typedef controlled_stepper_tag            stepper_category;
      typedef rosenbrock4_controller< Stepper > controller_type;

      // construct/copy/destruct
      rosenbrock4_controller(value_type = 1.0e-6, value_type = 1.0e-6,
                             const stepper_type & = stepper_type());
      rosenbrock4_controller(value_type, value_type, time_type,
                             const stepper_type & = stepper_type());

      // public member functions
      value_type error(const state_type &, const state_type &, const state_type &);
      value_type last_error(void) const;
      template<typename System>
        boost::numeric::odeint::controlled_step_result
        try_step(System, state_type &, time_type &, time_type &);
      template<typename System>
        boost::numeric::odeint::controlled_step_result
        try_step(System, const state_type &, time_type &, state_type &,
                 time_type &);
      template<typename StateType> void adjust_size(const StateType &);
      stepper_type & stepper(void);
      const stepper_type & stepper(void) const;

      // private member functions
      template<typename StateIn> bool resize_m_xerr(const StateIn &);
      template<typename StateIn> bool resize_m_xnew(const StateIn &);
    };

## Description

### `rosenbrock4_controller` public construct/copy/destruct

1.     rosenbrock4_controller(value_type atol = 1.0e-6, value_type rtol = 1.0e-6,
                              const stepper_type & stepper = stepper_type());

2.     rosenbrock4_controller(value_type atol, value_type rtol, time_type max_dt,
                              const stepper_type & stepper = stepper_type());

### `rosenbrock4_controller` public member functions

1.     value_type error(const state_type & x, const state_type & xold,
                        const state_type & xerr);

2.     value_type last_error(void) const;

3.     template<typename System>
         boost::numeric::odeint::controlled_step_result
         try_step(System sys, state_type & x, time_type & t, time_type & dt);

4.     template<typename System>
         boost::numeric::odeint::controlled_step_result
         try_step(System sys, const state_type & x, time_type & t, state_type & xout,
                  time_type & dt);

5.     template<typename StateType> void adjust_size(const StateType & x);

6.     stepper_type & stepper(void);

7.     const stepper_type & stepper(void) const;

### `rosenbrock4_controller` private member functions

1.     template<typename StateIn> bool resize_m_xerr(const StateIn & x);

2.     template<typename StateIn> bool resize_m_xnew(const StateIn & x);