Skip to content

num::trapz

Defined in header <quadrature/quadrature.hpp>

template <bool Parallel = false, typename Float = double,
          std::invocable<Float> Func = scalar_fn>
Float trapz(Func &&f, Float a, Float b, idx n = 100);

Composite Trapezoidal numerical integration over \([a, b]\) with \(n\) panels.

Computes \(\int_a^b f(x)\,\mathrm{d}x \approx h \left( \frac{f(a)+f(b)}{2} + \sum_{i=1}^{n-1} f(a+ih) \right)\) with \(\mathcal{O}(h^2)\) error.

Template parameters

  • Float: Floating point scalar type (double, float).
  • Func: Integrand callable Float(Float x).
  • Parallel: Thread the panel sum with OpenMP (default: sequential).

Parameters

  • f: Integrand function.
  • a: Lower integration limit.
  • b: Upper integration limit.
  • n: Number of uniform subintervals / panels (default: 100).

Return value

Approximated integral value.

See also

simpson, gauss_legendre, romberg