annotate DEPENDENCIES/generic/include/boost/numeric/odeint/algebra/range_algebra.hpp @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents c530137014c0
children
rev   line source
Chris@16 1 /*
Chris@16 2 [auto_generated]
Chris@16 3 boost/numeric/odeint/algebra/range_algebra.hpp
Chris@16 4
Chris@16 5 [begin_description]
Chris@16 6 Default algebra, which works with the most state types, like vector< double >, boost::array< double >, boost::range.
Chris@16 7 Internally is uses boost::range to obtain the begin and end iterator of the according sequence.
Chris@16 8 [end_description]
Chris@16 9
Chris@101 10 Copyright 2010-2013 Karsten Ahnert
Chris@101 11 Copyright 2010-2013 Mario Mulansky
Chris@16 12
Chris@16 13 Distributed under the Boost Software License, Version 1.0.
Chris@16 14 (See accompanying file LICENSE_1_0.txt or
Chris@16 15 copy at http://www.boost.org/LICENSE_1_0.txt)
Chris@16 16 */
Chris@16 17
Chris@16 18
Chris@16 19 #ifndef BOOST_NUMERIC_ODEINT_ALGEBRA_RANGE_ALGEBRA_HPP_INCLUDED
Chris@16 20 #define BOOST_NUMERIC_ODEINT_ALGEBRA_RANGE_ALGEBRA_HPP_INCLUDED
Chris@16 21
Chris@16 22 #include <boost/range.hpp>
Chris@16 23 #include <boost/mpl/size_t.hpp>
Chris@16 24
Chris@16 25 #include <boost/numeric/odeint/algebra/detail/macros.hpp>
Chris@16 26 #include <boost/numeric/odeint/algebra/detail/for_each.hpp>
Chris@101 27 #include <boost/numeric/odeint/algebra/detail/norm_inf.hpp>
Chris@101 28 #include <boost/numeric/odeint/algebra/norm_result_type.hpp>
Chris@16 29
Chris@16 30 namespace boost {
Chris@16 31 namespace numeric {
Chris@16 32 namespace odeint {
Chris@16 33
Chris@16 34 struct range_algebra
Chris@16 35 {
Chris@16 36 template< class S1 , class Op >
Chris@16 37 static void for_each1( S1 &s1 , Op op )
Chris@16 38 {
Chris@16 39 detail::for_each1( boost::begin( s1 ) , boost::end( s1 ) ,
Chris@16 40 op );
Chris@16 41 }
Chris@16 42
Chris@16 43 template< class S1 , class S2 , class Op >
Chris@16 44 static void for_each2( S1 &s1 , S2 &s2 , Op op )
Chris@16 45 {
Chris@16 46 detail::for_each2( boost::begin( s1 ) , boost::end( s1 ) ,
Chris@16 47 boost::begin( s2 ) , op );
Chris@16 48 }
Chris@16 49
Chris@16 50 template< class S1 , class S2 , class S3 , class Op >
Chris@16 51 static void for_each3( S1 &s1 , S2 &s2 , S3 &s3 , Op op )
Chris@16 52 {
Chris@16 53 detail::for_each3( boost::begin( s1 ) , boost::end( s1 ) , boost::begin( s2 ) , boost::begin( s3 ) , op );
Chris@16 54 }
Chris@16 55
Chris@16 56 template< class S1 , class S2 , class S3 , class S4 , class Op >
Chris@16 57 static void for_each4( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4 , Op op )
Chris@16 58 {
Chris@16 59 detail::for_each4( boost::begin( s1 ) , boost::end( s1 ) , boost::begin( s2 ) , boost::begin( s3 ) , boost::begin( s4 ) , op );
Chris@16 60 }
Chris@16 61
Chris@16 62 template< class S1 , class S2 , class S3 , class S4 , class S5 , class Op >
Chris@16 63 static void for_each5( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4 , S5 &s5 , Op op )
Chris@16 64 {
Chris@16 65 detail::for_each5( boost::begin( s1 ) , boost::end( s1 ) , boost::begin( s2 ) , boost::begin( s3 ) , boost::begin( s4 ) , boost::begin( s5 ) , op );
Chris@16 66 }
Chris@16 67
Chris@16 68 template< class S1 , class S2 , class S3 , class S4 , class S5 , class S6 , class Op >
Chris@16 69 static void for_each6( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4 , S5 &s5 , S6 &s6 , Op op )
Chris@16 70 {
Chris@16 71 detail::for_each6( boost::begin( s1 ) , boost::end( s1 ) , boost::begin( s2 ) , boost::begin( s3 ) , boost::begin( s4 ) , boost::begin( s5 ) , boost::begin( s6 ) , op );
Chris@16 72 }
Chris@16 73
Chris@16 74 template< class S1 , class S2 , class S3 , class S4 , class S5 , class S6 ,class S7 , class Op >
Chris@16 75 static void for_each7( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4 , S5 &s5 , S6 &s6 , S7 &s7 , Op op )
Chris@16 76 {
Chris@16 77 detail::for_each7( boost::begin( s1 ) , boost::end( s1 ) , boost::begin( s2 ) , boost::begin( s3 ) , boost::begin( s4 ) , boost::begin( s5 ) , boost::begin( s6 ) , boost::begin( s7 ) , op );
Chris@16 78 }
Chris@16 79
Chris@16 80 template< class S1 , class S2 , class S3 , class S4 , class S5 , class S6 ,class S7 , class S8 , class Op >
Chris@16 81 static void for_each8( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4 , S5 &s5 , S6 &s6 , S7 &s7 , S8 &s8 , Op op )
Chris@16 82 {
Chris@16 83 detail::for_each8( boost::begin( s1 ) , boost::end( s1 ) , boost::begin( s2 ) , boost::begin( s3 ) , boost::begin( s4 ) , boost::begin( s5 ) , boost::begin( s6 ) , boost::begin( s7 ) , boost::begin( s8 ) , op );
Chris@16 84 }
Chris@16 85
Chris@16 86 template< class S1 , class S2 , class S3 , class S4 , class S5 , class S6 ,class S7 , class S8 , class S9 , class Op >
Chris@16 87 static void for_each9( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4 , S5 &s5 , S6 &s6 , S7 &s7 , S8 &s8 , S9 &s9 , Op op )
Chris@16 88 {
Chris@16 89 detail::for_each9( boost::begin( s1 ) , boost::end( s1 ) , boost::begin( s2 ) , boost::begin( s3 ) , boost::begin( s4 ) , boost::begin( s5 ) , boost::begin( s6 ) , boost::begin( s7 ) , boost::begin( s8 ) , boost::begin( s9 ) , op );
Chris@16 90 }
Chris@16 91
Chris@16 92 template< class S1 , class S2 , class S3 , class S4 , class S5 , class S6 ,class S7 , class S8 , class S9 , class S10 , class Op >
Chris@16 93 static void for_each10( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4 , S5 &s5 , S6 &s6 , S7 &s7 , S8 &s8 , S9 &s9 , S10 &s10 , Op op )
Chris@16 94 {
Chris@16 95 detail::for_each10( boost::begin( s1 ) , boost::end( s1 ) , boost::begin( s2 ) , boost::begin( s3 ) , boost::begin( s4 ) , boost::begin( s5 ) , boost::begin( s6 ) , boost::begin( s7 ) , boost::begin( s8 ) , boost::begin( s9 ) , boost::begin( s10 ) , op );
Chris@16 96 }
Chris@16 97
Chris@16 98 template< class S1 , class S2 , class S3 , class S4 , class S5 , class S6 ,class S7 , class S8 , class S9 , class S10 , class S11 , class Op >
Chris@16 99 static void for_each11( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4 , S5 &s5 , S6 &s6 , S7 &s7 , S8 &s8 , S9 &s9 , S10 &s10 , S11 &s11 , Op op )
Chris@16 100 {
Chris@16 101 detail::for_each11( boost::begin( s1 ) , boost::end( s1 ) , boost::begin( s2 ) , boost::begin( s3 ) , boost::begin( s4 ) , boost::begin( s5 ) , boost::begin( s6 ) , boost::begin( s7 ) , boost::begin( s8 ) , boost::begin( s9 ) , boost::begin( s10 ) , boost::begin( s11 ) , op );
Chris@16 102 }
Chris@16 103
Chris@16 104 template< class S1 , class S2 , class S3 , class S4 , class S5 , class S6 ,class S7 , class S8 , class S9 , class S10 , class S11 , class S12 , class Op >
Chris@16 105 static void for_each12( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4 , S5 &s5 , S6 &s6 , S7 &s7 , S8 &s8 , S9 &s9 , S10 &s10 , S11 &s11 , S12 &s12 , Op op )
Chris@16 106 {
Chris@16 107 detail::for_each12( boost::begin( s1 ) , boost::end( s1 ) , boost::begin( s2 ) , boost::begin( s3 ) , boost::begin( s4 ) , boost::begin( s5 ) , boost::begin( s6 ) , boost::begin( s7 ) , boost::begin( s8 ) , boost::begin( s9 ) , boost::begin( s10 ) , boost::begin( s11 ) , boost::begin( s12 ) , op );
Chris@16 108 }
Chris@16 109
Chris@16 110 template< class S1 , class S2 , class S3 , class S4 , class S5 , class S6 ,class S7 , class S8 , class S9 , class S10 , class S11 , class S12 , class S13 , class Op >
Chris@16 111 static void for_each13( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4 , S5 &s5 , S6 &s6 , S7 &s7 , S8 &s8 , S9 &s9 , S10 &s10 , S11 &s11 , S12 &s12 , S13 &s13 , Op op )
Chris@16 112 {
Chris@16 113 detail::for_each13( boost::begin( s1 ) , boost::end( s1 ) , boost::begin( s2 ) , boost::begin( s3 ) , boost::begin( s4 ) , boost::begin( s5 ) , boost::begin( s6 ) , boost::begin( s7 ) , boost::begin( s8 ) , boost::begin( s9 ) , boost::begin( s10 ) , boost::begin( s11 ) , boost::begin( s12 ) , boost::begin( s13 ) , op );
Chris@16 114 }
Chris@16 115
Chris@16 116 template< class S1 , class S2 , class S3 , class S4 , class S5 , class S6 ,class S7 , class S8 , class S9 , class S10 , class S11 , class S12 , class S13 , class S14 , class Op >
Chris@16 117 static void for_each14( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4 , S5 &s5 , S6 &s6 , S7 &s7 , S8 &s8 , S9 &s9 , S10 &s10 , S11 &s11 , S12 &s12 , S13 &s13 , S14 &s14 , Op op )
Chris@16 118 {
Chris@16 119 detail::for_each14( boost::begin( s1 ) , boost::end( s1 ) , boost::begin( s2 ) , boost::begin( s3 ) , boost::begin( s4 ) , boost::begin( s5 ) , boost::begin( s6 ) , boost::begin( s7 ) , boost::begin( s8 ) , boost::begin( s9 ) , boost::begin( s10 ) , boost::begin( s11 ) , boost::begin( s12 ) , boost::begin( s13 ) , boost::begin( s14 ) , op );
Chris@16 120 }
Chris@16 121
Chris@16 122 template< class S1 , class S2 , class S3 , class S4 , class S5 , class S6 ,class S7 , class S8 , class S9 , class S10 , class S11 , class S12 , class S13 , class S14 , class S15 , class Op >
Chris@16 123 static void for_each15( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4 , S5 &s5 , S6 &s6 , S7 &s7 , S8 &s8 , S9 &s9 , S10 &s10 , S11 &s11 , S12 &s12 , S13 &s13 , S14 &s14 , S15 &s15 , Op op )
Chris@16 124 {
Chris@16 125 detail::for_each15( boost::begin( s1 ) , boost::end( s1 ) , boost::begin( s2 ) , boost::begin( s3 ) , boost::begin( s4 ) , boost::begin( s5 ) , boost::begin( s6 ) , boost::begin( s7 ) , boost::begin( s8 ) , boost::begin( s9 ) , boost::begin( s10 ) , boost::begin( s11 ) , boost::begin( s12 ) , boost::begin( s13 ) , boost::begin( s14 ) , boost::begin( s15 ) , op );
Chris@16 126 }
Chris@16 127
Chris@101 128 template< typename S >
Chris@101 129 static typename norm_result_type<S>::type norm_inf( const S &s )
Chris@16 130 {
Chris@101 131 return detail::norm_inf( boost::begin( s ) , boost::end( s ) ,
Chris@101 132 static_cast< typename norm_result_type<S>::type >( 0 ) );
Chris@16 133 }
Chris@16 134
Chris@16 135 };
Chris@16 136
Chris@16 137 } // odeint
Chris@16 138 } // numeric
Chris@16 139 } // boost
Chris@16 140
Chris@16 141
Chris@16 142 #endif // BOOST_NUMERIC_ODEINT_ALGEBRA_RANGE_ALGEBRA_HPP_INCLUDED