void func(double x[], double a, int n)
{
int i;
double b;
for (i=1; i<n; i++) {
b=a*x[i]+x[i-1];
x[i]=b;
}
}Solución: No se puede. En cada iteración se tiene como salida x[i], que es dato de entrada de la siguiente iteración (dependencia de flujo).
void func(double x[], double y[], double a, int n)
{
int i;
double b;
for (i=1; i<n; i++) {
b=a*x[i]+x[i-1];
y[i]=b;
}
}Solución: Sí se puede, añadiendo la siguiente directiva justo antes del bucle for:
#pragma omp parallel for private(b)