12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /*
- [auto_generated]
- boost/numeric/odeint/integrate/detail/integrate_times.hpp
- [begin_description]
- Default integrate times implementation.
- [end_description]
- Copyright 2009-2012 Karsten Ahnert
- Copyright 2009-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_INTEGRATE_DETAIL_INTEGRATE_TIMES_HPP_INCLUDED
- #define BOOST_NUMERIC_ODEINT_INTEGRATE_DETAIL_INTEGRATE_TIMES_HPP_INCLUDED
- #include <stdexcept>
- #include <boost/config.hpp>
- #include <boost/range/algorithm/for_each.hpp>
- #include <boost/numeric/odeint/util/unwrap_reference.hpp>
- #include <boost/numeric/odeint/stepper/controlled_step_result.hpp>
- #include <boost/numeric/odeint/util/detail/less_with_sign.hpp>
- #include <boost/numeric/odeint/iterator/times_time_iterator.hpp>
- #include <boost/numeric/odeint/iterator/integrate/detail/functors.hpp>
- namespace boost {
- namespace numeric {
- namespace odeint {
- namespace detail {
- /*
- * integrate_times for all steppers
- */
- template< class Stepper , class System , class State , class TimeIterator , class Time , class Observer , class StepperTag >
- size_t integrate_times(
- Stepper stepper , System system , State &start_state ,
- TimeIterator start_time , TimeIterator end_time , Time dt ,
- Observer observer , StepperTag
- )
- {
- size_t obs_calls = 0;
- boost::for_each( make_times_time_range( stepper , system , start_state ,
- start_time , end_time , dt ) ,
- // should we use traits<Stepper>::state_type here instead of State? NO!
- obs_caller< Observer >( obs_calls , observer ) );
- // step integration steps gives step+1 observer calls
- return obs_calls-1;
- }
- } // namespace detail
- } // namespace odeint
- } // namespace numeric
- } // namespace boost
- #endif // BOOST_NUMERIC_ODEINT_INTEGRATE_DETAIL_INTEGRATE_ADAPTIVE_HPP_INCLUDED
|