Ich habe meine eigene kleine Subroutine für die numerische Integration (Quadratur), eine C ++ - Adaption eines ALGOL-Programms, das 1967 von Bulirsch & Stoer veröffentlicht wurde (Numerische Mathematik, 9, 271-278).
Ich möchte auf einen moderneren (adaptiven) Algorithmus upgraden und mich fragen, ob es (kostenlose) C ++ - Bibliotheken gibt, die solche anbieten. Ich habe nach GSL gesucht (das ist C), aber das kommt mit einer schrecklichen API (obwohl die Zahlen gut sein können). Gibt es noch etwas?
Eine nützliche API würde folgendermaßen aussehen:
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
ein Funktionszeiger zusammen mit einem undurchsichtigen Datenzeiger ist, der Ihren Status enthalten kann. Zweitens gibt es einige Effizienzbedenken hinsichtlich der (Neu-) Zuweisung beliebig großer Arbeitspuffer, so dass dieser Teil zumindest eine gültige Rechtfertigung dafür hat.