Tôi có chương trình con nhỏ của riêng mình để tích hợp số (bậc hai), đó là bản chuyển thể C ++ của chương trình ALGOL do Bulirsch & Stoer xuất bản năm 1967 (Numerische Mathematik, 9, 271-278).
Tôi muốn nâng cấp lên một thuật toán (thích ứng) hiện đại hơn và tự hỏi liệu có thư viện C ++ nào (miễn phí) cung cấp như vậy không. Tôi đã có một cái nhìn như GSL (là C), nhưng nó đi kèm với một API khủng khiếp (mặc dù số có thể tốt). Có gì khác?
Một API hữu ích sẽ trông như thế này:
double quadrature(double lower_integration_limit,
double upper_integration_limit,
std::function<double(double)> const&func,
double desired_error_bound_relative=1.e-12,
double desired_error_bound_absolute=0,
double*error_estimate=nullptr);
gsl_function
là một con trỏ hàm cùng với một số con trỏ dữ liệu mờ, có thể chứa trạng thái của bạn. Thứ hai, có một số lo ngại về hiệu quả về việc (phân bổ lại) bộ đệm công việc lớn tùy ý, do đó phần đó có ít nhất một số biện minh hợp lệ cho nó.