speed of mpq_cmp vs mpq_sub

Torbjörn Granlund tg at gmplib.org
Sun May 22 15:44:26 UTC 2016


Marc Glisse <marc.glisse at inria.fr> writes:

  Yes, the exact constant doesn't change much. Essentially, mpq_sub is
  done in linear time: gcd can be computed with just a few subtractions,
  divexact can be done in constant time since the output has constant
  size, and all we have left are some linear-time mul_1 and sub. And cmp
  takes whatever time mul takes. I just hope this case is rare enough.

Yep, the gcd call becomes very fast, I just noticed that.

I suppose we could do something fancy in cmp with stripping high parts
of the numerators and denominators when they match (highpart(num1) =
highpart(num2), and highpart(den1) = highpart(den2)) before we
cross-multiply.

-- 
Torbjörn
Please encrypt, key id 0xC8601622


More information about the gmp-discuss mailing list