These functions each take two arguments: a parameter, and a variable as described below.
Like all elliptic functions these can be parameterised in a number of ways:
In our implementation, these functions all take the elliptic modulus k as the parameter.
In addition the variable u is sometimes expressed as an amplitude φ, in our implementation we always use u.
Finally note that our functions all take the elliptic modulus as the first argument - this is for alignment with the Elliptic Integrals.
There are twenve functions for computing the twelve individual Jacobi elliptic functions: jacobi_cd, jacobi_cn, jacobi_cs, jacobi_dc, jacobi_dn, jacobi_ds, jacobi_nc, jacobi_nd, jacobi_ns, jacobi_sc, jacobi_sd and jacobi_sn.
They are all called as for example:
Note however that these individual functions are all really thin wrappers around the function jacobi_elliptic which calculates the three copolar functions sn, cn and dn in a single function call. Thus if you need more than one of these functions for a given set of arguments, it's most efficient to use jacobi_elliptic.