#pragma once #include "GL_integrator.hpp" #include "TS_integrator.hpp" // 高斯-勒让德一维积分:积分区间 [a, b] template double gauss_integrate_1D(double a, double b, Func&& func, int q) { double sum = 0.0; for (int i = 0; i < q; ++i) { double x = GLIntegrator::x(q, i, a, b); double w = GLIntegrator::w(q, i, a, b); sum += w * func(x); } return sum; } // tanh-sinh 一维积分:积分区间 [a, b] template double tanh_sinh_integrate_1D(double a, double b, Func&& func, int q) { double result = 0.0; for (int i = 0; i < q; ++i) { double x = TSIntegrator::x(q, i, a, b); double w = TSIntegrator::w(q, i, a, b); result += w * func(x); } return result; }