Although its a little fuzzy to say exactly which functions are “special” functions, these are generally functions that come up frequently in applications, that have numerous symmetries, and that satisfy many useful identities. The copious interconnections between special functions that are part of what makes them special also makes these functions hard to organize: everything is connected to everything else.

Bille Carlson did a great deal to simplify the study of special functions. With the benefit of decades of hindsight, Carlson discovered how several special functions **should** have been defined. I wrote a few weeks ago about how Carlson’s approach to Bessel functions eliminates unnecessary branch cuts. This post will look at how he simplified elliptic integrals.

The previous post looked at Legendre’s theorem showing that all elliptic integrals can be expressed in terms of three special functions—*F*, *E*, and Π— along with elementary functions. Carlson showed that Legendre’s three functions could be expressed in terms of two new functions. The advantage to Carlson’s approach is not that he reduced three functions down to two, but that his functions are **symmetric**. Hidden symmetries of elliptic integrals become obvious by definition.

## Carlson’s elliptic functions

Carlson’s two basic functions are *R*_{F} and *R*_{J} defined below.

These functions are obviously symmetric in *x*, *y*, and *z*.

In addition, Carlson defined three more functions for convenience. The functions *R*_{C} and *R*_{D} are simple variations on *R*_{F} and *R*_{J}.

Finally, his function *R*_{G} is defined by

The function *R*_{G} can be expressed in terms of *R*_{F} and *R*_{D} as follows, but the form above makes its symmetry obvious.

See [1].

## Legendre to Carlson

Legendre’s elliptic integrals of the first, second, and third kinds can be related to Carlson’s symmetric functions as follows.

The correspondence between Legendre’s functions and Carlson’s functions is fairly complex. You could think of Carlson’s functions as a change of coordinates that makes things simpler, like describing the motion of planets from the perspective of the sun rather than the perspective of the earth.

The elliptic integrals discussed in this post have been the “incomplete” elliptic integrals. The identities for the corresponding complete elliptic integrals follow by setting φ = π/2.

## Software support

In Python, `scipy.special`

has functions `ellipr*`

to implement each of Carlson’s *R*_{*} functions. That is, `elliprc`

, `elliprd`

, `elliprf`

, `elliprg`

, and `elliprj`

implement *R*_{C}, *R*_{D}, *R*_{F}, *R*_{G}, and *R*_{J} respectively.

Similarly, Mathematica has functions `CarlsonR*`

. That is, `CarlsonRC`

, `CarlsonRD`

, `CarlsonRF`

, `CarlsonRG`

, and `CarlsonRJ`

implement *R*_{C}, *R*_{D}, *R*_{F}, *R*_{G}, and *R*_{J} respectively.

## Related posts

[1] B. C. Carlson. Numerical Computation of Real or Complex Elliptic Integrals. Available on arXiv.