Chris@16: /* Chris@16: [auto_generated] Chris@16: boost/numeric/odeint/integrate/detail/integrate_const.hpp Chris@16: Chris@16: [begin_description] Chris@16: integrate const implementation Chris@16: [end_description] Chris@16: Chris@101: Copyright 2012 Mario Mulansky Chris@101: Copyright 2012 Christoph Koke Chris@101: Copyright 2012 Karsten Ahnert Chris@16: Chris@16: Distributed under the Boost Software License, Version 1.0. Chris@16: (See accompanying file LICENSE_1_0.txt or Chris@16: copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: */ Chris@16: Chris@16: #ifndef BOOST_NUMERIC_ODEINT_INTEGRATE_DETAIL_INTEGRATE_CONST_HPP_INCLUDED Chris@16: #define BOOST_NUMERIC_ODEINT_INTEGRATE_DETAIL_INTEGRATE_CONST_HPP_INCLUDED Chris@16: Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: Chris@16: #include Chris@16: Chris@16: namespace boost { Chris@16: namespace numeric { Chris@16: namespace odeint { Chris@16: namespace detail { Chris@16: Chris@16: // forward declaration Chris@16: template< class Stepper , class System , class State , class Time , class Observer > Chris@16: size_t integrate_adaptive( Chris@16: Stepper stepper , System system , State &start_state , Chris@16: Time &start_time , Time end_time , Time &dt , Chris@16: Observer observer , controlled_stepper_tag Chris@16: ); Chris@16: Chris@16: Chris@16: template< class Stepper , class System , class State , class Time , class Observer > Chris@16: size_t integrate_const( Chris@16: Stepper stepper , System system , State &start_state , Chris@16: Time start_time , Time end_time , Time dt , Chris@16: Observer observer , stepper_tag Chris@16: ) Chris@16: { Chris@16: typename odeint::unwrap_reference< Observer >::type &obs = observer; Chris@101: typename odeint::unwrap_reference< Stepper >::type &st = stepper; Chris@16: Chris@16: Time time = start_time; Chris@16: int step = 0; Chris@101: // cast time+dt explicitely in case of expression templates (e.g. multiprecision) Chris@101: while( less_eq_with_sign( static_cast