Elliptic functions of complex argument

Does anyone know a good package where Elliptic functions are implemented for complex values of the argument? May be some C or Fortran package that can be easily called from Julia?

I know that there is the package Elliptic, however the elliptic functions there are defined only for real arguments.

It’s not quite what you want but you can compute elliptic integrals in the complex plane:

https://github.com/JuliaApproximation/SingularIntegralEquations.jl/blob/master/examples/ellipticintegral.jl

Keen to hear about elliptic functions. DLMF suggests using theta functions:

https://dlmf.nist.gov/22.20

It seems that there is an opened PR in SpecialFunctions which deals with this problem but for some obscure reason is not merged yet.

See ArbNumerics.jl

Interesting. The problem is that I need Jacobi elliptic functions, and the package exports only Weierstrass elliptic function. I know that you can express Jacobi elliptic functions in terms of Weierstrass function, however, I am not sure this is the most efficient way from the computational standpoint.

In general PRs don’t get merged when there are open review comments that haven’t been addressed…

Expanding on that: SpecialFunctions.jl gets a lot of half-baked PRs, and it’s a package with no specific “owner”, many people have merge permission but I don’t think anyone feels confident in merging a PR. Unless it’s :100: . And it’s not clear that it should be home to all special functions.

So a better thing to do is move that PR to its own package EllipticFunctions.jl

The history of the aforementioned PR is as follows: I needed the Jacobi elliptic functions for a project but couldn’t find a suitable Julia package, so I decided to implement them myself and was hoping to make my code available to as wide an audience as possible by getting it into SpecialFunctions.jl. @simonbyrne then pointed out a number of issues in my code (thanks again for that, I learnt a lot!), and I believe all but the ones mentioned in this comment have been resolved. I’d be happy to give a hand resolving the remaining issues, but I no longer need these elliptic functions myself and so I had a hard time finding a justification for spending more time on this. Also, some of the remaining issues require community consensus.

I’m indifferent whether the final code ends up in SpecialFunctions.jl or a separate package, but I do hope that whatever solution we pick can merge the various Julia implementations of elliptic functions into a single package. For reference, these are the three codes that I am aware of:

For people finding this topic, there is now GitHub - stla/EllipticFunctions.jl: Jacobi theta functions which has extensive coverage of Jacobi elliptic functions and related functions and which allows complex arguments. It is not (yet) in the general registry.