Commit Graph

230 Commits

Author SHA1 Message Date
John Maddock
8ff620de3b Add debug_adaptor.hpp.
Document debug_adaptor and VC++ visualizers.

[SVN r82517]
2013-01-17 12:23:21 +00:00
John Maddock
2b901734b2 Big search and replace name change of adapter -> adaptor.
[SVN r82501]
2013-01-15 11:43:27 +00:00
John Maddock
0d4b3d4b02 Add logged adapter.
Add docs for logged_adapter and mpfi_float.

[SVN r82499]
2013-01-15 09:25:05 +00:00
John Maddock
97ba7d573f Fix bug that causes division by single limb to fail when the remainder is zero and the least significant limb of the quotient is 1.
Fixes #7878.

[SVN r82460]
2013-01-12 10:51:46 +00:00
John Maddock
42458450be Add initial support for mpfi interval arithmetic
[SVN r82337]
2013-01-03 18:58:43 +00:00
John Maddock
27599ca09e Apply patch for typos.
Regenerate docs.
Fixes #7806.

[SVN r82073]
2012-12-18 11:28:04 +00:00
John Maddock
3f7e4906df Add static asserts on ExponentType requirements.
Document requirements better.
Regenerate docs.

[SVN r82046]
2012-12-17 13:11:01 +00:00
John Maddock
08fdb31fa2 Add some optimisation to gcd/lcm/lsb and cpp_int:
Use compiler intrinsics where possible for lsb.
Switch to using native integers when the values get small enough for gcd.
Re-run the performance tests and regenerate the docs.

Also change the series evaluation limits to make them depend on the precision in pow.hpp and trig.hpp.

[SVN r81946]
2012-12-14 18:37:27 +00:00
John Maddock
f607597c85 Update mpfr.hpp to use MPFR native constants when used with Boost.Math.
[SVN r81871]
2012-12-12 13:18:06 +00:00
John Maddock
a7d4edc769 Tweak GCD for better performance.
[SVN r81810]
2012-12-09 16:41:53 +00:00
John Maddock
75cab8836d Allow detail::canonical to be used with enum types.
Review all noexcept specifications - and remove quite a few that we (probably) can't guarantee.
Change example workaround for non-C++11 compilers.

[SVN r81809]
2012-12-09 15:24:07 +00:00
John Maddock
bfd897f5d8 Fix some more GCC warnings and make compiles faster for slow compilers (Intel)
[SVN r81710]
2012-12-04 19:28:46 +00:00
John Maddock
1991d878aa Fix some more GCC warnings.
[SVN r81655]
2012-12-01 18:06:24 +00:00
John Maddock
672cd76754 Refactor test_arithmetic.cpp into lots of small files for reduced dependencies.
Changed use of __forceinline to release builds only.

[SVN r81654]
2012-12-01 16:19:23 +00:00
Christopher Kormanyos
5f14980691 Improved cpp_dec_float::extract_parts to handle sizeof(double) exceeding 8 bytes.
[SVN r81638]
2012-11-30 20:22:10 +00:00
John Maddock
9c7f52ec7f Suppress GCC warning.
[SVN r81634]
2012-11-30 16:29:17 +00:00
John Maddock
477fec65e1 TRy and disable some VC11 warnings.
[SVN r81529]
2012-11-25 18:01:46 +00:00
John Maddock
3523e32a6c Fix for aliasing bug.
[SVN r81526]
2012-11-25 11:50:54 +00:00
John Maddock
b9b28eefa7 Fix for gcc-4.4.x: rvalue reference support in gcc-4.4 isn't good enough for our use cases.
[SVN r81510]
2012-11-24 18:28:04 +00:00
John Maddock
114aeb386b Simply enable_if usage in cpp_int_backend: try to fix Intel-11 failures.
Improve test_cpp_int.cpp.
Improve config tests.

[SVN r81487]
2012-11-22 17:21:01 +00:00
John Maddock
d6feeb290d Small optimisation for integer modulus.
[SVN r81477]
2012-11-22 09:56:47 +00:00
Marshall Clow
03af4f817c Remove usage of deprecated macros
[SVN r81467]
2012-11-21 21:32:26 +00:00
John Maddock
09f3928f5a Fix clang failures
[SVN r81464]
2012-11-21 17:54:50 +00:00
John Maddock
cbb9e41226 Try and fix some Clang failures.
Also remove noexcept specifications from cpp_dec_float: calls to lexical_cast deep in the call tree, make it pretty much impossible to analyse by hand.

[SVN r81427]
2012-11-19 18:18:51 +00:00
John Maddock
3168afc5ec Misc minor fixes for VC9.
[SVN r81423]
2012-11-19 13:30:33 +00:00
John Maddock
d38ad7997d Fix misplaced use of typename.
[SVN r81422]
2012-11-19 12:27:53 +00:00
John Maddock
8ae04c68a6 Merge multiprecision from sandbox.
[SVN r81417]
2012-11-18 18:56:59 +00:00
John Maddock
4071dd8d59 Fix missing number constructor.
Fix is_explicitly_convertible to take account of the generic conversions.
Change sf_performance to use multiple files so we can actually compile the thing!
Minor doc updates.
Suppress some more warnings.

[SVN r81324]
2012-11-13 17:12:19 +00:00
John Maddock
3430188795 Add overloads of the integer-only functions which work with native integer types.
Ensure powm promotes fixed precision types to avoid numeric overflow.
Allow the Miller-Rabin code to be used by native integers.
Fix Miller Rabin tests to actually return the test result!
Fix some bugs in cpp_int unsigned arithmetic, and ensure the Miller Rabin and random number code can be safely used with checked fixed precision integers.

[SVN r81269]
2012-11-09 18:55:19 +00:00
John Maddock
a9bcf67b4b Fix errors resulting from incorrect noexcept specifications and no numeric_limits support for __int128
[SVN r81211]
2012-11-05 19:05:31 +00:00
John Maddock
e3deed1fdf Optimize cpp_int multiplication with precision extension.
Turn off some warnings.

[SVN r81200]
2012-11-05 12:36:25 +00:00
John Maddock
e599ca723c Fix missing typename.
[SVN r81169]
2012-11-04 12:08:37 +00:00
John Maddock
da40611f57 Fix mpfr_float_backend interconversions.
Update docs and regenerate.

[SVN r81163]
2012-11-03 18:27:11 +00:00
John Maddock
788449ffa5 Add non-member functions for mixed precision arithmetic + tests for same.
Fix a couple of bugs discovered along the way.

[SVN r81151]
2012-11-02 19:13:50 +00:00
John Maddock
b640732abd Add additional template parameter to mpfr_float_backend to allow stack-based floats.
[SVN r81135]
2012-11-01 19:01:08 +00:00
John Maddock
c587f1550b Update and regenerate docs.
Fix error in expression template unpacking that occasionally caused variable over-writes.
Update Math lib tests to test at least one non-ET type.

[SVN r81121]
2012-10-31 17:06:33 +00:00
John Maddock
645fe8865c Add tests for checked ints and fix failures.
Make negating an unsigned int an error, and fix resulting test failures.
Change allocator defaults to be void when the allocator is not actually required.

[SVN r81070]
2012-10-27 17:48:33 +00:00
John Maddock
e3b56e3f7c Fix constexpr support.
[SVN r81063]
2012-10-25 11:53:25 +00:00
John Maddock
82409d86a0 Minor changes for __int128 support and fix some C++0x issues
[SVN r81062]
2012-10-25 09:29:04 +00:00
John Maddock
a857186cb4 Big "blow it away and start again" refactoring of cpp_int.
Adds support for runtime checking, enumerated template params, fixed precision with allocator, and no "hidden" template parameters.

[SVN r81054]
2012-10-24 16:00:05 +00:00
John Maddock
5256e108a1 Fix Intel -x64 failures.
[SVN r80609]
2012-09-20 18:21:07 +00:00
John Maddock
4f2738fd6f Add traits class to determine default ExpressionTemplate parameter value.
Add support for fused-multiply-add/subtract.
Optimise temporary usage when the LHS also appears on the RHS.

[SVN r80607]
2012-09-20 16:04:02 +00:00
John Maddock
741f98585d Remove dead code.
[SVN r80580]
2012-09-18 17:02:45 +00:00
John Maddock
dd7ee60431 Fix GCC C++11 mode failures.
Tidy up TODO list.

[SVN r80577]
2012-09-18 16:47:03 +00:00
John Maddock
fc1cda1f62 Largely cosmetic change - add two new template params to cpp_dec_float - one for the exponent type, and one for an optional allocator.
[SVN r80431]
2012-09-07 08:31:49 +00:00
John Maddock
6dfcc7e526 Big search and replace change of name for the ExpressionTemplates template parameter to class number.
[SVN r80418]
2012-09-06 09:50:47 +00:00
John Maddock
d561dfe50b Allow mixed precision arithmetic in the cpp_int backend.
[SVN r80408]
2012-09-05 16:46:54 +00:00
John Maddock
9edbdc0ca4 Enable optimisations in the GMP and MPFR backends for mixed mode arithmetic.
Allow mixed arithmetic between two different expression templates.
Change docs to indicate mixed arithmetic is allowed and rebuild.

[SVN r80397]
2012-09-04 17:18:18 +00:00
John Maddock
ce3354335c Allow mixed precision binary operations.
Add tests for basic mixed precision usage.

[SVN r80394]
2012-09-04 08:20:26 +00:00
John Maddock
c7230f94ff Extra test cases for more complete coverage.
Added test coverage makefile.
Fixed errors from extra test cases.
Rename a few traits.

[SVN r80328]
2012-08-31 11:57:55 +00:00