Create Struve1.cpp

This commit is contained in:
mathur04
2024-07-10 23:07:25 +02:00
committed by GitHub
parent 890404abdc
commit 9fd93fa7bd

17
UTSR/Struve1.cpp Normal file
View File

@ -0,0 +1,17 @@
#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;
}