Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/gomp/appendix-a/a.12.1.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* { dg-do compile } */ #include <stdio.h> extern float average (float, float, float); void a12 (float *x, float *xold, int n, float tol) { int c, i, toobig; float error, y; c = 0; #pragma omp parallel { do { #pragma omp for private(i) for (i = 1; i < n - 1; ++i) { xold[i] = x[i]; } #pragma omp single { toobig = 0; } #pragma omp for private(i,y,error) reduction(+:toobig) for (i = 1; i < n - 1; ++i) { y = x[i]; x[i] = average (xold[i - 1], x[i], xold[i + 1]); error = y - x[i]; if (error > tol || error < -tol) ++toobig; } #pragma omp master { ++c; printf ("iteration %d, toobig=%d\n", c, toobig); } } while (toobig > 0); } }