Lazy mpz allocation

Niels Möller nisse at lysator.liu.se
Mon Aug 31 20:13:46 UTC 2015


tg at gmplib.org (Torbjörn Granlund) writes:

> Unfortunately, the manual sayd "Initialize x, and set its value to 0."
> about mpz_init.

Sure, but we could do

  static const mp_limb_t dummy_limb = 0xc0dedead;

  void mpz_init (mpz_t x)
  {
    x->_mp_size = x->_mp_alloc = 0;
    x->_mp_d = &dummy_limb;
  }

It still represents the number zero, it's just that _mp_d[0] points to a
dummy limb which happens to be far from zero.

Regards,
/Niels

-- 
Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
Internet email is subject to wholesale government surveillance.


More information about the gmp-devel mailing list