SpecialFuncs.EllipJacoby Method

Overload List

#SignatureDescription
1procedure EllipJacoby(u: Double; m: Double; Epsilon: Double; var sn: Double; var cn: Double; var dn: Double);Jacobi elliptic functions sn, cn and dn.
2procedure EllipJacoby(u: Single; m: Single; Epsilon: Single; var sn: Single; var cn: Single; var dn: Single);

Overload 1: procedure EllipJacoby(u: Double; m: Double; Epsilon: Double; var sn: Double; var cn: Double; var dn: Double);

Jacobi elliptic functions sn, cn and dn.

#NameDescription
1uDefines value at which the functions will be evaluated (any real).
2mDefines the parameter m = k^2, a real value on the closed interval [0,1].
3EpsilonDefines the accuracy for the AGM/Landen iteration.
4snReturns Jacobi elliptic function sn(u,m).
5cnReturns Jacobi elliptic function cn(u,m).
6dnReturns Jacobi elliptic function dn(u,m).

Result: stored in self (calling object)

Remarks:

Computes the three Jacobi elliptic functions sn(u,m), cn(u,m) and dn(u,m) at argument u with parameter m = k^2 (modulus squared), using the descending Landen / AGM transformation to accuracy Epsilon. They are the inverse of the incomplete elliptic integral of the first kind: if u=\int_0^{\varphi} d\theta/\sqrt{1-m\sin^2\theta} then

sn(u,m)=sinvarphi, cn(u,m)=cosvarphi, dn(u,m)=sqrt(1-m sn^2(u,m)).

They satisfy the identities sn^2+cn^2=1 and dn^2+m\,sn^2=1. Degenerate limits handled exactly: at m=0, (sn,cn,dn)=(\sin u,\cos u,1); at m=1, (sn,cn,dn)=(\tanh u,\operatorname{sech} u,\operatorname{sech} u). Domain: u any real value; the parameter m on the closed interval [0,1]. For m<0 or m>1 an exception is raised.

See Also: SpecialFuncs.EllipComplete

Overload 2: procedure EllipJacoby(u: Single; m: Single; Epsilon: Single; var sn: Single; var cn: Single; var dn: Single);

#NameTypeDescription
1uSinglescalar
2mSinglescalar
3EpsilonSinglescalar
4snSingle
5cnSingle
6dnSingle

Result: stored in self (calling object)