56 const std::function<
double(
double)>&
f) noexcept
58 const double width = (high - low) /
static_cast<double>(n);
60 double simpson_integral = 0.0;
61 for (
uint32 step = 0; step < n; ++step)
63 const double x1 = low +
static_cast<double>(step) * width;
64 const double x2 = low +
static_cast<double>(step + 1) * width;
66 simpson_integral += (x2 - x1) / 6.0 * (
f(x1) + 4.0 *
f(0.5 * (x1 + x2)) +
f(x2));
69 return simpson_integral;
double simpson(const double low, const double high, const uint32 n, const std::function< double(double)> &f) noexcept
Definition: simpson.hpp:53
dtype f(GeneratorType &generator, dtype inDofN, dtype inDofD)
Definition: f.hpp:58
Definition: Coordinate.hpp:45
std::uint32_t uint32
Definition: Types.hpp:40