Mark Sofroniou <ma...@wolfram.com> writes: > If the quotient will be one word shorter than the dividend then set > the top word to zero: > > if ((divisor & 1) == 0) > { > if ((dst != src) && (src[size - 1] < divisor)) dst[size - 1] = 0; > ...
I don't understand. Doesn't the current loop always write all quotient limbs, including dst[size-1]? And why the condition (dst != src) ??? > If the divisor is a power of two then skip the division code and > just shift or copy: Low-level gmp functions, like this one, usually don't do that type of optimizations. The caller can do that check, if powers of two are likely enough that it matters. And I magine constant d is an important usecase. Furthermore, this function is implemented in assembly on several platforms, and adding a power-of-two check and a call to mpn_rshift to all implementations of mpn_divexact_1 would get a bit messy. Regards, /Niels -- Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26. Internet email is subject to wholesale government surveillance. _______________________________________________ gmp-devel mailing list gmp-devel@gmplib.org http://gmplib.org/mailman/listinfo/gmp-devel