Is there now a package for rigorous numerical integration that uses interval arithmetic and has access to a well-developed library of special functions?

By "well-developed", I mean something that, at the very least, includes the error function $\text{erf}$, the incomplete gamma function $\Gamma(s,x)$ and the like. In other words, I would like to integrate expressions involving these functions. VNODE-LP doesn't seem to satisfy this requirement, as it relies on older interval-arithmetic libraries lacking such basic special functions. (Besides, perhaps it is just me, but VNODE-LP actually seems harder to install than three years ago; I am not sure it is being adequately maintained.)

PS. An ideal library would have both arbitrary-precision and double-precision modes, the latter one fast. That isn't really an issue for what I am doing now, but it sounds like a basic desideratum, just as, say, an intuitive interface written in C++ (as opposed to plain C) would be nice.

  • $\begingroup$ Could you use Boost.Math? It has lots of numerical integration techniques and special function, which work at arbitrary precision. You'll need to supply an interval arithmetic class as a template parameter (which I've never tested), but it should work. $\endgroup$
    – user14717
    May 7 '18 at 1:14
  • $\begingroup$ @user14717 I am not sure that it is that straightforward (which is why I favorited this question in case someone answers it). On the page for Boost.Interval (boost.org/doc/libs/1_66_0/libs/numeric/interval/doc/…), they explicitly specify the functions they support, and I don't see the special functions being listed there. I wonder if it is possible to do it as you descibed - and would be very interested to see an example. $\endgroup$
    – Anton Menshov
    May 7 '18 at 6:04
  • $\begingroup$ @AntonMenshov: Looks like you're right: But only because Boost.Interval is essentially unmaintained. I'm hitting bug after bug. $\endgroup$
    – user14717
    May 7 '18 at 6:21
  • $\begingroup$ @user14717 that's a shame. I would love to be wrong in this particular case. $\endgroup$
    – Anton Menshov
    May 7 '18 at 14:33
  • 1
    $\begingroup$ It looks like ARB is gradually getting there. $\endgroup$ May 8 '18 at 9:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.