From 9a21d2e070c9ee0ef2c003f3a668e635c6ae4401 Mon Sep 17 00:00:00 2001 From: Damien George Date: Sat, 6 Sep 2014 17:15:34 +0100 Subject: py: Make mpz able to use 16 bits per digit; and 32 on 64-bit arch. Previously, mpz was restricted to using at most 15 bits in each digit, where a digit was a uint16_t. With this patch, mpz can use all 16 bits in the uint16_t (improvement to mpn_div was required). This gives small inprovements in speed and RAM usage. It also yields savings in ROM code size because all of the digit masking operations become no-ops. Also, mpz can now use a uint32_t as the digit type, and hence use 32 bits per digit. This will give decent improvements in mpz speed on 64-bit machines. Test for big integer division added. --- tests/basics/int_big_div.py | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 tests/basics/int_big_div.py (limited to 'tests') diff --git a/tests/basics/int_big_div.py b/tests/basics/int_big_div.py new file mode 100644 index 000000000..8dacf495d --- /dev/null +++ b/tests/basics/int_big_div.py @@ -0,0 +1,3 @@ +for lhs in (1000000000000000000000000, 10000000000100000000000000, 10012003400000000000000007, 12349083434598210349871029923874109871234789): + for rhs in range(1, 555): + print(lhs // rhs) -- cgit v1.2.3