diff options
| author | Tobias Markmann <tm@ayena.de> | 2014-10-19 20:22:58 (GMT) | 
|---|---|---|
| committer | Tobias Markmann <tm@ayena.de> | 2014-10-20 13:49:33 (GMT) | 
| commit | 6b22dfcf59474dd016a0355a3102a1dd3692d92c (patch) | |
| tree | 2b1fd33be433a91e81fee84fdc2bf1b52575d934 /3rdParty/Boost/src/boost/ratio/ratio.hpp | |
| parent | 38b0cb785fea8eae5e48fae56440695fdfd10ee1 (diff) | |
| download | swift-contrib-6b22dfcf59474dd016a0355a3102a1dd3692d92c.zip swift-contrib-6b22dfcf59474dd016a0355a3102a1dd3692d92c.tar.bz2 | |
Update Boost in 3rdParty to version 1.56.0.
This updates Boost in our 3rdParty directory to version 1.56.0.
Updated our update.sh script to stop on error.
Changed error reporting in SwiftTools/CrashReporter.cpp to SWIFT_LOG due to
missing include of <iostream> with newer Boost.
Change-Id: I4b35c77de951333979a524097f35f5f83d325edc
Diffstat (limited to '3rdParty/Boost/src/boost/ratio/ratio.hpp')
| -rw-r--r-- | 3rdParty/Boost/src/boost/ratio/ratio.hpp | 66 | 
1 files changed, 63 insertions, 3 deletions
| diff --git a/3rdParty/Boost/src/boost/ratio/ratio.hpp b/3rdParty/Boost/src/boost/ratio/ratio.hpp index 546e8f0..824cbf0 100644 --- a/3rdParty/Boost/src/boost/ratio/ratio.hpp +++ b/3rdParty/Boost/src/boost/ratio/ratio.hpp @@ -43,5 +43,5 @@ time2_demo contained this comment:  #include <boost/cstdint.hpp>  #include <boost/type_traits/integral_constant.hpp> -#include <boost/utility/enable_if.hpp> +#include <boost/core/enable_if.hpp>  #include <boost/integer_traits.hpp>  #include <boost/ratio/ratio_fwd.hpp> @@ -129,5 +129,5 @@ const    boost::intmax_t ratio<N, D>::den;  //----------------------------------------------------------------------------//  //                                                                            // -//                20.6.2 Arithmetic on ratio types [ratio.arithmetic]                   // +//                20.6.2 Arithmetic on ratio types [ratio.arithmetic]         //  //                                                                            //  //----------------------------------------------------------------------------// @@ -159,5 +159,5 @@ struct ratio_divide  //----------------------------------------------------------------------------//  //                                                                            // -//                20.6.3 Comparasion of ratio types [ratio.comparison]                   // +//                20.6.3 Comparision of ratio types [ratio.comparison]        //  //                                                                            //  //----------------------------------------------------------------------------// @@ -205,4 +205,10 @@ struct ratio_gcd :  }; +    //----------------------------------------------------------------------------// +    //                                                                            // +    //                More arithmetic on ratio types [ratio.arithmetic]           // +    //                                                                            // +    //----------------------------------------------------------------------------// +  #ifdef BOOST_RATIO_EXTENSIONS  template <class R> @@ -221,4 +227,12 @@ struct ratio_sign  {  }; + +template <class R> +struct ratio_inverse +    : ratio<R::den, R::num>::type +{ +}; + +  template <class R1, class R2>  struct ratio_lcm : @@ -227,4 +241,50 @@ struct ratio_lcm :  {  }; + +template <class R1, class R2> +struct ratio_modulo : +    ratio<(R1::num * R2::den) % (R2::num * R1::den), R1::den * R2::den>::type +{ +}; + +namespace detail { +  template <class R1, class R2, bool r1ltr2> +  struct ratio_min : R1 {}; +  template <class R1, class R2> +  struct ratio_min<R1,R2,false> : R2 {}; + +  template <class R1, class R2, bool r1ltr2> +  struct ratio_max : R2 {}; +  template <class R1, class R2> +  struct ratio_max<R1,R2,false> : R1 {}; +} + +template <class R1, class R2> +struct ratio_min : detail::ratio_min<R1, R2, ratio_less<R1,R2>::value>::type +{ +}; + +template <class R1, class R2> +struct ratio_max : detail::ratio_max<R1, R2, ratio_less<R1,R2>::value>::type +{ +}; + +template<typename R, int p> +struct ratio_power : +  ratio_multiply< +    typename ratio_power<R, p%2>::type, +    typename ratio_power<typename ratio_multiply<R, R>::type, p/2>::type +  >::type +{}; + +template<typename R> +struct ratio_power<R, 0> : ratio<1>::type {}; + +template<typename R> +struct ratio_power<R, 1> : R {}; + +template<typename R> +struct ratio_power<R, -1> : ratio_divide<ratio<1>, R>::type {}; +  #endif  }  // namespace boost | 
 Swift
 Swift