/* * Calculate the Gregory-Leibniz sum: * * sum_{k=0}^\infty (-1)^k/(2k + 1) = M_PI/4 */ #include #include #define N 10000000 #define NREP 10 double gregory(long n) { double s = 0., sign = 1.; long k; for (k = 0; k <= n; k++) { s += sign/((double) 2*k + 1); sign = -sign; } return(s); } int main(void) { double s; int k; long n = N; for (k = 0; k <= NREP; k++) { s = gregory(n); printf("%20ld %20.14f %20.14f\n", n, s, M_PI/4. - s); n *= 2; } return(0); }