1 /* 2 [auto_generated] 3 boost/numeric/odeint/stepper/stepper_categories.hpp 4 5 [begin_description] 6 Definition of all stepper categories. 7 [end_description] 8 9 Copyright 2010-2011 Mario Mulansky 10 Copyright 2010-2012 Karsten Ahnert 11 12 Distributed under the Boost Software License, Version 1.0. 13 (See accompanying file LICENSE_1_0.txt or 14 copy at http://www.boost.org/LICENSE_1_0.txt) 15 */ 16 17 18 #ifndef BOOST_NUMERIC_ODEINT_STEPPER_STEPPER_CATEGORIES_HPP_INCLUDED 19 #define BOOST_NUMERIC_ODEINT_STEPPER_STEPPER_CATEGORIES_HPP_INCLUDED 20 21 #include <boost/type_traits/integral_constant.hpp> 22 23 namespace boost { 24 namespace numeric { 25 namespace odeint { 26 27 28 /* 29 * Tags to specify stepper types 30 * 31 * These tags are used by integrate() to choose which integration method is used 32 */ 33 34 struct stepper_tag {}; 35 // struct explicit_stepper_tag : stepper_tag {}; 36 // struct implicit_stepper_tag : stepper_tag {}; 37 38 39 struct error_stepper_tag : stepper_tag {}; 40 struct explicit_error_stepper_tag : error_stepper_tag {}; 41 struct explicit_error_stepper_fsal_tag : error_stepper_tag {}; 42 43 struct controlled_stepper_tag {}; 44 struct explicit_controlled_stepper_tag : controlled_stepper_tag {}; 45 struct explicit_controlled_stepper_fsal_tag : controlled_stepper_tag {}; 46 47 struct dense_output_stepper_tag {}; 48 49 50 template< class tag > struct base_tag ; 51 template< > struct base_tag< stepper_tag > { typedef stepper_tag type; }; 52 template< > struct base_tag< error_stepper_tag > { typedef stepper_tag type; }; 53 template< > struct base_tag< explicit_error_stepper_tag > { typedef stepper_tag type; }; 54 template< > struct base_tag< explicit_error_stepper_fsal_tag > { typedef stepper_tag type; }; 55 56 template< > struct base_tag< controlled_stepper_tag > { typedef controlled_stepper_tag type; }; 57 template< > struct base_tag< explicit_controlled_stepper_tag > { typedef controlled_stepper_tag type; }; 58 template< > struct base_tag< explicit_controlled_stepper_fsal_tag > { typedef controlled_stepper_tag type; }; 59 60 template< > struct base_tag< dense_output_stepper_tag > { typedef dense_output_stepper_tag type; }; 61 62 63 } // odeint 64 } // numeric 65 } // boost 66 67 68 #endif // BOOST_NUMERIC_ODEINT_STEPPER_STEPPER_CATEGORIES_HPP_INCLUDED 69