File indexing completed on 2025-12-17 09:53:59
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/iterator/integrate/null_observer.hpp>
0023 #include <boost/numeric/odeint/iterator/integrate/detail/integrate_n_steps.hpp>
0024
0025 namespace boost {
0026 namespace numeric {
0027 namespace odeint {
0028
0029
0030
0031
0032
0033
0034
0035 template< class Stepper , class System , class State , class Time , class Observer>
0036 Time integrate_n_steps(
0037 Stepper stepper , System system , State &start_state ,
0038 Time start_time , Time dt , size_t num_of_steps ,
0039 Observer observer )
0040 {
0041 typedef typename odeint::unwrap_reference< Stepper >::type::stepper_category stepper_category;
0042 return detail::integrate_n_steps(
0043 stepper , system , start_state ,
0044 start_time , dt , num_of_steps ,
0045 observer , stepper_category() );
0046 }
0047
0048
0049
0050
0051 template< class Stepper , class System , class State , class Time , class Observer >
0052 Time integrate_n_steps(
0053 Stepper stepper , System system , const State &start_state ,
0054 Time start_time , Time dt , size_t num_of_steps ,
0055 Observer observer )
0056 {
0057 typedef typename odeint::unwrap_reference< Stepper >::type::stepper_category stepper_category;
0058 return detail::integrate_n_steps(
0059 stepper , system , start_state ,
0060 start_time , dt , num_of_steps ,
0061 observer , stepper_category() );
0062 }
0063
0064
0065
0066
0067
0068 template< class Stepper , class System , class State , class Time >
0069 Time integrate_n_steps(
0070 Stepper stepper , System system , State &start_state ,
0071 Time start_time , Time dt , size_t num_of_steps )
0072 {
0073 return integrate_n_steps( stepper , system , start_state , start_time , dt , num_of_steps , null_observer() );
0074 }
0075
0076
0077
0078
0079 template< class Stepper , class System , class State , class Time >
0080 Time integrate_n_steps(
0081 Stepper stepper , System system , const State &start_state ,
0082 Time start_time , Time dt , size_t num_of_steps )
0083 {
0084 return integrate_n_steps( stepper , system , start_state , start_time , dt , num_of_steps , null_observer() );
0085 }
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117 }
0118 }
0119 }
0120
0121
0122
0123 #endif