All pastes #1421192 Raw Edit

Stuff

public text v1 · immutable
#1421192 ·published 2009-05-13 02:32 UTC
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;
}