Heliyon (Jun 2021)
Integer division by constants: optimal bounds
Abstract
The integer division of a numerator n by a divisor d gives a quotient q and a remainder r. Optimizing compilers accelerate software by replacing the division of n by d with the division of c⁎n (or c⁎n+c) by m for convenient integers c and m chosen so that they approximate the reciprocal: c/m≈1/d. Such techniques are especially advantageous when m is chosen to be a power of two and when d is a constant so that c and m can be precomputed. The literature contains many bounds on the distance between c/m and the divisor d. Some of these bounds are optimally tight, while others are not. We present optimally tight bounds for quotient and remainder computations.