| // { dg-do run } | |
| template<double functionToIntegrate(double)> | |
| double integrate(double a, double b, int numSamplePoints) | |
| { | |
| // PRECONDITION(numSamplePoints > 1); | |
| double delta = (b-a) / (numSamplePoints-1); | |
| double sum = 0.; | |
| for (int i=0; i < numSamplePoints; ++i) | |
| sum += functionToIntegrate(a + i*delta); | |
| return sum * (b-a) / numSamplePoints; | |
| } | |
| inline double myFunction(double x) | |
| { | |
| return 1 / (1 + x); | |
| } | |
| // Example use | |
| int main() { | |
| double z = integrate<myFunction>(0.0, 1.0, 50); | |
| return 0 ; | |
| } | |