On Thursday, 14 February 2013 at 13:29:07 UTC, John Colvin wrote:
Not internally to the function, no.
In truth, there's no need to do this. Branch prediction
(http://en.wikipedia.org/wiki/Branch_predictor) should reduce
the cost hugely.
Thank you for the link. I will see this and come back.
Also, a comparison is only going to be 1 cycle, saving a single
cycle per second is irrelevant.
For iterating through a ranges of indices in a circular way, I
have seen people coding like
int i=0;
while(true)
{
...
i = (i+1)%10;
}
People argue i = (i+1)%10 is less costly to the combination below.
++i;
if(i==10)
i = 0;
If the comparison instruction takes only one cycle, how is this
argument correct? Please let me know if that argument is
incorrect.
Thanks,
Gopan.