/* [auto_generated] boost/numeric/odeint/algebra/detail/reduce.hpp [begin_description] Default reduce implementation. [end_description] Copyright 2009-2011 Karsten Ahnert Copyright 2009-2011 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_ALGEBRA_DETAIL_REDUCE_HPP_INCLUDED #define BOOST_NUMERIC_ODEINT_ALGEBRA_DETAIL_REDUCE_HPP_INCLUDED namespace boost { namespace numeric { namespace odeint { namespace detail { template< class ValueType , class Iterator1 , class Reduction > inline ValueType reduce( Iterator1 first1 , Iterator1 last1 , Reduction red, ValueType init) { for( ; first1 != last1 ; ) init = red( init , *first1++ ); return init; } template< class ValueType , class Iterator1 , class Iterator2 , class Reduction > inline ValueType reduce2( Iterator1 first1 , Iterator1 last1 , Iterator2 first2 , Reduction red, ValueType init) { for( ; first1 != last1 ; ) init = red( init , *first1++ , *first2++ ); return init; } template< class ValueType , class Iterator1 , class Iterator2 , class Iterator3 , class Reduction > inline ValueType reduce3( Iterator1 first1 , Iterator1 last1 , Iterator2 first2 , Iterator3 first3 , Reduction red, ValueType init) { for( ; first1 != last1 ; ) init = red( init , *first1++ , *first2++ , *first3++ ); return init; } template< class ValueType , class Iterator1 , class Iterator2 , class Iterator3 , class Iterator4 , class Reduction > inline ValueType reduce4( Iterator1 first1 , Iterator1 last1 , Iterator2 first2 , Iterator3 first3 , Iterator4 first4 , Reduction red, ValueType init) { for( ; first1 != last1 ; ) init = red( init , *first1++ , *first2++ , *first3++ , *first4++ ); return init; } } // detail } // odeint } // numeric } // boost #endif // BOOST_NUMERIC_ODEINT_ALGEBRA_DETAIL_REDUCE_HPP_INCLUDED