Files
Stage_IJL/UTSR/Struve1.cpp
2024-07-10 23:07:25 +02:00

18 lines
461 B
C++

#include <cmath>
#include <functional>
#include <vector>
#include <boost/math/quadrature/gauss_kronrod.hpp>
double Struve1(double z) {
std::function<double(double)> 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<double, 15>::integrate(integrand, 0.0, 1.0);
return result;
}