boost/boost-1.84-random-test-overflow.patch
Kefu Chai 0276e583db Add patch for fixing a test failure in Boost.Random
the patch addresses a test failure in Boost.Random:
```
terminate called after throwing an instance of 'boost::wrapexcept<std::overflow_error>'
  what():  Error in function float_next<double>(double): Overflow Error
Running 21 test cases...
unknown location(0): fatal error: in "distributions_test<boost__random__piecewise_constant_distribution<boost__multiprecision__number<boost__multiprecision__backends__cpp_bin_float<100u_ (boost__multiprecision__backends__digit_base_type)10_ void_ int_ 0_ 0>_ (boost__multiprecision__expression_template_option)1>_ double>>": signal: SIGABRT (application abort requested)
multiprecision_float_test.cpp(115): last checkpoint
```

The backported patch is included by boost 1.84
See https://github.com/boostorg/random/pull/88

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2024-06-07 13:25:10 +01:00

30 lines
1.3 KiB
Diff

From 4239d93dad32a11e4c3829050f8070d456266133 Mon Sep 17 00:00:00 2001
From: jzmaddock <john@johnmaddock.co.uk>
Date: Wed, 1 Jun 2022 19:35:36 +0100
Subject: [PATCH] Update multiprecision_float_test.cpp to not overflow type
double. Previously the max value for uint1024_t could just squeeze into a
double because truncation occurred during the conversion, now that cpp_int
performs correctly rounded conversions, overflow occurs, and the computation
fails. Changed the problem distribution to use a multiprecision weight type,
rather than double.
---
test/multiprecision_float_test.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/multiprecision_float_test.cpp b/test/multiprecision_float_test.cpp
index bc2a936..2b53483 100644
--- a/libs/random/test/multiprecision_float_test.cpp
+++ b/libs/random/test/multiprecision_float_test.cpp
@@ -77,7 +77,7 @@ typedef boost::mpl::list <
boost::random::lognormal_distribution<big_float>,
boost::random::normal_distribution<big_float>,
#ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
- boost::random::piecewise_constant_distribution<big_float>,
+ boost::random::piecewise_constant_distribution<big_float, big_float>,
boost::random::piecewise_linear_distribution<big_float>,
#endif
boost::random::student_t_distribution<big_float>,
--
2.45.2