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 | |
parent | 38b0cb785fea8eae5e48fae56440695fdfd10ee1 (diff) | |
download | swift-6b22dfcf59474dd016a0355a3102a1dd3692d92c.zip swift-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')
-rw-r--r-- | 3rdParty/Boost/src/boost/ratio/config.hpp | 6 | ||||
-rw-r--r-- | 3rdParty/Boost/src/boost/ratio/detail/mpl/abs.hpp | 8 | ||||
-rw-r--r-- | 3rdParty/Boost/src/boost/ratio/detail/mpl/gcd.hpp | 2 | ||||
-rw-r--r-- | 3rdParty/Boost/src/boost/ratio/detail/mpl/lcm.hpp | 2 | ||||
-rw-r--r-- | 3rdParty/Boost/src/boost/ratio/detail/mpl/sign.hpp | 8 | ||||
-rw-r--r-- | 3rdParty/Boost/src/boost/ratio/detail/overflow_helpers.hpp | 6 | ||||
-rw-r--r-- | 3rdParty/Boost/src/boost/ratio/ratio.hpp | 66 | ||||
-rw-r--r-- | 3rdParty/Boost/src/boost/ratio/ratio_fwd.hpp | 21 |
8 files changed, 103 insertions, 16 deletions
diff --git a/3rdParty/Boost/src/boost/ratio/config.hpp b/3rdParty/Boost/src/boost/ratio/config.hpp index 67a60fc..992a256 100644 --- a/3rdParty/Boost/src/boost/ratio/config.hpp +++ b/3rdParty/Boost/src/boost/ratio/config.hpp @@ -46,12 +46,18 @@ #ifdef INTMAX_C #define BOOST_RATIO_INTMAX_C(a) INTMAX_C(a) #else #define BOOST_RATIO_INTMAX_C(a) a##LL #endif +#ifdef UINTMAX_C +#define BOOST_RATIO_UINTMAX_C(a) UINTMAX_C(a) +#else +#define BOOST_RATIO_UINTMAX_C(a) a##ULL +#endif + #define BOOST_RATIO_INTMAX_T_MAX (0x7FFFFFFFFFFFFFFELL) #ifndef BOOST_NO_CXX11_STATIC_ASSERT #define BOOST_RATIO_STATIC_ASSERT(CND, MSG, TYPES) static_assert(CND,MSG) #elif defined(BOOST_RATIO_USES_STATIC_ASSERT) diff --git a/3rdParty/Boost/src/boost/ratio/detail/mpl/abs.hpp b/3rdParty/Boost/src/boost/ratio/detail/mpl/abs.hpp index 4be1274..9154588 100644 --- a/3rdParty/Boost/src/boost/ratio/detail/mpl/abs.hpp +++ b/3rdParty/Boost/src/boost/ratio/detail/mpl/abs.hpp @@ -1,29 +1,29 @@ //////////////////////////////////////////////////////////////////// // // Copyright Vicente J. Botet Escriba 2010 // -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at +// 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) // // See http://www.boost.org/libs/mpl for documentation. // //////////////////////////////////////////////////////////////////// #ifndef BOOST_MPL_ABS_HPP_INCLUDED #define BOOST_MPL_ABS_HPP_INCLUDED #include <boost/mpl/integral_c.hpp> #include <boost/mpl/aux_/na_spec.hpp> #include <boost/mpl/aux_/lambda_support.hpp> -#include <boost/mpl/aux_/config/eti.hpp> #include <boost/mpl/aux_/config/integral.hpp> #include <boost/mpl/aux_/config/static_constant.hpp> #if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC_2) \ && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && !defined(__CUDACC__) \ && ( defined(BOOST_MSVC) \ || BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \ ) # define BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC_2 @@ -76,13 +76,13 @@ struct abs_impl<integral_c_tag> #if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC_2) template< typename N > struct apply : aux::abs_wknd< typename N::value_type, N::value > #else template< typename N > struct apply : integral_c< typename N::value_type, ((N::value < 0) ? (-N::value) : N::value ) > -#endif +#endif { }; }; }} diff --git a/3rdParty/Boost/src/boost/ratio/detail/mpl/gcd.hpp b/3rdParty/Boost/src/boost/ratio/detail/mpl/gcd.hpp index c8258cf..30ba1db 100644 --- a/3rdParty/Boost/src/boost/ratio/detail/mpl/gcd.hpp +++ b/3rdParty/Boost/src/boost/ratio/detail/mpl/gcd.hpp @@ -14,20 +14,20 @@ #include <boost/mpl/integral_c.hpp> #include <boost/ratio/detail/mpl/abs.hpp> #include <boost/mpl/aux_/largest_int.hpp> #include <boost/mpl/aux_/na_spec.hpp> #include <boost/mpl/aux_/lambda_support.hpp> -#include <boost/mpl/aux_/config/eti.hpp> #include <boost/mpl/aux_/config/integral.hpp> #include <boost/mpl/aux_/config/static_constant.hpp> #include <boost/mpl/aux_/config/dependent_nttp.hpp> #include <boost/cstdint.hpp> #if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC_2) \ && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && !defined(__CUDACC__) \ && ( defined(BOOST_MSVC) \ || BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \ ) # define BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC_2 diff --git a/3rdParty/Boost/src/boost/ratio/detail/mpl/lcm.hpp b/3rdParty/Boost/src/boost/ratio/detail/mpl/lcm.hpp index 546d0e1..1792660 100644 --- a/3rdParty/Boost/src/boost/ratio/detail/mpl/lcm.hpp +++ b/3rdParty/Boost/src/boost/ratio/detail/mpl/lcm.hpp @@ -14,20 +14,20 @@ #include <boost/mpl/integral_c.hpp> #include <boost/ratio/detail/mpl/abs.hpp> #include <boost/mpl/aux_/largest_int.hpp> #include <boost/mpl/aux_/na_spec.hpp> #include <boost/mpl/aux_/lambda_support.hpp> -#include <boost/mpl/aux_/config/eti.hpp> #include <boost/mpl/aux_/config/integral.hpp> #include <boost/mpl/aux_/config/static_constant.hpp> #include <boost/mpl/aux_/config/dependent_nttp.hpp> #include <boost/cstdint.hpp> #if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC_2) \ && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && !defined(__CUDACC__) \ && ( defined(BOOST_MSVC) \ || BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \ ) # define BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC_2 diff --git a/3rdParty/Boost/src/boost/ratio/detail/mpl/sign.hpp b/3rdParty/Boost/src/boost/ratio/detail/mpl/sign.hpp index af201eb..fa1c555 100644 --- a/3rdParty/Boost/src/boost/ratio/detail/mpl/sign.hpp +++ b/3rdParty/Boost/src/boost/ratio/detail/mpl/sign.hpp @@ -1,29 +1,29 @@ //////////////////////////////////////////////////////////////////// // // Copyright Vicente J. Botet Escriba 2010 // -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at +// 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) // // See http://www.boost.org/libs/mpl for documentation. // //////////////////////////////////////////////////////////////////// #ifndef BOOST_MPL_SIGN_HPP_INCLUDED #define BOOST_MPL_SIGN_HPP_INCLUDED #include <boost/mpl/integral_c.hpp> #include <boost/mpl/aux_/na_spec.hpp> #include <boost/mpl/aux_/lambda_support.hpp> -#include <boost/mpl/aux_/config/eti.hpp> #include <boost/mpl/aux_/config/integral.hpp> #include <boost/mpl/aux_/config/static_constant.hpp> #if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC_2) \ && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && !defined(__CUDACC__) \ && ( defined(BOOST_MSVC) \ || BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \ ) # define BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC_2 @@ -76,13 +76,13 @@ struct sign_impl<integral_c_tag> #if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC_2) template< typename N > struct apply : aux::sign_wknd< typename N::value_type, N::value > #else template< typename N > struct apply : integral_c< typename N::value_type, (N::value == 0 ? 0 : (N::value < 0 ? -1 : 1)) > -#endif +#endif { }; }; }} diff --git a/3rdParty/Boost/src/boost/ratio/detail/overflow_helpers.hpp b/3rdParty/Boost/src/boost/ratio/detail/overflow_helpers.hpp index 0e292fa..ffaa603 100644 --- a/3rdParty/Boost/src/boost/ratio/detail/overflow_helpers.hpp +++ b/3rdParty/Boost/src/boost/ratio/detail/overflow_helpers.hpp @@ -37,13 +37,13 @@ time2_demo contained this comment: #include <boost/ratio/detail/mpl/sign.hpp> #include <cstdlib> #include <climits> #include <limits> #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> // // We simply cannot include this header on gcc without getting copious warnings of the kind: // // boost/integer.hpp:77:30: warning: use of C99 long long integer constant @@ -130,13 +130,13 @@ namespace ratio_detail }; template <boost::intmax_t X, boost::intmax_t Y> class br_mul { static const boost::intmax_t nan = - (BOOST_RATIO_INTMAX_C(1) << (sizeof(boost::intmax_t) * CHAR_BIT - 1)); + boost::intmax_t(BOOST_RATIO_UINTMAX_C(1) << (sizeof(boost::intmax_t) * CHAR_BIT - 1)); static const boost::intmax_t min = boost::integer_traits<boost::intmax_t>::const_min; static const boost::intmax_t max = boost::integer_traits<boost::intmax_t>::const_max; static const boost::intmax_t a_x = mpl::abs_c<boost::intmax_t, X>::value; static const boost::intmax_t a_y = mpl::abs_c<boost::intmax_t, Y>::value; @@ -169,13 +169,13 @@ namespace ratio_detail }; // Not actually used but left here in case needed in future maintenance template <boost::intmax_t X, boost::intmax_t Y> class br_div { - static const boost::intmax_t nan = (1LL << (sizeof(boost::intmax_t) * CHAR_BIT - 1)); + static const boost::intmax_t nan = boost::intmax_t(BOOST_RATIO_UINTMAX_C(1) << (sizeof(boost::intmax_t) * CHAR_BIT - 1)); static const boost::intmax_t min = boost::integer_traits<boost::intmax_t>::const_min; static const boost::intmax_t max = boost::integer_traits<boost::intmax_t>::const_max; BOOST_RATIO_STATIC_ASSERT(X != nan, BOOST_RATIO_OVERFLOW_IN_DIV, ()); BOOST_RATIO_STATIC_ASSERT(Y != nan, BOOST_RATIO_OVERFLOW_IN_DIV, ()); BOOST_RATIO_STATIC_ASSERT(Y != 0, BOOST_RATIO_DIVIDE_BY_0, ()); 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 @@ -39,13 +39,13 @@ time2_demo contained this comment: #include <boost/ratio/detail/mpl/lcm.hpp> #include <cstdlib> #include <climits> #include <limits> #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> #include <boost/ratio/detail/overflow_helpers.hpp> #ifdef BOOST_RATIO_EXTENSIONS #include <boost/rational.hpp> #include <boost/ratio/mpl/rational_c_tag.hpp> @@ -125,13 +125,13 @@ const boost::intmax_t ratio<N, D>::num; template <boost::intmax_t N, boost::intmax_t D> const boost::intmax_t ratio<N, D>::den; #endif //----------------------------------------------------------------------------// // // -// 20.6.2 Arithmetic on ratio types [ratio.arithmetic] // +// 20.6.2 Arithmetic on ratio types [ratio.arithmetic] // // // //----------------------------------------------------------------------------// template <class R1, class R2> struct ratio_add : boost::ratio_detail::ratio_add<R1, R2>::type @@ -155,13 +155,13 @@ struct ratio_divide : boost::ratio_detail::ratio_divide<R1, R2>::type { }; //----------------------------------------------------------------------------// // // -// 20.6.3 Comparasion of ratio types [ratio.comparison] // +// 20.6.3 Comparision of ratio types [ratio.comparison] // // // //----------------------------------------------------------------------------// // ratio_equal template <class R1, class R2> @@ -201,12 +201,18 @@ template <class R1, class R2> struct ratio_gcd : ratio<mpl::gcd_c<boost::intmax_t, R1::num, R2::num>::value, mpl::lcm_c<boost::intmax_t, R1::den, R2::den>::value>::type { }; + //----------------------------------------------------------------------------// + // // + // More arithmetic on ratio types [ratio.arithmetic] // + // // + //----------------------------------------------------------------------------// + #ifdef BOOST_RATIO_EXTENSIONS template <class R> struct ratio_negate : ratio<-R::num, R::den>::type { }; @@ -217,17 +223,71 @@ struct ratio_abs }; template <class R> struct ratio_sign : mpl::sign_c<boost::intmax_t, R::num> { }; + +template <class R> +struct ratio_inverse + : ratio<R::den, R::num>::type +{ +}; + + template <class R1, class R2> struct ratio_lcm : ratio<mpl::lcm_c<boost::intmax_t, R1::num, R2::num>::value, mpl::gcd_c<boost::intmax_t, R1::den, R2::den>::value>::type { }; + +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 #endif // BOOST_RATIO_RATIO_HPP diff --git a/3rdParty/Boost/src/boost/ratio/ratio_fwd.hpp b/3rdParty/Boost/src/boost/ratio/ratio_fwd.hpp index 0882e0b..0836d55 100644 --- a/3rdParty/Boost/src/boost/ratio/ratio_fwd.hpp +++ b/3rdParty/Boost/src/boost/ratio/ratio_fwd.hpp @@ -48,12 +48,20 @@ template <boost::intmax_t N, boost::intmax_t D = 1> class ratio; // ratio arithmetic template <class R1, class R2> struct ratio_add; template <class R1, class R2> struct ratio_subtract; template <class R1, class R2> struct ratio_multiply; template <class R1, class R2> struct ratio_divide; +#ifdef BOOST_RATIO_EXTENSIONS +template <class R1, class R2> struct ratio_gcd; +template <class R1, class R2> struct ratio_lcm; +template <class R> struct ratio_negate; +template <class R> struct ratio_abs; +template <class R> struct ratio_sign; +template <class R, int P> struct ratio_power; +#endif // ratio comparison template <class R1, class R2> struct ratio_equal; template <class R1, class R2> struct ratio_not_equal; template <class R1, class R2> struct ratio_less; template <class R1, class R2> struct ratio_less_equal; @@ -75,10 +83,23 @@ typedef ratio< BOOST_RATIO_INTMAX_C(1000), BOOST_RATIO_INTMAX_C(1) typedef ratio< BOOST_RATIO_INTMAX_C(1000000), BOOST_RATIO_INTMAX_C(1)> mega; typedef ratio< BOOST_RATIO_INTMAX_C(1000000000), BOOST_RATIO_INTMAX_C(1)> giga; typedef ratio< BOOST_RATIO_INTMAX_C(1000000000000), BOOST_RATIO_INTMAX_C(1)> tera; typedef ratio< BOOST_RATIO_INTMAX_C(1000000000000000), BOOST_RATIO_INTMAX_C(1)> peta; typedef ratio<BOOST_RATIO_INTMAX_C(1000000000000000000), BOOST_RATIO_INTMAX_C(1)> exa; +#ifdef BOOST_RATIO_EXTENSIONS + +#define BOOST_RATIO_1024 BOOST_RATIO_INTMAX_C(1024) + +// convenience IEC typedefs +typedef ratio< BOOST_RATIO_1024> kibi; +typedef ratio< BOOST_RATIO_1024*BOOST_RATIO_1024> mebi; +typedef ratio< BOOST_RATIO_1024*BOOST_RATIO_1024*BOOST_RATIO_1024> gibi; +typedef ratio< BOOST_RATIO_1024*BOOST_RATIO_1024*BOOST_RATIO_1024*BOOST_RATIO_1024> tebi; +typedef ratio< BOOST_RATIO_1024*BOOST_RATIO_1024*BOOST_RATIO_1024*BOOST_RATIO_1024*BOOST_RATIO_1024> pebi; +typedef ratio<BOOST_RATIO_1024*BOOST_RATIO_1024*BOOST_RATIO_1024*BOOST_RATIO_1024*BOOST_RATIO_1024*BOOST_RATIO_1024> exbi; + +#endif } // namespace boost #endif // BOOST_RATIO_HPP |