On Sat, 4 Feb 2017, [email protected] wrote:
I recently found out that mpz_tstbit does not always work as expected on Windows. I found this out while using GMP 6.1.1, but looking at the source, it seems like this problem has been around since at least GMP 4.x up to GMP 6.x. The problem occurs when passing a 64-bit index into mpz_tstbit. Since the function uses an unsigned long for the index, the index is truncated to 32-bits on Windows computers and will return incorrect results when the index is >= 2^32.
This is not specific to tstbit. We have a typedef mp_bitcnt_t for bit indices, I believe the reason we haven't changed it to 64 bits on windows is binary compatibility with older versions. Maybe GMP-7 would be a good time to change that...
-- Marc Glisse _______________________________________________ gmp-bugs mailing list [email protected] https://gmplib.org/mailman/listinfo/gmp-bugs
