hgcd1/2

Niels Möller nisse at lysator.liu.se
Tue Sep 17 18:35:39 UTC 2019


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

> What are the specs for div2?
>
> Surely n1 > 0 and d1 > 0.

All variants need d1 > 0, method 2 also needs n1 > 0 (for
count_leading_zeros).

> Also N >= D?

Method 2 needs clz(n1) <= clz(d1). Besides that, I think they can handle
N < D, i.e., q == 0.

> Does the new div2 always compute the "accurate" quotient,
> i.e., with the remainder R < D?

Yes. If the adjustment step in methos 1 were skipped, it would still
give R < D, but occasionally underflow with R < 0.

> I'm asking as I believe strongly in unit testing of these types of
> non-trivial idioms.  :-)

Unit tests would be nice. I think the tests/mpz/t-gcd.c does exercises
the large quotient cases.

BTW, I wonder if it makes sense with HGCD2_DIV2_METHOD == 3 similar to
HGCD2_DIV1_METHOD == 3, with special handling of q <= 7 but no looping?

Regards,
/Niels

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


More information about the gmp-devel mailing list