http://benji3up2kxewkqfcq7buxk2xd6zwy3zggnurkrm3l4cvwy2iipvyyad.onion/mirrors/gmpdoc/Integer-Internals.html
_mp_alloc _mp_alloc is the number of limbs currently allocated at _mp_d ,
and normally _mp_alloc >= ABS(_mp_size) . When an mpz routine
is about to (or might be about to) increase _mp_size , it checks _mp_alloc to see whether there’s enough space, and reallocates if not. MPZ_REALLOC is generally used for this. mpz_t variables initialised with the mpz_roinit_n function or
the MPZ_ROINIT_N macro have _mp_alloc = 0 but can have a
non-zero _mp_size .