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