Remove old_size argument from gmp_realloc and gmp_free |
cleanness; less confusing interface; very slight speedup |
✓ |
✓ |
Somehow extend allocation interface to support
efficient _mpz_newalloc |
performance; useless to have realloc copy data which will
not be used
| ✓ |
✓ |
Clean up gmp_randstate_t struct from apparent mpz
dependencies, unused fields |
cleanness; memory use; allow randstate-based mpn functions |
|
✓ |
Add return value to mpz_sqrt (analogous to
mpz_root ) |
usefulness |
✓ |
|
Add return value to mpz_gcd and mpz_gcdext , to
indicate if inputs are coprime. Allow null gcd output argument. |
usefulness; for usecases which don't care about the
actual gcd, e.g., mpz_invert
| ✓ |
|
Clean up *_str functions to forbid spaces |
sense |
|
|
Allow for mpz operands of up to 250 by
combining the _mp_size and _mp_alloc fieds into one 64-bit
bitfield, encoding _mp_alloc as a custom float. |
usefulness |
✓ |
✓ |
Add unsigned long
long functions, mpX_func_uj . (Note that this
requires C99 for library compilation, while we should allow user code
to be compiled by any C90 compiler but then #define away
the uj interfaces.)
| usefulness |
✓ |
✓ |
Consider making mp_bitcnt_t a 64-bit integer also on
32-bit hosts.
| avoiding overflow for certain interfaces for otherwise in-range
numbers |
✓ |
✓ |
Consider changing return value for gmp_*printf*
from int to long . Likewise, change * width
arguments' type.
| allow printing of huge numbers while still returning sensible
values.
| ✓ |
✓ |