On Thu, 6 Feb 2014, Niels Möller wrote:

ni...@lysator.liu.se (Niels Möller) writes:

For mpn_set_d, I think it would make some sense to have it return a
base-2 exponent, and write the mantissa to a few limbs. Number of limbs
would be a constant, part of the ABI, similar to LIMBS_PER_DOUBLE but
renamed for external use.

  mp_bitcnt_t
  mpn_set_d (mp_limb_t rp[LIMBS_PER_BOUBLE], d);

Below is a patch to do this (and return value is long, not mp_bitcnt_t,
since it needs to be signed).

Thanks.

What do you think?

(I haven't looked at it much yet)

Why not return int, since int is what we use for _mp_size?

Is 53 really safe for non-IEEE double? Maybe something based on DBL_MANT_DIG, assuming that FLT_RADIX==2?

I don't think we are still supporting gcc-2.8...

From a performance POV, it may not be optimal to split the
sign/infinity/nan/zero test from the rest, but I agree it makes the interface simpler.

+   ASSERT (d != 0.5*d);        /* Exclude infinities */

That excludes more than infinities, it might also exclude FLT_TRUE_MIN, no?

--
Marc Glisse
_______________________________________________
gmp-devel mailing list
gmp-devel@gmplib.org
https://gmplib.org/mailman/listinfo/gmp-devel

Reply via email to