Subj : Re: faster approach to division To : comp.programming From : Mark P Date : Tue Jul 12 2005 08:29 pm goose wrote: > Mark P wrote: > >> I'm working on a problem which involves a fair amount of integer >> division but in essentially all cases the divisor is +/- 1 or +/- 2. >> I'm using C++ and trying to figure out whether I should code this as >> just ordinary division or whether it makes sense to create a special >> class (basically a wrapped enumeration) to hold my possible divisor >> values. Then I would overload operator/() to recast division as a >> null operation or a sign flip and/or right shift. >> >> Anyone have any intuition on this? I've tried a few very simple tests >> comparing division and shifting and it's hard to discern a difference, >> but I'm not sure my tests are very effective. (Are modern machines >> optimized to divide by 1 and 2 quickly?) >> >> Thanks for your advice, >> Mark > > > I've had need for something similar in the past, I've found > that the fastest way for me to do it was by #define a macro > to do the division. I assume then that the divisor was known to you at compile time. My situation is more like: x / f(...) where f(...) will always return +/-1 or +/-2, determined at run time. .