1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
/* { dg-options "-O1 -floop-parallelize-all" } */ double lagrange(const double x[], const double y[], long n, double xval) { long i, j; double yval = 0.; for( i=0; i < n; i++ ) { double l = 1.; for( j=0; j < n; j++ ) if( i != j ) l *= (xval-x[j])/(x[i]-x[j]); yval += y[i]*l; } return yval; }