| /* |
| [auto_generated] |
| boost/numeric/odeint/stepper/generation/make_controlled.hpp |
| |
| [begin_description] |
| Factory function to simplify the creation of controlled steppers from error steppers. |
| [end_description] |
| |
| Copyright 2011-2012 Karsten Ahnert |
| Copyright 2011-2012 Mario Mulansky |
| |
| Distributed under the Boost Software License, Version 1.0. |
| (See accompanying file LICENSE_1_0.txt or |
| copy at http://www.boost.org/LICENSE_1_0.txt) |
| */ |
| |
| |
| #ifndef BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_MAKE_CONTROLLED_HPP_INCLUDED |
| #define BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_MAKE_CONTROLLED_HPP_INCLUDED |
| |
| |
| |
| |
| namespace boost { |
| namespace numeric { |
| namespace odeint { |
| |
| |
| |
| // default template for the controller |
| template< class Stepper > struct get_controller { }; |
| |
| |
| |
| // default controller factory |
| template< class Stepper , class Controller > |
| struct controller_factory |
| { |
| Controller operator()( |
| typename Stepper::value_type abs_error , |
| typename Stepper::value_type rel_error , |
| const Stepper &stepper ) |
| { |
| return Controller( abs_error , rel_error , stepper ); |
| } |
| }; |
| |
| |
| |
| |
| namespace result_of |
| { |
| template< class Stepper > |
| struct make_controlled |
| { |
| typedef typename get_controller< Stepper >::type type; |
| }; |
| } |
| |
| |
| template< class Stepper > |
| typename result_of::make_controlled< Stepper >::type make_controlled( |
| typename Stepper::value_type abs_error , |
| typename Stepper::value_type rel_error , |
| const Stepper & stepper = Stepper() ) |
| { |
| typedef Stepper stepper_type; |
| typedef typename result_of::make_controlled< stepper_type >::type controller_type; |
| typedef controller_factory< stepper_type , controller_type > factory_type; |
| factory_type factory; |
| return factory( abs_error , rel_error , stepper ); |
| } |
| |
| |
| |
| } // odeint |
| } // numeric |
| } // boost |
| |
| |
| #endif // BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_MAKE_CONTROLLED_HPP_INCLUDED |