111
|
1 // { dg-do run }
|
|
2 template<double functionToIntegrate(double)>
|
|
3 double integrate(double a, double b, int numSamplePoints)
|
|
4 {
|
|
5 // PRECONDITION(numSamplePoints > 1);
|
|
6 double delta = (b-a) / (numSamplePoints-1);
|
|
7 double sum = 0.;
|
|
8 for (int i=0; i < numSamplePoints; ++i)
|
|
9 sum += functionToIntegrate(a + i*delta);
|
|
10 return sum * (b-a) / numSamplePoints;
|
|
11 }
|
|
12
|
|
13 inline double myFunction(double x)
|
|
14 {
|
|
15 return 1 / (1 + x);
|
|
16 }
|
|
17
|
|
18 // Example use
|
|
19 int main() {
|
|
20 double z = integrate<myFunction>(0.0, 1.0, 50);
|
|
21 return 0 ;
|
|
22 }
|
|
23
|