Original loop:
Code:for (unsigned int nn = 1; nn < n; ++nn) { const unsigned int i = nn * 2 + 1; dem *= i * (i - 1); num *= rad * rad; if (nn % 2) res -= num / dem; else res += num / dem; }
If speed is important the above loop can be changed like this,
There are fewer operations and it's now branch-free.Code:for (unsigned int nn = 3; nn < 2*n; nn += 2) { dem *= nn * (nn - 1); num *= -rad*rad; res += num / dem; }





Reply With Quote
