void f(double x[], int n) {
int i;
double b=5;
#pragma omp parallel for private(b)
for (i=0; i<n; i++)
x[i]=b;
}Solución:
Indeterminado, porque la variable privada b no ha sido inicializada. Habría que usar firstprivate o, en este caso, dejar que b sea compartida.
double f(double x[], int n) {
int i;
double aux;
for (i=0; i<n; i++) {
aux = (x[i]*x[i])/2;
x[i] = log(aux);
}
return aux;
}Solución:
Justo antes del for, se añadiría la directiva:
#pragma omp parallel for lastprivate(aux)