FAST_DIVIDE32(3) | Library Functions Manual | FAST_DIVIDE32(3) |
uint32_t
fast_divide32(uint32_t v, uint32_t div, uint32_t m, uint8_t s1, uint8_t s2);
uint32_t
fast_remainder32(uint32_t v, uint32_t div, uint32_t m, uint8_t s1, uint8_t s2);
void
fast_divide32_prepare(uint32_t div, uint32_t *m, uint8_t *s1, uint8_t *s2);
uint32_t a, b, q, r, m; uint8_t s1, s2; fast_divide32_prepare(b, &m, &s1, &s2); q = fast_divide32(a, b, m, s1, s2); r = fast_remainder32(a, b, m, s1, s2);
Torbjörn Granlund and Peter L. Montgomery, Division by Invariant Integers Using Multiplication, ACM SIGPLAN Notices, Issue 6, Volume 29, 61-72, June 1994, http://gmplib.org/~tege/divcnst-pldi94.pdf.
May 10, 2011 | NetBSD 6.1 |