Commit Graph

375 Commits

Author SHA1 Message Date
jzmaddock
68ea8d6a40 Multiprecision: split up test_sf_import_c99.cpp some more to avoid over-large object files. 2017-12-30 18:11:31 +00:00
jzmaddock
b35f1c8f61 Multiprecision.Integer conversions: Enforce uniform error handling when converting out-of-range narrowing integer conversions.
See https://svn.boost.org/trac10/ticket/13109
2017-12-30 09:34:35 +00:00
jzmaddock
37c813f764 Multiprecision.generic interconversions: decimal to rational conversions need to treat 0 as a special case.
Fixes: https://svn.boost.org/trac10/ticket/13148
2017-12-27 19:40:03 +00:00
jzmaddock
1d19b31132 Multiprecision: begin to fix VC12 failures from last series of commits.... still one to go. 2017-12-27 19:38:08 +00:00
jzmaddock
8d04a03850 Multiprecision: Fix msvc-14.1 C++17 warnings. 2017-12-26 19:22:21 +00:00
jzmaddock
a4b198e1b7 Multiprecision.cpp_bin_float: Fix errors in exponent usage when exponent type is a long long.
See https://svn.boost.org/trac10/ticket/13264.
Fix previously unsupported situation: conversion of narrow cpp_bin_float to wider integer type.
See https://svn.boost.org/trac10/ticket/13301.
Improve test coverage for cpp_bin_floats with large exponent types, and/or dynamic allocators.
Fix issue in numeric_limits::max() that caused a complement of a signed integer number to be taken when the allocator is dynamic.
Fix heuristic in exp() function that caused a crazy number of iterations to be taken when the exponent was very large.
2017-12-26 17:54:41 +00:00
jzmaddock
9e4b524d00 Add test cases for fixed bugs. 2017-12-26 17:03:03 +00:00
jzmaddock
4daa1baf6d Multiprecision: disable explicit conversion operator if the target type is already constructible from *this.
Prevents ambiguity between the target types constructor and the conversion operator.
See https://github.com/boostorg/multiprecision/issues/30.
2017-12-25 18:07:48 +00:00
jzmaddock
d2ed3f881a Change expected value from logb(NaN) to largest/smallest value of the exponent type. 2017-06-12 09:11:13 +01:00
jzmaddock
e08fb96dce CI: Make serialization tests link-static on mingw.
Serialization lib is too often broken on that platform.
2017-06-05 13:13:15 +01:00
jzmaddock
4c36616841 CI: Fix some remaining issues:
* Build with --hash as otherwise command line gets too long on Windows machines.
* Disable tests that generate object files too large for gcc on windows.
* Split cpp_dec_float tests up a bit to reduce object file size.
* Use boost::int46_t not ::int64_t in test case.
* Disable test_arithmetic_backend_concept.cpp with original mingw32 which has issues fixed in mingw64.
2017-06-04 19:36:59 +01:00
jzmaddock
6a1ab1bc34 CI: Fix paths in appveryor.yml.
Add missing import to Jamfile.
Disable test_cpp_int_lit for older msvc when under CI testing (known failure).
2017-06-01 08:59:28 +01:00
jzmaddock
10efe3d169 Add test case for https://github.com/boostorg/multiprecision/issues/21
Add appveyor test coverage.
2017-05-31 19:31:35 +01:00
jzmaddock
841e1d71bb travis: move some test targets around trying to balance the load better.
Define CI_SUPPRESS_KNOWN_ISSUES when building and reduce the testing load when it's set.
2017-05-25 13:33:58 +01:00
jzmaddock
152ef49491 travis: still getting XCode timeouts, so split tests into smaller groups again. 2017-05-24 18:57:29 +01:00
jzmaddock
dd402577cc Travis: enable more tests,
move some tests between aliases as some OSX tests still time out.
2017-05-23 18:08:26 +01:00
jzmaddock
66f19e829e Fix warnings in sincos.ipp and test_round.cpp.
Move some targets out of the "conversions" alias to try to fix travis timeouts.
2017-05-23 13:38:06 +01:00
jzmaddock
2061889b77 Correct __float128 precision in cpp_bin_float.hpp
Enable some more travis tests.
2017-05-22 19:47:27 +01:00
jzmaddock
dbdda6aabc Update float128 support test to check Boost.Config.
Enable more tests for travis.
2017-05-22 19:00:24 +01:00
jzmaddock
63151ee01c Greatly simplify travis tests in the hopes they won't time out now... 2017-05-21 19:22:41 +01:00
jzmaddock
302c6f5c35 Fix up __float128 interoperability. 2017-05-21 11:16:29 +01:00
jzmaddock
76ad144e00 Disable new pow/exp underflow tests for interval types.
The resulting intervals are too wide for the tests to pass.
2017-05-15 12:03:32 +01:00
jzmaddock
f7dc0c74c5 Update test_pow.cpp/test_exp.cpp to handle types with no infinity.
Also adjusted start point of tests for float128.
2017-05-14 19:26:12 +01:00
jzmaddock
e691d23cd5 Fix for internal logic error in exp of large values.
See https://github.com/boostorg/multiprecision/issues/23.
2017-05-14 09:37:49 +01:00
jzmaddock
f2a266da6d Fix for trig functions of huge arguments.
See https://github.com/boostorg/multiprecision/issues/24.
Note that this is not a particularly clever fix!
2017-05-12 18:50:03 +01:00
jzmaddock
34dc9d1966 Add more overflow tests. 2017-03-05 17:10:44 +00:00
jzmaddock
2876565d86 Add new test to Jamfile. 2017-03-05 17:04:29 +00:00
jzmaddock
f333808577 Increase testing of truncated integer arithmetic. 2017-03-05 17:02:10 +00:00
jzmaddock
7a2df8ff0a Fix error handing in checked cpp_int multiply.
See https://github.com/boostorg/multiprecision/issues/16
2017-03-05 13:10:13 +00:00
jzmaddock
f4dceca5dc Disable some float128 tests when running under older gcc versions -
no point in testing for old bugs in libquadmath.
2017-03-03 09:20:58 +00:00
jzmaddock
cd2bbcba5b Fix bounded variable precision cpp_int's.
1) Removed some constexpr optimizations which were causing the code to fail to spot that truncation/overflow had occurred.
2) Change min/max code for numeric_limits to work for bounded variable precision types (this needs more work as the current code relies on being able to create a fixed-precision allocator-free type of equivalent width.
3) Add tests for bounded variable precision integers.
See: https://svn.boost.org/trac/boost/ticket/12798
2017-02-03 19:39:28 +00:00
jzmaddock
e108817e69 C99 tests: disable one more mpfr case fixed in recent releases. 2017-01-31 19:56:31 +00:00
jzmaddock
9341113864 C99 test: don't test buggy mpfr versions. 2017-01-31 19:54:49 +00:00
jzmaddock
7deabbe0d4 Previous commit was incomplete. 2017-01-31 19:46:26 +00:00
jzmaddock
c99bb4d418 Fix tests use of min/max types and correct type for the exponent of the number. 2017-01-31 19:41:35 +00:00
jzmaddock
6139de5732 Add MPFR version info to test. 2017-01-31 19:21:51 +00:00
jzmaddock
c81a5e410a Fix GCC-ubuntu failures induced by previous commits 2017-01-30 23:08:34 +00:00
jzmaddock
8179baf40f Fix cpp_int left shift in cases where there is bit-loss.
See https://svn.boost.org/trac/boost/ticket/12790.
Also add dedicated test case.
2017-01-29 19:20:29 +00:00
jzmaddock
c0df5b6747 Change ilogb to consistently return the minimum value of the exponent type
(which may be either narrower or wider than the int return type specified in C99).
Change transcendental code which uses ilogb for loop termination, to check for
a minimal value return to correctly handle the case that the value has gone to zero.
See https://svn.boost.org/trac/boost/ticket/12625
2016-12-03 08:50:38 +00:00
jzmaddock
26ceb6ef38 Get cpp_dec_float, float128, and mpfr passing the C99 annex F tests.
See https://svn.boost.org/trac/boost/ticket/12581.
2016-12-02 17:54:36 +00:00
jzmaddock
138a9055e2 Big commit to bring things into line with C99 Annex F.
See https://svn.boost.org/trac/boost/ticket/12581.
2016-11-30 19:00:55 +00:00
jzmaddock
ec018d5099 Increase testing for rounding when subtracting cpp_bin_float. 2016-11-18 10:56:58 +00:00
jzmaddock
618ef47611 Fix subtraction of small quantities in cpp_bin_float.
See: https://svn.boost.org/trac/boost/ticket/12580
2016-11-17 19:02:11 +00:00
jzmaddock
0e2195fa78 Improve performance of convert_to<Float>.
See https://svn.boost.org/trac/boost/ticket/12527.
2016-11-15 12:06:19 +00:00
jzmaddock
0230921010 Fix conversion of values to double that result in negative infinity.
See https://svn.boost.org/trac/boost/ticket/12527#comment:11.
2016-11-12 19:31:45 +00:00
jzmaddock
0006227416 Change cpp_bin_float rounding code to round in arbitrary location and modify convert-to-float to use it.
See https://svn.boost.org/trac/boost/ticket/12527.
2016-11-12 13:22:15 +00:00
jzmaddock
51686cae87 Fix sign when a conversion results in zero. 2016-11-06 13:12:44 +00:00
jzmaddock
4538e88a91 Fix integer sqrt for very small integers.
See https://svn.boost.org/trac/boost/ticket/12559.
2016-11-06 11:58:54 +00:00
jzmaddock
059cb63649 Prevent double rounding when converting to a denormalized float.
See https://svn.boost.org/trac/boost/ticket/12527.
2016-11-05 17:20:26 +00:00
jzmaddock
ed43204e92 Fix ceil cpp_bin_float to return signed zero when coming up from below.
Also fixes same issue in round/trunc.
See https://svn.boost.org/trac/boost/ticket/12525.
2016-10-26 18:48:53 +01:00