GMP floor and ceil

Torbjorn Granlund tg at swox.com
Sat Nov 29 23:17:52 CET 2008


"Sarad AV" <esarad at gmail.com> writes:

  I have the following requirement. a, b are positive integers and a>b.
  To find Floor( a/b ) and Ceil ( a/b ) efficiently, when b does not divide
  a.
  
  I am aware that gmp has floor and ceil functions. Where can I find the
  algorithm used by GMP to find floor and ceil for the above case?

Are you asking how GMP performs division with rounding towards +oo and
-oo?

It first computes floor(|a|/|b|) and the corresponding remainder.  Then,
from the sign of a and b, and whether the remainder is zero, it adjusts
the quotient.

I suppose the exact rules are actually easiest to see in the source
code, see mpz/*div_q.c.  These files are really small.

-- 
Torbjörn


More information about the gmp-discuss mailing list