For function A below, I get a different result when I use est += XXX as compared to using est = est + XXX. The former gives a result of 1.33227e-15 while the latter gives a result of 8.88178e-16.
On the other hand, for function B below, I get the same result regardless of whether I use est += XXX or est = est + XXX.
Would anyone be able to explain why x+=y is equivalent to x=x+y in function B but not in A?
function A
double A(int nTerm){
const double PI = 3.141592653589793238463;
double est = 0;
double counter = 0;
do {
est += ( 16 * pow(-1,counter) )/ (2*counter+1) * pow((double)1/5, 2*counter+1)
- ( 4 * pow(-1,counter) )/ (2*counter+1) * pow((double)1/239, 2*counter+1);
counter++;
} while (counter<=nTerm);
return est-PI;
}
function B
double B(int nTerm){
double est = 0;
double counter = 0;
do {
est += counter;
counter++;
} while (counter<=nTerm);
return est;
}