#include #include #include #include double Struve1(double z) { std::function S1 = [z](double tt) { return (2.0 / M_PI) * z * std::sqrt(1 - tt * tt) * std::sin(z * tt); }; auto integrand = [&S1](double x) { return S1(x); }; double result = boost::math::quadrature::gauss_kronrod::integrate(integrand, 0.0, 1.0); return result; }