#include "oo/Function.h" #include "oo/MidpointIntegrator.h" namespace integrators { namespace oo { // MidpointIntegrator implementation MidpointIntegrator::MidpointIntegrator () { function_m = 0; } void MidpointIntegrator::setFunction (functions::Function * function_to_integrate) { function_m = function_to_integrate; } double MidpointIntegrator::integrate (double lowBound, double upBound, int count) { double sum = 0.0; double h = (upBound - lowBound) / static_cast < double >(count); for (int i = 0; i < count; i++) { double x = lowBound + h * (i + 0.5); sum = sum + function_m->evaluate (x); } return sum * h; } } }