Nick Thompson 
							
						 
					 
					
						
						
							
						
						cd60c4c9f9 
					 
					
						
						
							
							[CI SKIP] Disable multiprecision in certain compilers.  
						
						
						
						
					 
					
						2018-10-29 08:52:20 -06:00 
						 
				 
			
				
					
						
							
							
								Nick Thompson 
							
						 
					 
					
						
						
							
						
						de0d24733b 
					 
					
						
						
							
							Remove dependency on boost/typeindex in tests.  
						
						
						
						
					 
					
						2018-10-26 19:23:11 -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 
							
						 
					 
					
						
						
							
						
						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 
						 
				 
			
				
					
						
							
							
								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 
						 
				 
			
				
					
						
							
							
								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 
						 
				 
			
				
					
						
							
							
								pabristow 
							
						 
					 
					
						
						
							
						
						175a1caa58 
					 
					
						
						
							
							Placed GCD and LCM typdefs and declarations in integer_fwd.hpp inside namespace boost::integer (was in boost::math) and checked that expected tests pass (and expected fails fail).  
						
						... 
						
						
						
						(Major update to Boost.Integer docs available for review at https://dl.dropboxusercontent.com/u/43940943/modular-boost/libs/integer/index.html 
on branch doc-revision). 
						
						
					 
					
						2015-01-29 11:53:02 +00:00 
						 
				 
			
				
					
						
							
							
								Vicente J. Botet Escriba 
							
						 
					 
					
						
						
							
						
						a12b96c011 
					 
					
						
						
							
							manage with  #4881 .  
						
						
						
						
					 
					
						2015-01-25 17:11:04 +01:00 
						 
				 
			
				
					
						
							
							
								Vicente J. Botet Escriba 
							
						 
					 
					
						
						
							
						
						7ffb75bb43 
					 
					
						
						
							
							manage with  #6694  Boost.Integer part.  
						
						
						
						
					 
					
						2015-01-25 17:03:09 +01:00 
						 
				 
			
				
					
						
							
							
								Peter Dimov 
							
						 
					 
					
						
						
							
						
						c5370a9705 
					 
					
						
						
							
							Fix ambiguous 'detail' errors under msvc-8.0.  
						
						
						
						
					 
					
						2015-01-18 20:04:09 +02: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 
						 
				 
			
				
					
						
							
							
								Stephen Kelly 
							
						 
					 
					
						
						
							
						
						b70c89a3ff 
					 
					
						
						
							
							Remove BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION  
						
						... 
						
						
						
						Process #ifndef...#else...#endif blocks.
[SVN r86245] 
						
						
					 
					
						2015-01-13 19:41:33 +02:00 
						 
				 
			
				
					
						
							
							
								John Maddock 
							
						 
					 
					
						
						
							
						
						72b569f84f 
					 
					
						
						
							
							MSVC warning suppression.  
						
						... 
						
						
						
						[SVN r69509] 
						
						
					 
					
						2015-01-13 19:41:31 +02:00 
						 
				 
			
				
					
						
							
							
								John Maddock 
							
						 
					 
					
						
						
							
						
						ce4bd6cc98 
					 
					
						
						
							
							Fix signed/unsigned comparison warnings when char is unsigned.  
						
						... 
						
						
						
						[SVN r63496] 
						
						
					 
					
						2015-01-13 19:41:31 +02:00 
						 
				 
			
				
					
						
							
							
								John Maddock 
							
						 
					 
					
						
						
							
						
						d38557f5f3 
					 
					
						
						
							
							Make the compile time gcd facilities work with greatest integer types, and be mpl compatible.  
						
						... 
						
						
						
						[SVN r63408] 
						
						
					 
					
						2015-01-13 19:41:30 +02:00 
						 
				 
			
				
					
						
							
							
								John Maddock 
							
						 
					 
					
						
						
							
						
						5174291e08 
					 
					
						
						
							
							Fix failures when used with an expression-template enabled number type such as the gmpxx clases. Add additional concept check for integer code using gmp classes.  Fixes   #4139 .  
						
						... 
						
						
						
						[SVN r61837] 
						
						
					 
					
						2015-01-13 19:41:29 +02:00 
						 
				 
			
				
					
						
							
							
								Daryle Walker 
							
						 
					 
					
						
						
							
						
						7c528c325e 
					 
					
						
						
							
							Tweaked files to pass inspection report; one file had some min/max violations; but all had to have 'boostinspect:nolicense' set because a copyrighter, Paul Moore, has disappeared, so his files can never be changed to the main Boost license  
						
						... 
						
						
						
						[SVN r47847] 
						
						
					 
					
						2015-01-13 19:41:29 +02:00 
						 
				 
			
				
					
						
							
							
								John Maddock 
							
						 
					 
					
						
						
							
						
						e20431e713 
					 
					
						
						
							
							Changed long long to boost::long_long_type and unsigned long long to boost::ulong_long_type. A couple of other typo corrections, to get the code compiling with g++ -pedantic.  
						
						... 
						
						
						
						[SVN r44877] 
						
						
					 
					
						2015-01-13 19:41:27 +02:00 
						 
				 
			
				
					
						
							
							
								John Maddock 
							
						 
					 
					
						
						
							
						
						307fee457a 
					 
					
						
						
							
							Fix Borland infinite looping issue.  
						
						... 
						
						
						
						[SVN r39723] 
						
						
					 
					
						2015-01-13 19:41:27 +02:00 
						 
				 
			
				
					
						
							
							
								Daryle Walker 
							
						 
					 
					
						
						
							
						
						80b59192ae 
					 
					
						
						
							
							Made the GCD specializations for '(unsigned) long long' and '(unsigned) __int64' mutually exclusive, following the lead of <boost/cstdint.hpp>.  
						
						... 
						
						
						
						[SVN r35999] 
						
						
					 
					
						2015-01-13 19:41:25 +02:00 
						 
				 
			
				
					
						
							
							
								Daryle Walker 
							
						 
					 
					
						
						
							
						
						1f5f827a5e 
					 
					
						
						
							
							Changed GCD for built-in integer types to use the binary-GCD algorithm  
						
						... 
						
						
						
						[SVN r35850] 
						
						
					 
					
						2015-01-13 19:41:25 +02:00 
						 
				 
			
				
					
						
							
							
								Daryle Walker 
							
						 
					 
					
						
						
							
						
						c041451a54 
					 
					
						
						
							
							Added missing 'typename'  
						
						... 
						
						
						
						[SVN r27219] 
						
						
					 
					
						2015-01-13 19:41:23 +02:00 
						 
				 
			
				
					
						
							
							
								John Maddock 
							
						 
					 
					
						
						
							
						
						791b547d25 
					 
					
						
						
							
							Changed files to BSL based on permissions in blanket-permission.txt  
						
						... 
						
						
						
						[SVN r25451] 
						
						
					 
					
						2015-01-13 19:41:22 +02:00 
						 
				 
			
				
					
						
							
							
								Douglas Gregor 
							
						 
					 
					
						
						
							
						
						cd696b2f6a 
					 
					
						
						
							
							License update  
						
						... 
						
						
						
						[SVN r24180] 
						
						
					 
					
						2015-01-13 19:41:22 +02:00