Jeroen van Rijn
|
dc02566a84
|
big: Add _private_int_div_recursive.
|
2021-08-13 23:45:00 +02:00 |
|
Jeroen van Rijn
|
37be8d4091
|
big: Add internal_invmod.
|
2021-08-13 14:55:53 +02:00 |
|
Jeroen van Rijn
|
f72a0de074
|
big: Add inverse mod.
|
2021-08-13 01:41:33 +02:00 |
|
Jeroen van Rijn
|
07baae04c9
|
Merge pull request #1075 from Kelimion/bigint
Add `core:math/big`, an arbitrary precision library.
|
2021-08-11 21:43:54 +02:00 |
|
Jeroen van Rijn
|
eb22a49b02
|
big: Add int_from_bytes_*.
|
2021-08-11 20:59:54 +02:00 |
|
Jeroen van Rijn
|
ee24f2dd37
|
big: Improve int_to_bytes_*.
|
2021-08-11 20:59:54 +02:00 |
|
Jeroen van Rijn
|
12f9b6db63
|
big: Add int_to_bytes_{big, little} + Python compatible variants.
|
2021-08-11 20:59:54 +02:00 |
|
Jeroen van Rijn
|
851780b8f4
|
big: Add arguments and usage to test.py.
|
2021-08-11 20:59:54 +02:00 |
|
Jeroen van Rijn
|
5f34ff9f9f
|
big: Add _private_int_sqr_toom.
|
2021-08-11 20:59:54 +02:00 |
|
Jeroen van Rijn
|
2b274fefbb
|
big: Add _private_int_sqr_karatsuba.
|
2021-08-11 20:59:54 +02:00 |
|
Jeroen van Rijn
|
6c681b258c
|
big: Add _private_int_sqr_comba.
|
2021-08-11 20:59:54 +02:00 |
|
Jeroen van Rijn
|
1f91a2fe65
|
big: Finish refactor.
|
2021-08-11 20:59:54 +02:00 |
|
Jeroen van Rijn
|
19ff27788c
|
big: Refactoring.
|
2021-08-11 20:59:54 +02:00 |
|
Jeroen van Rijn
|
1ebb0bd9d6
|
big: More refactoring.
|
2021-08-11 20:59:54 +02:00 |
|
Jeroen van Rijn
|
d505a05d36
|
big: More refactoring.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
07dca737f0
|
big: More refactoring.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
6d34a8344a
|
big: Refactor helpers.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
40b7b9ecdf
|
big: Refactor exponents and such.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
53bf66ce1e
|
big: Prettify internal_cmp_digit.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
fd95f50c56
|
big: Split up int_is_* comparison tests.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
777e17d80f
|
big: Improve tunables.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
d4a03acbc3
|
big: Split up int_mod_bits (res = val % (1 << bits))
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
c3db24f834
|
big: Split up gcd + lcm.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
62dcccd7ef
|
big: Move division internals.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
e288a563e1
|
big: Move _mul private functions.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
6298226238
|
big: Switch choose over to internal implementations.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
9321616c80
|
big: Split more into public and internal.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
9890e7cfeb
|
big: Improved zero_unused helper.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
4be48973ad
|
big: Squashed shl1 bug when a larger dest was reused for a smaller result.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
f8442e0524
|
big: Split up mul into internal and public parts.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
9858989b1c
|
big: Split up add and sub into public and internal parts.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
511057ca36
|
big: Improve timing code.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
35d8976de4
|
bit: Optimized int_bitfield_extract.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
463003e86a
|
bit: Improved bitfield extraction.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
85a2a8815e
|
big: Some more work on constants.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
47397a6a48
|
Add faster divison.
|
2021-08-11 20:59:53 +02:00 |
|
Jeroen van Rijn
|
2323ca1622
|
big: Add MATH_BIG_FORCE_64/32_BIT flags.
|
2021-08-11 20:59:52 +02:00 |
|
Jeroen van Rijn
|
fc0a92f8ac
|
big: Add constants.
|
2021-08-11 20:59:52 +02:00 |
|
Jeroen van Rijn
|
97d80d03f9
|
big: Error.None -> nil
|
2021-08-11 20:59:52 +02:00 |
|
Jeroen van Rijn
|
627872db97
|
big: Timed factorial.
|
2021-08-11 20:59:52 +02:00 |
|
Jeroen van Rijn
|
a27612ec6a
|
Add _mul_comba path.
|
2021-08-11 20:59:52 +02:00 |
|
Jeroen van Rijn
|
491e4ecc74
|
big: Add binary split factorial.
|
2021-08-11 20:59:52 +02:00 |
|
Jeroen van Rijn
|
cd0ce7b76e
|
big: Add choose.
|
2021-08-11 20:59:52 +02:00 |
|
Jeroen van Rijn
|
320387c4ee
|
big: Add gcd_lcm fast path in wrapper.
|
2021-08-11 20:59:52 +02:00 |
|
Jeroen van Rijn
|
6424a5a8dd
|
big: Refactored gcm and lcm to use a common function.
|
2021-08-11 20:59:52 +02:00 |
|
Jeroen van Rijn
|
06f5a6c785
|
big: Special case gcd(0,0) + lcm(0,0).
|
2021-08-11 20:59:52 +02:00 |
|
Jeroen van Rijn
|
8b1d8c8453
|
big: Add lcm and its test.
|
2021-08-11 20:59:52 +02:00 |
|
Jeroen van Rijn
|
0028cb0258
|
big: Test gcd.
|
2021-08-11 20:59:52 +02:00 |
|
Jeroen van Rijn
|
b15ee059ad
|
big: Add gcd.
|
2021-08-11 20:59:52 +02:00 |
|
Jeroen van Rijn
|
50feeaa285
|
big: Add test for factorial.
|
2021-08-11 20:59:52 +02:00 |
|