Obtaining the number of mantissa bits in use by an mpf

Torbjorn Granlund tg at gmplib.org
Fri May 14 14:52:59 CEST 2010

John Westwood <john at westwoodsolutions.com> writes:

  I was wondering if you could help me with my problem. I wish to be able to 
  obtain the numbers of mantissa bits in use by an mpf variable. In the manual, 
  near the beginning of chapter 7, it states:
  "Each variable keeps a size for the mantissa data actually in use. This means 
  that if a float is exactly represented in only a few bits then only those bits 
  will be used in a calculation, even if the selected precision is high."
  I would to retrieve this size, but I see no function for doing so. The mpz 
  variable has an mpz_sizeinbase function, but I see no equivalent for mpf.
There is no way, since we didn't see the need.

As mpf works, the same number could be stored in different ways, i.e.,
the number 17 could take 128 bits after one calculation and 64 bits
after another.

You may get the *precision* used for calculations whose result is
written to a variable using mpf_get_prec.

  I cannot use this method for arbitrary precision, because GMP has no log 
You may want to look into mpfr.  It is an add-on package for GMP which
the GMP developers recommend.


More information about the gmp-discuss mailing list