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