// Computation of PI iteratively // WRONG version, wrong result #include #include #include static long num_steps = 10000000; double step; void main () { int i; double x, pi, sum = 0.0; printf("WRONG\n"); step = 1.0/(double) num_steps; #pragma omp parallel for for (i=0;i< num_steps; i++){ x = (i+0.5)*step; // WRONG: concurrent updating of sum = sum + 4.0/(1.0+x*x); // x and sum } pi = step * sum; printf("pi=%lf\n", pi); }