न्यूमेरिकल इंटीग्रेशन (क्वाडरेचर) के लिए मेरे पास अपना छोटा सबरूटीन है, जो कि 1967 में बुलिरस्च एंड स्टोअर द्वारा प्रकाशित ALGOL प्रोग्राम का C ++ रूपांतरण है (न्यूमेरिस मैथिक, 9, 27-2-278)।
मैं एक अधिक आधुनिक (अनुकूली) एल्गोरिथ्म में अपग्रेड करना चाहूंगा और आश्चर्यचकित करूंगा कि क्या कोई (फ्री) सी ++ लाइब्रेरी हैं जो इस तरह की सुविधा प्रदान करती हैं। मुझे जीएसएल (जो कि सी) के रूप में देखा गया था, लेकिन यह एक भयानक एपीआई के साथ आता है (हालांकि अंक अच्छा हो सकता है)। क्या कुछ और है?
एक उपयोगी एपीआई इस तरह दिखेगा:
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
है कि यह एक फ़ंक्शन सूचक है जिसमें कुछ अपारदर्शी डेटा सूचक होते हैं, जिसमें आपका राज्य हो सकता है। दूसरा, मनमाने ढंग से बड़े काम करने वाले बफ़र्स को आवंटित करने के बारे में (री-) कुछ दक्षता चिंताएं हैं, इसलिए उस हिस्से में कम से कम कुछ वैध औचित्य है।