tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Fast fixed division / remainder support


> Hi all,
> one of the slower parts of the cdb implementation are the computation of
> the three remainder. There are well-known algorithms for replacing
> division by constant with multiplication and shifts.
> A small test shows that the resulting algorithm is consistently between
> 30% and 60% faster than a plain % if the (small) overhead of the
> precomputation is not counted.
> What do you think about adding something like sys/divide.h or extending
> sys/bitops.h with three macros:
>       fast_divide_prep(d, m, s1, s2)
>       fast_divide(q, d, m, s1, s2)
>       fast_remainder(q, d, m, s1, s2)
> The first function does the precomputation, the other two compute q / d
> and q % d. Comments?
> Joerg

please use upper case names if they do something which can't be done
if they were functions.  eg. assign results to some of args

sorry for commenting only about a cosmetic thing.


Home | Main Index | Thread Index | Old Index