Commit Graph

378 Commits

Author SHA1 Message Date
Nick Thompson f6525ae186 (Hopefully) green up build by giving path to Boost.Test. 2018-10-26 17:11:28 -06:00
Nick Thompson e0646cb7ec Add template argument to green up build. Remove discrete log as we do not have an overflow-resistant mul_mod in boost. 2018-10-26 16:58:30 -06:00
Nick Thompson 3632ae43b2 Update docs. [CI SKIP] 2018-10-26 12:05:47 -06:00
Nick Thompson 2d463f3ee7 a*p % m may overflow, do not perform naive multiplication in unit tests or undefined behavior may result. [CI SKIP] 2018-10-26 11:19:43 -06:00
Nick Thompson 3f1603938c Revert change as the previous algorithm overflows for all inputs >= half the bit length of the type. 2018-10-25 18:05:14 -06:00
Nick Thompson 54d0e4c63e [ci skip] Trade out algorithm from 'The Joy of Factoring' to Wikipedia's version which reduces the number of required temporaries. In fact, the speedup is not large, but the code is more compact, and for larger types, the difference becomes more noticeable. 2018-10-25 14:28:39 -06:00
Nick Thompson 87e5b365d8 Return custom struct from extended Euclidean algorithm rather than tuple. Reduce number of operations for tests to reduce CI system workload. Disable discrete log tests until we have time to figure out why they are failing. 2018-10-25 09:38:16 -06:00
Nick Thompson ada03a59d7 Remove dependency on boost.format, remove unfettered use of auto in order to move towards C++03 compatibility, use BOOST_THROW_EXCEPTION. 2018-10-24 14:29:22 -06:00
Nick Thompson 9167594533 Merge branch 'develop' of https://github.com/boostorg/integer into develop 2018-10-24 13:11:30 -06:00
Andrey Semashev 1c586d6dd0 Merge pull request #13 from NAThompson/deprecate_pending_3
[ci skip] Deprecate boost/pending/integer_log2.hpp
2018-10-24 17:59:09 +03:00
Andrey Semashev 6a97e49614 Added a readme. Added myself as a maintainer. 2018-10-24 17:56:15 +03:00
Nick Thompson 661986dd3d [ci skip] Deprecate boost/pending/integer_log2.hpp 2018-02-11 12:32:14 -06:00
Nick Thompson faa61cd911 [ci skip] It is *not* the case that a discrete log exists when the base and modulus are coprime. Take 4^x = 2 mod 5 as a counterexample. Change API accordingly. 2018-02-10 17:51:59 -06:00
Nick Thompson 4f4f3eda37 [ci skip] Fix docs to use less verbose names for modular multiplicative inverse (mod_inverse) 2018-02-10 16:07:17 -06:00
Nick Thompson b3966428c4 [ci skip] Add test of short int to see if there's any obvious places for overflow (none are obvious, but no guarantees they still aren't there). Print basic information about the test to console so that failures are easier to track down. 2018-02-10 13:56:11 -06:00
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
Glen Fernandes 919c5277c1 Merge pull request #10 from Lastique/patch-2
Correct make_odd return type inconsistency
2017-08-27 12:07:50 -04: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
jzmaddock 10026d9b6f Disable some tests on older compilers that we know won't pass. 2017-06-09 19:47:18 +01:00
jzmaddock 3e84cde165 Merge branch 'develop' of https://github.com/boostorg/integer into develop 2017-06-09 14:52:03 +01:00
jzmaddock 5c129565d5 CI: add missing appveyor dependency 2017-06-09 14:51:50 +01:00
jzmaddock 9a26557f38 Merge pull request #7 from DanielaE/fix/narrowing
fix narrowing warnings due to integer promotion.
2017-06-08 19:25:00 +01: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 6662dbdbbd CI: Fix appveyor bjam arguments. 2017-06-04 08:02:14 +01:00
jzmaddock 81a7c92b6c CI: Add missing dependency to utility. 2017-06-01 08:48:02 +01:00
jzmaddock 4406ec8039 Merge branch 'develop' of https://github.com/boostorg/integer into develop 2017-05-31 18:45:28 +01:00
jzmaddock 8e63e7f284 CI: Add more testers and minimise dependencies. 2017-05-31 18:45:16 +01:00
John Maddock 0c956331a0 Fix gmp test failures 2017-05-09 19:52:20 +01:00
jzmaddock 943d63e309 Fix use of check-target-builds in Jamfile. 2017-05-09 18:03:03 +01: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 9c75396c05 Fix more explicit instantiations in test cases. 2017-04-26 19:11:18 +01:00
jzmaddock 7c0151c93a Enumerators don't need a final , in their list. 2017-04-26 18:30:11 +01:00
jzmaddock 52e2dba49b Merge branch 'develop' of https://github.com/boostorg/integer into develop 2017-04-26 18:24:22 +01:00
jzmaddock 395735a193 Add tests for multiprecision types and fix test program to still compile. 2017-04-26 18:24:09 +01:00
Peter Dimov 240b96ddec Add appveyor.yml 2017-04-25 17:26:57 +03:00
jzmaddock 6af0e7ee85 Merge branch 'develop' of https://github.com/boostorg/integer into develop 2017-04-24 19:20:02 +01:00
jzmaddock 4991d82385 Need to take abs of return value in short-circuit gcd code. 2017-04-24 19:19:48 +01:00
Peter Dimov 2b133e8ea8 Merge branch 'develop' of https://github.com/boostorg/integer into develop 2017-04-24 21:08:11 +03:00
Peter Dimov 55e81c5ba7 Fetch test dependencies in .travis.yml 2017-04-24 21:07:48 +03:00
jzmaddock 52ce75ed65 Merge branch 'develop' of https://github.com/boostorg/integer into develop
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2017-04-24 18:52:16 +01:00
jzmaddock 3e43dd6fc2 Update history. 2017-04-24 18:50:19 +01:00
Peter Dimov b2dcad8daf Add .travis.yml 2017-04-24 20:49:14 +03: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 efb84707f0 Update docs to match new gcd/lcm code. 2017-04-24 13:01:57 +01:00