Warning, file /include/boost/numeric/odeint/integrate/integrate_n_steps.hpp was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #ifndef BOOST_NUMERIC_ODEINT_INTEGRATE_INTEGRATE_N_STEPS_HPP_INCLUDED
0019 #define BOOST_NUMERIC_ODEINT_INTEGRATE_INTEGRATE_N_STEPS_HPP_INCLUDED
0020
0021 #include <boost/numeric/odeint/stepper/stepper_categories.hpp>
0022 #include <boost/numeric/odeint/integrate/null_observer.hpp>
0023 #include <boost/numeric/odeint/integrate/detail/integrate_n_steps.hpp>
0024 #include <boost/numeric/odeint/integrate/check_adapter.hpp>
0025
0026 namespace boost {
0027 namespace numeric {
0028 namespace odeint {
0029
0030
0031
0032
0033
0034
0035
0036 template< class Stepper , class System , class State , class Time , class Observer , class StepOverflowChecker >
0037 Time integrate_n_steps(
0038 Stepper stepper , System system , State &start_state ,
0039 Time start_time , Time dt , size_t num_of_steps ,
0040 Observer observer , StepOverflowChecker checker )
0041 {
0042
0043 typedef typename odeint::unwrap_reference< Stepper >::type stepper_type;
0044 typedef typename odeint::unwrap_reference< Observer >::type observer_type;
0045 typedef typename odeint::unwrap_reference< StepOverflowChecker >::type checker_type;
0046 typedef typename stepper_type::stepper_category stepper_category;
0047
0048 return detail::integrate_n_steps(
0049 checked_stepper<stepper_type, checker_type>(stepper, checker),
0050 system , start_state ,
0051 start_time , dt , num_of_steps ,
0052 checked_observer<observer_type, checker_type>(observer, checker),
0053 stepper_category() );
0054 }
0055
0056
0057
0058
0059 template< class Stepper , class System , class State , class Time , class Observer , class StepOverflowChecker >
0060 Time integrate_n_steps(
0061 Stepper stepper , System system , const State &start_state ,
0062 Time start_time , Time dt , size_t num_of_steps ,
0063 Observer observer , StepOverflowChecker checker )
0064 {
0065 typedef typename odeint::unwrap_reference< Stepper >::type stepper_type;
0066 typedef typename odeint::unwrap_reference< Observer >::type observer_type;
0067 typedef typename odeint::unwrap_reference< StepOverflowChecker >::type checker_type;
0068 typedef typename stepper_type::stepper_category stepper_category;
0069
0070 return detail::integrate_n_steps(
0071 checked_stepper<stepper_type, checker_type>(stepper, checker),
0072 system , start_state ,
0073 start_time , dt , num_of_steps ,
0074 checked_observer<observer_type, checker_type>(observer, checker),
0075 stepper_category() );
0076 }
0077
0078
0079
0080
0081
0082 template< class Stepper , class System , class State , class Time , class Observer >
0083 Time integrate_n_steps(
0084 Stepper stepper , System system , State &start_state ,
0085 Time start_time , Time dt , size_t num_of_steps , Observer observer )
0086 {
0087 typedef typename odeint::unwrap_reference<Stepper>::type::stepper_category stepper_category;
0088
0089 return detail::integrate_n_steps(
0090 stepper , system , start_state ,
0091 start_time , dt , num_of_steps ,
0092 observer , stepper_category() );
0093 }
0094
0095
0096
0097
0098 template< class Stepper , class System , class State , class Time , class Observer >
0099 Time integrate_n_steps(
0100 Stepper stepper , System system , const State &start_state ,
0101 Time start_time , Time dt , size_t num_of_steps , Observer observer )
0102 {
0103 typedef typename odeint::unwrap_reference<Stepper>::type::stepper_category stepper_category;
0104
0105 return detail::integrate_n_steps(
0106 stepper , system , start_state ,
0107 start_time , dt , num_of_steps ,
0108 observer , stepper_category() );
0109 }
0110
0111
0112
0113
0114 template< class Stepper , class System , class State , class Time >
0115 Time integrate_n_steps(
0116 Stepper stepper , System system , State &start_state ,
0117 Time start_time , Time dt , size_t num_of_steps )
0118 {
0119 return integrate_n_steps(stepper, system, start_state, start_time,
0120 dt, num_of_steps, null_observer());
0121 }
0122
0123
0124
0125
0126 template< class Stepper , class System , class State , class Time >
0127 Time integrate_n_steps(
0128 Stepper stepper , System system , const State &start_state ,
0129 Time start_time , Time dt , size_t num_of_steps )
0130 {
0131 return integrate_n_steps(stepper, system, start_state, start_time,
0132 dt, num_of_steps, null_observer());
0133 }
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150
0151
0152
0153
0154
0155
0156
0157
0158
0159
0160
0161
0162
0163
0164
0165
0166
0167
0168
0169
0170
0171
0172 }
0173 }
0174 }
0175
0176
0177
0178 #endif