Commit Graph

33 Commits

Author SHA1 Message Date
Nick Thompson
8c415f77b1 [ci skip] Use less verbose naming. Add asserts as verfication of algorithms is a negligible fraction of total runtime. Use boost::multiprecision::powm and boost::multiprecision::sqrt rather than one-offs. 2018-02-09 17:19:26 -06:00
Nick Thompson
fc4d657201 [ci skip] Modular exponentiation, modular multiplicative inverse, extended Euclidean algorithm, discrete logarithm. 2018-01-28 14:47:14 -06:00
Andrey Semashev
bc2349f71b Corrected make_odd return type inconsistency.
Make gcd_traits<signed char>::make_odd return unsigned int, similar to all other gcd_traits specializations. Also, correct the local variable types that receive the result of make_odd to avoid warnings about unintended conversion.
2017-08-20 01:57:09 +03:00
Daniela Engert
6ebccd6c80 fix narrowing warnings due to integer promotion.
Signed-off-by: Daniela Engert <dani@ngrt.de>
2017-06-08 17:40:32 +02:00
jzmaddock
7ccb820893 Test mpz_class when available.
And fix errors compiling with that type.
2017-05-07 13:15:15 +01:00
John Maddock
84ded579f3 Qualify recursive calls to avoid ambiguity for types that have their own gcd/lcm 2017-05-04 11:12:33 +01:00
John Maddock
c1a08d3185 We can enable compiler intrinsics with GCC in C++14 mode after all 2017-04-30 18:49:47 +01:00
John Maddock
53306630db Fix for Oracle 12.4 compiler 2017-04-27 17:23:40 +00:00
jzmaddock
1d934167fd Tentative fix for overload resolution issue with Oracle C++. 2017-04-26 19:51:03 +01:00
jzmaddock
7c0151c93a Enumerators don't need a final , in their list. 2017-04-26 18:30:11 +01:00
jzmaddock
4991d82385 Need to take abs of return value in short-circuit gcd code. 2017-04-24 19:19:48 +01:00
jzmaddock
58d53beae4 Add missing #include for older compilers. 2017-04-24 18:18:36 +01:00
jzmaddock
f5eff7d83d MSVC-8 has no <intrin.h>. 2017-04-24 18:13:56 +01:00
jzmaddock
beb6871864 Switch over to using new Boost.Math version of gcd/lcm.
Please refer to the Boost.Math revision log for details of changes, but in summary:
* New version of gcd/lcm internals by Jeremy Murphy include mixed-binary algorithm and better selection logic.
* Support is now included for gcd's of polynomials.
* Full C++14 constexpr support.
2017-04-23 13:01:09 +01:00
jzmaddock
162e48d14a Remove dependency to mpl and type_traits. 2017-03-31 18:34:14 +01:00
jzmaddock
45cc025bbd Merge branch 'bugfix/bitwise-not-and-gcc6' of https://github.com/Flast/boost-integer into cpp14 2017-03-28 19:28:51 +01:00
jzmaddock
a52bae3639 Improve C++14 support:
* Make functions constexpr.
* Make functions noexcept where appropriate.
* Add test case for the above.
2017-03-28 18:57:50 +01:00
Kohei Takahashi
89cec128bd Fix compile error on GCC6 or later.
Bitwise not yields integral promotion and to be signed type.
2016-07-30 16:12:07 +09:00
Peter Dimov
8dae82faeb Replace math with integer, untabify. 2015-01-13 20:53:02 +02:00
Peter Dimov
acf272ee7d Move common_factor headers to integer/ 2015-01-13 19:55:58 +02:00
Glen Fernandes
40b52301df Move integer_log2 from pending to integer 2014-06-05 15:48:22 -07:00
Steven Watanabe
cd98c4a257 Add a 64 bit specialization of low_bits_mask_t. Fixes #4332
[SVN r62756]
2010-06-10 19:49:34 +00:00
John Maddock
ca84baa55d Update Boost.Integer meta-programming classes to work with intmax_t where possible - ie to be 64-bit clean.
Added quickbook based docs - updated as necessary.
Removed old html docs.

[SVN r57926]
2009-11-25 12:38:09 +00:00
John Maddock
285048504c Suppress and/or fix warnings - in particular avoid undefined behaviour in the test cases!
[SVN r57859]
2009-11-23 10:43:00 +00:00
John Maddock
eecbd5276f Reverted Integer back to Release branch state - as per devel-list discussions.
[SVN r57580]
2009-11-11 18:57:24 +00:00
Daniel James
edd638ec91 Use BOOST_STATIC_CONSTANT in static_log2, as g++ 4.0 has problems with enum.
[SVN r54811]
2009-07-08 21:27:05 +00:00
Daryle Walker
2d259a4f3e Added MPL-compatible variants of the integer-mask class templates (and finally make the lowest-bit-group metafunctions work for zero-length bit-groups)
[SVN r47869]
2008-07-29 19:33:20 +00:00
Daryle Walker
f041dc0f0a Added extended-integer support
[SVN r47842]
2008-07-27 17:08:51 +00:00
Douglas Gregor
bfc384a435 License update
[SVN r24180]
2004-07-30 04:46:56 +00:00
Gennaro Prota
0f84fe35da fixed typo in comment
[SVN r23945]
2004-07-22 09:02:43 +00:00
Gennaro Prota
170a352574 new version - more efficient, and with no dependency on numeric_limits<>
[SVN r23829]
2004-07-20 09:49:43 +00:00
Björn Karlsson
c56e4674f8 Update from Daryle
[SVN r14187]
2002-06-19 20:11:17 +00:00
Dave Abrahams
c50993d5d4 Added daryle's missing files
[SVN r11971]
2001-12-07 12:48:20 +00:00