10

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.

Anton Menshov
  • 8,672
  • 7
  • 38
  • 94
H A Helfgott
  • 269
  • 1
  • 7
  • 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. – user14717 May 07 '18 at 01:14
  • @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 (https://www.boost.org/doc/libs/1_66_0/libs/numeric/interval/doc/interval.htm), 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. – Anton Menshov May 07 '18 at 06:04
  • @AntonMenshov: Looks like you're right: But only because Boost.Interval is essentially unmaintained. I'm hitting bug after bug. – user14717 May 07 '18 at 06:21
  • @user14717 that's a shame. I would love to be wrong in this particular case. – Anton Menshov May 07 '18 at 14:33
  • 1
    It looks like ARB is gradually getting there. – H A Helfgott May 08 '18 at 09:57
  • Note: This was cross posted and answered on MathOverflow. – Tyberius Nov 11 '21 at 19:54

0 Answers0