#include <dpce.h> #include <stdio.h> #include "assert.h" #define SIZE 10000 shape [SIZE] span; double fabs(double); main () { double sum; /* Sum of areas */ double width; double:span x; /* Midpoint of rectangle on x axis */ /* the pcoord function generates the sequence of 0...SIZE-1 */ /* in the statement below, the assignments occur in parallel are: [0]x = ( 0 + 0.5 ) * 1.0 / SIZE; [1]x = ( 1 + 0.5 ) * 1.0 / SIZE; ... [SIZE-1]x = ( SIZE-1 + 0.5 ) * 1.0 / SIZE; */ x = (pcoord (span,0)+0.5) * 1.0 / SIZE; /* The sum of all the elements of (4.0/(1.0 + [0..SIZE-1]x * [0..SIZE-1]x) ) */ sum = (+= (4.0/(1.0+x*x))); sum *= 1.0/SIZE; printf ("Estimation of pi is %14.12f\n", sum); assert (fabs (sum - 3.141592) < 0.00001); }
... int j; double sum; double width; double x[SIZE]; for ( j=0; j < SIZE; j++ ) x[j] = ((j + 0.5) * 1.0) * 1.0/SIZE; sum = 0; for ( j=0; j < SIZE; j++ ) sum = sum + 4.0 / (1.0 + x[j] * x[j]); sum *= 1.0 / SIZE; printf( "Estimation of pi is %14.12f\n", sum ); assert (fabs (sum - 3.141592) < 0.00001);
Options:
©1995 Pacific-Sierra Research Corporation. All rights reserved.
Send comments or suggestions to dpce2 at crescentbaysoftware.com.