Commit Graph

9 Commits

Author SHA1 Message Date
de0d24733b Remove dependency on boost/typeindex in tests. 2018-10-26 19:23:11 -06:00
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
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
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
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
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
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
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
fc4d657201 [ci skip] Modular exponentiation, modular multiplicative inverse, extended Euclidean algorithm, discrete logarithm. 2018-01-28 14:47:14 -06:00