rendered paste body#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <omp.h>
int
main (int argc, char *argv[])
{
int i, n;
double pi, h, sum, dx, x;
double a = M_PI / 8;
double b = M_PI * 5 / 8;
/* N como argumento o exit */
if (argc < 2)
{
printf ("Usage: ./open_simpson n \n");
return 1;
}
n = atoi (argv[1]);
dx = (b - a) / n;
/* Valores punta */
sum = sin (a) + sin (b);
#pragma omp parallel for reduction(+:sum)
for (i = 1; i < n; i++)
if (i % 2 == 0)
sum = sum + (2 * sin (a + dx * i));
else
sum = sum + (4 * sin (a + dx * i));
sum = sum * dx / 3;
printf ("\nOPENMP - Simpson's Rule\n\n");
printf ("Resultados\n");
printf ("==========\n");
printf ("Num threads = %d\n", omp_get_max_threads());
printf ("a = %1.5lf\n", a);
printf ("b = %1.5lf\n", b);
printf ("n = %d\n", n);
printf ("dx = %1.5lf\n", dx);
printf ("Total = %1.32lf\n", sum);
return 0;
}