I need to compute elliptic integrals of the third kind with complex arguments, preferably in C++. Is there code out there to do this? I have discovered the Arb library, but that does much more than I would like to do, and would be much slower for my particular application.

  • 5
    $\begingroup$ DLMF would be the obvious place to look, but the site is currently down due to partial US government shutdown. Cephes doesn't offer the elliptic integral of the 3rd kind, GSL and Boost have it but not for complex types. So the well-respected Arb library seems like a good way to go; see also Fredrik Johansson, "Numerical Evaluation of Elliptic Functions, Elliptic Integrals and Modular Forms", ArXiv manuscript 2018. From a brief perusal of relevant literature, a homebrew implementation seems like a daunting task. $\endgroup$
    – njuffa
    Jan 15, 2019 at 1:02
  • 1
    $\begingroup$ @njuffa this should be an answer, not a comment ) $\endgroup$
    – Anton Menshov
    Jan 15, 2019 at 3:32
  • $\begingroup$ @AntonMenshov IMHO it would be a weak answer, at best. The question asks for the best way to compute elliptic integrals, and I am afraid I have zero insight into that; these are not functions I have previously implemented or researched. I have not used the Arb library either, but have been aware of it for a number of years by reputation. $\endgroup$
    – njuffa
    Jan 15, 2019 at 3:39
  • $\begingroup$ Have you done performance testing on Arb? That guy is super smart. I wouldn't put it out of the question that Arb does more than you want, and is fast enough for your application. $\endgroup$
    – user14717
    Jan 15, 2019 at 17:27
  • $\begingroup$ @Danny If I read the software index at DLMF correctly, none of the libraries listed provides elliptic integrals of the third kind with complex arguments. Curiously, the index doesn't include the Arb library, although DLMF is being updated continuously, with the last update occurring in December 2018 just before the government shutdown. $\endgroup$
    – njuffa
    Jan 28, 2019 at 20:50


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.