On Tue, 6 Mar 2012, Niels Möller wrote:

Marc Glisse <marc.gli...@inria.fr> writes:

Note that mpir is replacing signed/unsigned long by two typedefs that
can be defined as (unsigned) long long on _LONG_LONG_LIMB platforms.
That works around the problem too...

(actually they don't seem to have released that yet, they are just experimenting)

But the point of the _ui and _si functions, as I understand them, is to
make it safe and easy to pass values between code using GMP and code
which is unaware of GMP types.

One can have alternative functions accepting mp_limb_t and
mp_limb_signed_t, if one finds that useful. But for the above reason,
advertising such functions as a substitute for the _ui and _si functions
seems to totally miss the point.

Their main goal is to be able to interact with 64 bit integers on win64.

Imagine that mpz_set_si takes as argument a long long on win64. I can still pass it a long with no problem. Imagine that mpz_get_si outputs a long long. I can still store it safely in a long, because I first called mpz_fits_slong_p to check that it would fit. It doesn't look like I have lost anything.

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

Reply via email to