Saya memiliki subrutin kecil saya sendiri untuk integrasi numerik (quadrature), yang merupakan adaptasi C ++ dari program ALGOL yang diterbitkan oleh Bulirsch & Stoer pada tahun 1967 (Numerische Mathematik, 9, 271-278).
Saya ingin meningkatkan ke algoritma yang lebih modern (adaptif) dan bertanya-tanya apakah ada perpustakaan C ++ (gratis) yang menyediakannya. Saya telah melihat sebagai GSL (yang merupakan C), tetapi itu datang dengan API yang mengerikan (meskipun angka mungkin baik). Apakah ada hal lain?
API yang bermanfaat akan terlihat seperti ini:
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
adalah fungsi pointer bersama dengan beberapa data pointer buram, yang dapat berisi keadaan Anda. Kedua, ada beberapa kekhawatiran efisiensi tentang (re-) mengalokasikan buffer kerja sewenang-wenang besar, sehingga bagian memiliki setidaknya beberapa pembenaran yang valid untuk itu.