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 
							
						 
					 
					
						
						
							
						
						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 
						 
				 
			
				
					
						
							
							
								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