With careful standardization of argument conventions, the Wolfram Language provides full coverage of elliptic integrals, with arbitrary-precision numerical evaluation for complex values of all parameters, as well as extensive symbolic transformations and simplifications.
EllipticK — complete elliptic integral of the first kind
EllipticF — incomplete elliptic integral of the first kind
EllipticE — complete and incomplete elliptic integral of the second kind
EllipticPi — complete and incomplete elliptic integral of the third kind
EllipticNomeQ — convert from parameter m to nome q
InverseEllipticNomeQ — convert from nome q to parameter m
JacobiAmplitude — convert from argument u and parameter m to amplitude ϕ