aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorthegeorg <thegeorg@yandex-team.com>2022-12-31 10:35:47 +0300
committerthegeorg <thegeorg@yandex-team.com>2022-12-31 10:35:47 +0300
commit8fd51d45ec75d85ab82699a4ecf4f2fa94c773b4 (patch)
tree45a0fb7a556066df1032ded43db13ac742e03dfe
parent0ec27b614f46afcfa62cd3dc7e86bdd44b60f096 (diff)
downloadydb-8fd51d45ec75d85ab82699a4ecf4f2fa94c773b4.tar.gz
Update contrib/restricted/boost/math to 1.81.0
-rw-r--r--contrib/libs/apache/avro/CMakeLists.darwin.txt1
-rw-r--r--contrib/libs/apache/avro/CMakeLists.linux-aarch64.txt1
-rw-r--r--contrib/libs/apache/avro/CMakeLists.linux.txt1
-rw-r--r--contrib/restricted/boost/CMakeLists.linux-aarch64.txt2
-rw-r--r--contrib/restricted/boost/dynamic_bitset/CMakeLists.linux-aarch64.txt (renamed from contrib/restricted/boost/lambda/CMakeLists.linux-aarch64.txt)22
-rw-r--r--contrib/restricted/boost/dynamic_bitset/CMakeLists.txt4
-rw-r--r--contrib/restricted/boost/lambda/CMakeLists.txt4
-rw-r--r--contrib/restricted/boost/math/CMakeLists.darwin.txt12
-rw-r--r--contrib/restricted/boost/math/CMakeLists.linux-aarch64.txt12
-rw-r--r--contrib/restricted/boost/math/CMakeLists.linux.txt12
-rw-r--r--contrib/restricted/boost/math/README.md6
-rw-r--r--contrib/restricted/boost/math/include/boost/math/policies/policy.hpp92
-rw-r--r--contrib/restricted/boost/math/include/boost/math/special_functions/fpclassify.hpp6
-rw-r--r--contrib/restricted/boost/math/include/boost/math/tools/config.hpp48
-rw-r--r--contrib/restricted/boost/math/include/boost/math/tools/promotion.hpp12
-rw-r--r--contrib/restricted/boost/random/CMakeLists.darwin.txt8
-rw-r--r--contrib/restricted/boost/random/CMakeLists.linux-aarch64.txt8
-rw-r--r--contrib/restricted/boost/random/CMakeLists.linux.txt8
18 files changed, 148 insertions, 111 deletions
diff --git a/contrib/libs/apache/avro/CMakeLists.darwin.txt b/contrib/libs/apache/avro/CMakeLists.darwin.txt
index 25f777b612..1a3c44dd73 100644
--- a/contrib/libs/apache/avro/CMakeLists.darwin.txt
+++ b/contrib/libs/apache/avro/CMakeLists.darwin.txt
@@ -32,6 +32,7 @@ target_link_libraries(libs-apache-avro PUBLIC
restricted-boost-crc
restricted-boost-format
restricted-boost-iostreams
+ restricted-boost-math
)
target_sources(libs-apache-avro PRIVATE
${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/BinaryDecoder.cc
diff --git a/contrib/libs/apache/avro/CMakeLists.linux-aarch64.txt b/contrib/libs/apache/avro/CMakeLists.linux-aarch64.txt
index c26b9836bc..7d6a284e05 100644
--- a/contrib/libs/apache/avro/CMakeLists.linux-aarch64.txt
+++ b/contrib/libs/apache/avro/CMakeLists.linux-aarch64.txt
@@ -33,6 +33,7 @@ target_link_libraries(libs-apache-avro PUBLIC
restricted-boost-crc
restricted-boost-format
restricted-boost-iostreams
+ restricted-boost-math
)
target_sources(libs-apache-avro PRIVATE
${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/BinaryDecoder.cc
diff --git a/contrib/libs/apache/avro/CMakeLists.linux.txt b/contrib/libs/apache/avro/CMakeLists.linux.txt
index c26b9836bc..7d6a284e05 100644
--- a/contrib/libs/apache/avro/CMakeLists.linux.txt
+++ b/contrib/libs/apache/avro/CMakeLists.linux.txt
@@ -33,6 +33,7 @@ target_link_libraries(libs-apache-avro PUBLIC
restricted-boost-crc
restricted-boost-format
restricted-boost-iostreams
+ restricted-boost-math
)
target_sources(libs-apache-avro PRIVATE
${CMAKE_SOURCE_DIR}/contrib/libs/apache/avro/impl/BinaryDecoder.cc
diff --git a/contrib/restricted/boost/CMakeLists.linux-aarch64.txt b/contrib/restricted/boost/CMakeLists.linux-aarch64.txt
index 00fe96ac40..dce4fe4558 100644
--- a/contrib/restricted/boost/CMakeLists.linux-aarch64.txt
+++ b/contrib/restricted/boost/CMakeLists.linux-aarch64.txt
@@ -26,6 +26,7 @@ add_subdirectory(coroutine)
add_subdirectory(crc)
add_subdirectory(date_time)
add_subdirectory(detail)
+add_subdirectory(dynamic_bitset)
add_subdirectory(endian)
add_subdirectory(exception)
add_subdirectory(filesystem)
@@ -41,7 +42,6 @@ add_subdirectory(intrusive)
add_subdirectory(io)
add_subdirectory(iostreams)
add_subdirectory(iterator)
-add_subdirectory(lambda)
add_subdirectory(lexical_cast)
add_subdirectory(locale)
add_subdirectory(math)
diff --git a/contrib/restricted/boost/lambda/CMakeLists.linux-aarch64.txt b/contrib/restricted/boost/dynamic_bitset/CMakeLists.linux-aarch64.txt
index a453ce37ba..ce12d42247 100644
--- a/contrib/restricted/boost/lambda/CMakeLists.linux-aarch64.txt
+++ b/contrib/restricted/boost/dynamic_bitset/CMakeLists.linux-aarch64.txt
@@ -7,21 +7,19 @@
-add_library(restricted-boost-lambda INTERFACE)
-target_include_directories(restricted-boost-lambda INTERFACE
- ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/lambda/include
+add_library(restricted-boost-dynamic_bitset INTERFACE)
+target_include_directories(restricted-boost-dynamic_bitset INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/dynamic_bitset/include
)
-target_link_libraries(restricted-boost-lambda INTERFACE
+target_link_libraries(restricted-boost-dynamic_bitset INTERFACE
contrib-libs-linux-headers
contrib-libs-cxxsupp
- restricted-boost-bind
+ restricted-boost-assert
restricted-boost-config
+ restricted-boost-container_hash
restricted-boost-core
- restricted-boost-detail
- restricted-boost-iterator
- restricted-boost-mpl
- restricted-boost-preprocessor
- restricted-boost-tuple
- restricted-boost-type_traits
- restricted-boost-utility
+ restricted-boost-integer
+ restricted-boost-move
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
)
diff --git a/contrib/restricted/boost/dynamic_bitset/CMakeLists.txt b/contrib/restricted/boost/dynamic_bitset/CMakeLists.txt
index 79468a5d8d..3e0811fb22 100644
--- a/contrib/restricted/boost/dynamic_bitset/CMakeLists.txt
+++ b/contrib/restricted/boost/dynamic_bitset/CMakeLists.txt
@@ -6,7 +6,9 @@
# original buildsystem will not be accepted.
-if (APPLE)
+if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND UNIX AND NOT APPLE AND NOT ANDROID)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (APPLE)
include(CMakeLists.darwin.txt)
elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND UNIX AND NOT APPLE AND NOT ANDROID)
include(CMakeLists.linux.txt)
diff --git a/contrib/restricted/boost/lambda/CMakeLists.txt b/contrib/restricted/boost/lambda/CMakeLists.txt
index 3e0811fb22..79468a5d8d 100644
--- a/contrib/restricted/boost/lambda/CMakeLists.txt
+++ b/contrib/restricted/boost/lambda/CMakeLists.txt
@@ -6,9 +6,7 @@
# original buildsystem will not be accepted.
-if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND UNIX AND NOT APPLE AND NOT ANDROID)
- include(CMakeLists.linux-aarch64.txt)
-elseif (APPLE)
+if (APPLE)
include(CMakeLists.darwin.txt)
elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND UNIX AND NOT APPLE AND NOT ANDROID)
include(CMakeLists.linux.txt)
diff --git a/contrib/restricted/boost/math/CMakeLists.darwin.txt b/contrib/restricted/boost/math/CMakeLists.darwin.txt
index 29a3448392..a8bd59a90a 100644
--- a/contrib/restricted/boost/math/CMakeLists.darwin.txt
+++ b/contrib/restricted/boost/math/CMakeLists.darwin.txt
@@ -13,24 +13,14 @@ target_include_directories(restricted-boost-math INTERFACE
)
target_link_libraries(restricted-boost-math INTERFACE
contrib-libs-cxxsupp
- yutil
- restricted-boost-array
restricted-boost-assert
- restricted-boost-atomic
restricted-boost-concept_check
restricted-boost-config
restricted-boost-core
- restricted-boost-detail
- restricted-boost-fusion
restricted-boost-integer
- restricted-boost-lambda
restricted-boost-lexical_cast
- restricted-boost-mpl
restricted-boost-predef
- restricted-boost-range
- restricted-boost-smart_ptr
+ restricted-boost-random
restricted-boost-static_assert
restricted-boost-throw_exception
- restricted-boost-tuple
- restricted-boost-type_traits
)
diff --git a/contrib/restricted/boost/math/CMakeLists.linux-aarch64.txt b/contrib/restricted/boost/math/CMakeLists.linux-aarch64.txt
index 9e1793883b..eea0a31cae 100644
--- a/contrib/restricted/boost/math/CMakeLists.linux-aarch64.txt
+++ b/contrib/restricted/boost/math/CMakeLists.linux-aarch64.txt
@@ -14,24 +14,14 @@ target_include_directories(restricted-boost-math INTERFACE
target_link_libraries(restricted-boost-math INTERFACE
contrib-libs-linux-headers
contrib-libs-cxxsupp
- yutil
- restricted-boost-array
restricted-boost-assert
- restricted-boost-atomic
restricted-boost-concept_check
restricted-boost-config
restricted-boost-core
- restricted-boost-detail
- restricted-boost-fusion
restricted-boost-integer
- restricted-boost-lambda
restricted-boost-lexical_cast
- restricted-boost-mpl
restricted-boost-predef
- restricted-boost-range
- restricted-boost-smart_ptr
+ restricted-boost-random
restricted-boost-static_assert
restricted-boost-throw_exception
- restricted-boost-tuple
- restricted-boost-type_traits
)
diff --git a/contrib/restricted/boost/math/CMakeLists.linux.txt b/contrib/restricted/boost/math/CMakeLists.linux.txt
index 9e1793883b..eea0a31cae 100644
--- a/contrib/restricted/boost/math/CMakeLists.linux.txt
+++ b/contrib/restricted/boost/math/CMakeLists.linux.txt
@@ -14,24 +14,14 @@ target_include_directories(restricted-boost-math INTERFACE
target_link_libraries(restricted-boost-math INTERFACE
contrib-libs-linux-headers
contrib-libs-cxxsupp
- yutil
- restricted-boost-array
restricted-boost-assert
- restricted-boost-atomic
restricted-boost-concept_check
restricted-boost-config
restricted-boost-core
- restricted-boost-detail
- restricted-boost-fusion
restricted-boost-integer
- restricted-boost-lambda
restricted-boost-lexical_cast
- restricted-boost-mpl
restricted-boost-predef
- restricted-boost-range
- restricted-boost-smart_ptr
+ restricted-boost-random
restricted-boost-static_assert
restricted-boost-throw_exception
- restricted-boost-tuple
- restricted-boost-type_traits
)
diff --git a/contrib/restricted/boost/math/README.md b/contrib/restricted/boost/math/README.md
index b9dba9a9a9..cb33c60f30 100644
--- a/contrib/restricted/boost/math/README.md
+++ b/contrib/restricted/boost/math/README.md
@@ -65,7 +65,7 @@ Quaternion and Octonians are class templates similar to std::complex.
The full documentation is available on [boost.org](http://www.boost.org/doc/libs/release/libs/math).
-### Standalone Mode (Beta)
+### Standalone Mode
Defining BOOST_MATH_STANDALONE allows Boost.Math to be used without any Boost dependencies. Some functionality is reduced in this mode. A static_assert message will alert you if a particular feature has been disabled by standalone mode.
@@ -120,9 +120,9 @@ You can either run all the tests listed in `Jamfile.v2` or run a single test:
The default action for a PR or commit to a PR is for CI to run the full complement of tests. The following can be appended to the end of a commit message to modify behavior:
* [ci skip] to skip all tests
- * [linux] to test using GCC Versions 5-10 and Clang Versions 5-10 on Ubuntu LTS versions 16.04-20.04.
+ * [linux] to test using GCC Versions 5-12 and Clang Versions 5-14 on Ubuntu LTS versions 18.04-22.04.
* [apple] to test Apple Clang on the latest version of MacOS.
- * [windows] to test MSVC-14.0, MSVC-14.2 and mingw on the latest version of Windows.
+ * [windows] to test MSVC-14.0, MSVC-14.2, MSVC-14.3, CYGWIN, and mingw on the latest version of Windows.
* [standalone] to run standalone mode compile tests
### Building documentation ###
diff --git a/contrib/restricted/boost/math/include/boost/math/policies/policy.hpp b/contrib/restricted/boost/math/include/boost/math/policies/policy.hpp
index ed4f58a7e4..6daebaa64f 100644
--- a/contrib/restricted/boost/math/include/boost/math/policies/policy.hpp
+++ b/contrib/restricted/boost/math/include/boost/math/policies/policy.hpp
@@ -15,7 +15,7 @@
#include <cstdint>
#include <cstddef>
-namespace boost{ namespace math{
+namespace boost{ namespace math{
namespace mp = tools::meta_programming;
@@ -122,7 +122,7 @@ namespace policies{
static char test(const name<N>* = nullptr); \
static double test(...); \
public: \
- static constexpr bool value = sizeof(test(static_cast<T*>(0))) == sizeof(char); \
+ static constexpr bool value = sizeof(test(static_cast<T*>(nullptr))) == sizeof(char); \
}; \
} \
\
@@ -151,7 +151,7 @@ namespace policies{
static char test(const name<N>* = nullptr); \
static double test(...); \
public: \
- static constexpr bool value = sizeof(test(static_cast<T*>(0))) == sizeof(char); \
+ static constexpr bool value = sizeof(test(static_cast<T*>(nullptr))) == sizeof(char); \
}; \
} \
\
@@ -255,14 +255,14 @@ char test_is_valid_arg(const default_policy*);
char test_is_default_arg(const default_policy*);
template <typename T>
-class is_valid_policy_imp
+class is_valid_policy_imp
{
public:
- static constexpr bool value = sizeof(boost::math::policies::detail::test_is_valid_arg(static_cast<T*>(0))) == sizeof(char);
+ static constexpr bool value = sizeof(boost::math::policies::detail::test_is_valid_arg(static_cast<T*>(nullptr))) == sizeof(char);
};
-template <typename T>
-class is_valid_policy
+template <typename T>
+class is_valid_policy
{
public:
static constexpr bool value = boost::math::policies::detail::is_valid_policy_imp<T>::value;
@@ -272,7 +272,7 @@ template <typename T>
class is_default_policy_imp
{
public:
- static constexpr bool value = sizeof(boost::math::policies::detail::test_is_default_arg(static_cast<T*>(0))) == sizeof(char);
+ static constexpr bool value = sizeof(boost::math::policies::detail::test_is_default_arg(static_cast<T*>(nullptr))) == sizeof(char);
};
template <typename T>
@@ -342,8 +342,8 @@ typedef default_args<BOOST_MATH_PROMOTE_FLOAT_POLICY, BOOST_MATH_PROMOTE_DOUBLE_
// Now define the policy type with enough arguments to handle all
// the policies:
//
-template <typename A1 = default_policy,
- typename A2 = default_policy,
+template <typename A1 = default_policy,
+ typename A2 = default_policy,
typename A3 = default_policy,
typename A4 = default_policy,
typename A5 = default_policy,
@@ -417,7 +417,7 @@ public:
using evaluation_error_type = typename arg_type<mp::mp_quote_trait<is_evaluation_error>, evaluation_error<>>::type;
using rounding_error_type = typename arg_type<mp::mp_quote_trait<is_rounding_error>, rounding_error<>>::type;
using indeterminate_result_error_type = typename arg_type<mp::mp_quote_trait<is_indeterminate_result_error>, indeterminate_result_error<>>::type;
-
+
// Precision:
using precision_type = typename detail::precision<digits10_type, bits_precision_type>::type;
@@ -427,7 +427,7 @@ public:
// Discrete quantiles:
using discrete_quantile_type = typename arg_type<mp::mp_quote_trait<is_discrete_quantile>, discrete_quantile<>>::type;
-
+
// Mathematically undefined properties:
using assert_undefined_type = typename arg_type<mp::mp_quote_trait<is_assert_undefined>, assert_undefined<>>::type;
@@ -491,9 +491,9 @@ public:
using max_root_iterations_type = max_root_iterations<>;
};
-template <typename Policy,
- typename A1 = default_policy,
- typename A2 = default_policy,
+template <typename Policy,
+ typename A1 = default_policy,
+ typename A2 = default_policy,
typename A3 = default_policy,
typename A4 = default_policy,
typename A5 = default_policy,
@@ -583,7 +583,7 @@ private:
// Remove all the policies that are the same as the default:
using fn = mp::mp_quote_trait<detail::is_default_policy>;
using reduced_list = mp::mp_remove_if_q<result_list, fn>;
-
+
// Pad out the list with defaults:
using result_type = typename detail::append_N<reduced_list, default_policy, (14UL - mp::mp_size<reduced_list>::value)>::type;
@@ -607,9 +607,9 @@ public:
// Full specialisation to speed up compilation of the common case:
template <>
-struct normalise<policy<>,
- promote_float<false>,
- promote_double<false>,
+struct normalise<policy<>,
+ promote_float<false>,
+ promote_double<false>,
discrete_quantile<>,
assert_undefined<>,
default_policy,
@@ -641,76 +641,76 @@ struct normalise<policy<detail::forwarding_arg1, detail::forwarding_arg2>,
};
inline constexpr policy<> make_policy() noexcept
-{ return policy<>(); }
+{ return {}; }
template <class A1>
inline constexpr typename normalise<policy<>, A1>::type make_policy(const A1&) noexcept
-{
+{
typedef typename normalise<policy<>, A1>::type result_type;
- return result_type();
+ return result_type();
}
template <class A1, class A2>
inline constexpr typename normalise<policy<>, A1, A2>::type make_policy(const A1&, const A2&) noexcept
-{
+{
typedef typename normalise<policy<>, A1, A2>::type result_type;
- return result_type();
+ return result_type();
}
template <class A1, class A2, class A3>
inline constexpr typename normalise<policy<>, A1, A2, A3>::type make_policy(const A1&, const A2&, const A3&) noexcept
-{
+{
typedef typename normalise<policy<>, A1, A2, A3>::type result_type;
- return result_type();
+ return result_type();
}
template <class A1, class A2, class A3, class A4>
inline constexpr typename normalise<policy<>, A1, A2, A3, A4>::type make_policy(const A1&, const A2&, const A3&, const A4&) noexcept
-{
+{
typedef typename normalise<policy<>, A1, A2, A3, A4>::type result_type;
- return result_type();
+ return result_type();
}
template <class A1, class A2, class A3, class A4, class A5>
inline constexpr typename normalise<policy<>, A1, A2, A3, A4, A5>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&) noexcept
-{
+{
typedef typename normalise<policy<>, A1, A2, A3, A4, A5>::type result_type;
- return result_type();
+ return result_type();
}
template <class A1, class A2, class A3, class A4, class A5, class A6>
inline constexpr typename normalise<policy<>, A1, A2, A3, A4, A5, A6>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&) noexcept
-{
+{
typedef typename normalise<policy<>, A1, A2, A3, A4, A5, A6>::type result_type;
- return result_type();
+ return result_type();
}
template <class A1, class A2, class A3, class A4, class A5, class A6, class A7>
inline constexpr typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&, const A7&) noexcept
-{
+{
typedef typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7>::type result_type;
- return result_type();
+ return result_type();
}
template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
inline constexpr typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&, const A7&, const A8&) noexcept
-{
+{
typedef typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8>::type result_type;
- return result_type();
+ return result_type();
}
template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
inline constexpr typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8, A9>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&, const A7&, const A8&, const A9&) noexcept
-{
+{
typedef typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8, A9>::type result_type;
- return result_type();
+ return result_type();
}
template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10>
inline constexpr typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&, const A7&, const A8&, const A9&, const A10&) noexcept
-{
+{
typedef typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>::type result_type;
- return result_type();
+ return result_type();
}
template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10, class A11>
@@ -753,7 +753,7 @@ struct precision
// Possibly unknown precision:
precision_type,
typename std::conditional<
- ((std::numeric_limits<Real>::digits <= precision_type::value)
+ ((std::numeric_limits<Real>::digits <= precision_type::value)
|| (Policy::precision_type::value <= 0)),
// Default case, full precision for RealType:
digits2< std::numeric_limits<Real>::digits>,
@@ -899,8 +899,8 @@ inline constexpr T get_epsilon(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T)) noexcept(st
namespace detail{
-template <class A1,
- class A2,
+template <class A1,
+ class A2,
class A3,
class A4,
class A5,
@@ -917,7 +917,7 @@ template <typename P>
class is_policy_imp
{
public:
- static constexpr bool value = (sizeof(::boost::math::policies::detail::test_is_policy(static_cast<P*>(0))) == sizeof(char));
+ static constexpr bool value = (sizeof(::boost::math::policies::detail::test_is_policy(static_cast<P*>(nullptr))) == sizeof(char));
};
}
@@ -948,7 +948,7 @@ struct method_error_check
{
using domain_error_type = typename Policy::domain_error_type;
using type = typename std::conditional<
- (domain_error_type::value == throw_on_error) && (domain_error_type::value != user_error),
+ (domain_error_type::value == throw_on_error),
std::false_type,
std::true_type>::type;
};
@@ -967,7 +967,7 @@ struct is_noexcept_error_policy
typedef typename Policy::rounding_error_type t7;
typedef typename Policy::indeterminate_result_error_type t8;
- static constexpr bool value =
+ static constexpr bool value =
((t1::value != throw_on_error) && (t1::value != user_error)
&& (t2::value != throw_on_error) && (t2::value != user_error)
&& (t3::value != throw_on_error) && (t3::value != user_error)
diff --git a/contrib/restricted/boost/math/include/boost/math/special_functions/fpclassify.hpp b/contrib/restricted/boost/math/include/boost/math/special_functions/fpclassify.hpp
index 09fcf2924c..47d2a0e795 100644
--- a/contrib/restricted/boost/math/include/boost/math/special_functions/fpclassify.hpp
+++ b/contrib/restricted/boost/math/include/boost/math/special_functions/fpclassify.hpp
@@ -128,7 +128,7 @@ inline bool is_nan_helper(T, const std::false_type&)
{
return false;
}
-#if defined(BOOST_MATH_USE_FLOAT128)
+#if defined(BOOST_MATH_USE_FLOAT128)
#if defined(BOOST_MATH_HAS_QUADMATH_H)
inline bool is_nan_helper(__float128 f, const std::true_type&) { return ::isnanq(f); }
inline bool is_nan_helper(__float128 f, const std::false_type&) { return ::isnanq(f); }
@@ -279,7 +279,7 @@ inline int fpclassify BOOST_NO_MACRO_EXPAND(T t)
typedef typename traits::method method;
typedef typename tools::promote_args_permissive<T>::type value_type;
#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
- if(std::numeric_limits<T>::is_specialized && detail::is_generic_tag_false(static_cast<method*>(0)))
+ if(std::numeric_limits<T>::is_specialized && detail::is_generic_tag_false(static_cast<method*>(nullptr)))
return detail::fpclassify_imp(static_cast<value_type>(t), detail::generic_tag<true>());
return detail::fpclassify_imp(static_cast<value_type>(t), method());
#else
@@ -295,7 +295,7 @@ inline int fpclassify<long double> BOOST_NO_MACRO_EXPAND(long double t)
typedef traits::method method;
typedef long double value_type;
#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
- if(std::numeric_limits<long double>::is_specialized && detail::is_generic_tag_false(static_cast<method*>(0)))
+ if(std::numeric_limits<long double>::is_specialized && detail::is_generic_tag_false(static_cast<method*>(nullptr)))
return detail::fpclassify_imp(static_cast<value_type>(t), detail::generic_tag<true>());
return detail::fpclassify_imp(static_cast<value_type>(t), method());
#else
diff --git a/contrib/restricted/boost/math/include/boost/math/tools/config.hpp b/contrib/restricted/boost/math/include/boost/math/tools/config.hpp
index 09db298a88..af2c64b4cf 100644
--- a/contrib/restricted/boost/math/include/boost/math/tools/config.hpp
+++ b/contrib/restricted/boost/math/include/boost/math/tools/config.hpp
@@ -107,6 +107,37 @@
# endif
#endif
+#if !defined(BOOST_NOINLINE)
+# if defined(_MSC_VER)
+# define BOOST_NOINLINE __declspec(noinline)
+# elif defined(__GNUC__) && __GNUC__ > 3
+ // Clang also defines __GNUC__ (as 4)
+# if defined(__CUDACC__)
+ // nvcc doesn't always parse __noinline__,
+ // see: https://svn.boost.org/trac/boost/ticket/9392
+# define BOOST_NOINLINE __attribute__ ((noinline))
+# elif defined(__HIP__)
+ // See https://github.com/boostorg/config/issues/392
+# define BOOST_NOINLINE __attribute__ ((noinline))
+# else
+# define BOOST_NOINLINE __attribute__ ((__noinline__))
+# endif
+# else
+# define BOOST_NOINLINE
+# endif
+#endif
+
+#if !defined(BOOST_FORCEINLINE)
+# if defined(_MSC_VER)
+# define BOOST_FORCEINLINE __forceinline
+# elif defined(__GNUC__) && __GNUC__ > 3
+ // Clang also defines __GNUC__ (as 4)
+# define BOOST_FORCEINLINE inline __attribute__ ((__always_inline__))
+# else
+# define BOOST_FORCEINLINE inline
+# endif
+#endif
+
#endif // BOOST_MATH_STANDALONE
// Support compilers with P0024R2 implemented without linking TBB
@@ -115,6 +146,23 @@
# define BOOST_MATH_EXEC_COMPATIBLE
#endif
+// Attributes from C++14 and newer
+#ifdef __has_cpp_attribute
+
+// C++17
+#if (__cplusplus >= 201703L || _MSVC_LANG >= 201703L)
+# if __has_cpp_attribute(maybe_unused)
+# define BOOST_MATH_MAYBE_UNUSED [[maybe_unused]]
+# endif
+#endif
+
+#endif
+
+// If attributes are not defined make sure we don't have compiler errors
+#ifndef BOOST_MATH_MAYBE_UNUSED
+# define BOOST_MATH_MAYBE_UNUSED
+#endif
+
#include <algorithm> // for min and max
#include <limits>
#include <cmath>
diff --git a/contrib/restricted/boost/math/include/boost/math/tools/promotion.hpp b/contrib/restricted/boost/math/include/boost/math/tools/promotion.hpp
index 3e51768e6b..72a0755a16 100644
--- a/contrib/restricted/boost/math/include/boost/math/tools/promotion.hpp
+++ b/contrib/restricted/boost/math/include/boost/math/tools/promotion.hpp
@@ -63,6 +63,9 @@ namespace boost
template <> struct promote_arg<long double> { using type = long double; };
template <> struct promote_arg<int> { using type = double; };
+ template <typename T>
+ using promote_arg_t = typename promote_arg<T>::type;
+
template <class T1, class T2>
struct promote_args_2
{ // Promote, if necessary, & pick the wider of the two floating-point types.
@@ -108,6 +111,9 @@ namespace boost
template <> struct promote_args_2<double, long double> { using type = long double; };
template <> struct promote_args_2<long double, double> { using type = long double; };
+ template <typename T, typename U>
+ using promote_args_2_t = typename promote_args_2<T, U>::type;
+
template <class T1, class T2=float, class T3=float, class T4=float, class T5=float, class T6=float>
struct promote_args
{
@@ -135,6 +141,9 @@ namespace boost
#endif
};
+ template <class T1, class T2=float, class T3=float, class T4=float, class T5=float, class T6=float>
+ using promote_args_t = typename promote_args<T1, T2, T3, T4, T5, T6>::type;
+
//
// This struct is the same as above, but has no static assert on long double usage,
// it should be used only on functions that can be implemented for long double
@@ -160,6 +169,9 @@ namespace boost
>::type;
};
+ template <class T1, class T2=float, class T3=float, class T4=float, class T5=float, class T6=float>
+ using promote_args_permissive_t = typename promote_args_permissive<T1, T2, T3, T4, T5, T6>::type;
+
} // namespace tools
} // namespace math
} // namespace boost
diff --git a/contrib/restricted/boost/random/CMakeLists.darwin.txt b/contrib/restricted/boost/random/CMakeLists.darwin.txt
index ef236327eb..ef23430088 100644
--- a/contrib/restricted/boost/random/CMakeLists.darwin.txt
+++ b/contrib/restricted/boost/random/CMakeLists.darwin.txt
@@ -8,19 +8,21 @@
add_library(restricted-boost-random)
+target_compile_options(restricted-boost-random PRIVATE
+ -Wno-everything
+)
target_include_directories(restricted-boost-random PUBLIC
${CMAKE_SOURCE_DIR}/contrib/restricted/boost/random/include
)
target_link_libraries(restricted-boost-random PUBLIC
contrib-libs-cxxsupp
- yutil
+ restricted-boost-array
restricted-boost-assert
restricted-boost-config
restricted-boost-core
+ restricted-boost-dynamic_bitset
restricted-boost-integer
restricted-boost-io
- restricted-boost-math
- restricted-boost-mpl
restricted-boost-range
restricted-boost-static_assert
restricted-boost-system
diff --git a/contrib/restricted/boost/random/CMakeLists.linux-aarch64.txt b/contrib/restricted/boost/random/CMakeLists.linux-aarch64.txt
index 3b387da592..43993d3aaf 100644
--- a/contrib/restricted/boost/random/CMakeLists.linux-aarch64.txt
+++ b/contrib/restricted/boost/random/CMakeLists.linux-aarch64.txt
@@ -8,20 +8,22 @@
add_library(restricted-boost-random)
+target_compile_options(restricted-boost-random PRIVATE
+ -Wno-everything
+)
target_include_directories(restricted-boost-random PUBLIC
${CMAKE_SOURCE_DIR}/contrib/restricted/boost/random/include
)
target_link_libraries(restricted-boost-random PUBLIC
contrib-libs-linux-headers
contrib-libs-cxxsupp
- yutil
+ restricted-boost-array
restricted-boost-assert
restricted-boost-config
restricted-boost-core
+ restricted-boost-dynamic_bitset
restricted-boost-integer
restricted-boost-io
- restricted-boost-math
- restricted-boost-mpl
restricted-boost-range
restricted-boost-static_assert
restricted-boost-system
diff --git a/contrib/restricted/boost/random/CMakeLists.linux.txt b/contrib/restricted/boost/random/CMakeLists.linux.txt
index 3b387da592..43993d3aaf 100644
--- a/contrib/restricted/boost/random/CMakeLists.linux.txt
+++ b/contrib/restricted/boost/random/CMakeLists.linux.txt
@@ -8,20 +8,22 @@
add_library(restricted-boost-random)
+target_compile_options(restricted-boost-random PRIVATE
+ -Wno-everything
+)
target_include_directories(restricted-boost-random PUBLIC
${CMAKE_SOURCE_DIR}/contrib/restricted/boost/random/include
)
target_link_libraries(restricted-boost-random PUBLIC
contrib-libs-linux-headers
contrib-libs-cxxsupp
- yutil
+ restricted-boost-array
restricted-boost-assert
restricted-boost-config
restricted-boost-core
+ restricted-boost-dynamic_bitset
restricted-boost-integer
restricted-boost-io
- restricted-boost-math
- restricted-boost-mpl
restricted-boost-range
restricted-boost-static_assert
restricted-boost-system