Skip to content

JacobiCD ​

The Jacobi elliptic function cd⁡(u,m)=cn⁡(u,m)/dn⁡(u,m)\operatorname{cd}(u,m) = \operatorname{cn}(u,m)/\operatorname{dn}(u,m) (Glaisher's notation), in Wolfram/mpmath's m=k2m=k^2 convention.

✓ checked against that system · ! checked, with disagreements (hover a chip)Wolfram LanguageJacobiCD!
JacobiCD(u, m)the Jacobi elliptic function cd, argument u, parameter m.
SageMathjacobi_cd(u, m)mpmathellipfun('cd', u, m=m)Juliaenumeratio_jacobi(:cd, u, m)
Typed signatures
TypePackageApplies
(number, number) -> numberanalyticalways

Domain: Special functions

Details
  • m=k2m = k^2, the same convention EllipticK / EllipticF use.
  • cd⁡(u,m)=cn⁡(u,m)/dn⁡(u,m)\operatorname{cd}(u,m) = \operatorname{cn}(u,m)/\operatorname{dn}(u,m) — JacobiCN and JacobiDN share this head's numeric kernel and exact-value coverage (m outside [0,1] via the reciprocal- and imaginary-modulus transformations, complex u, a genuinely complex m declined).
  • cd(0,m) = 1, for any m.
  • Numeric only — a symbolic argument stays unevaluated; a floating-point argument (or N()) evaluates directly.
  • N(x, d) past a double's digits runs the same AGM in BigDecimal for real uu and 0<m<10 < m < 1; complex uu and other mm stay unevaluated there rather than print a double's digits as more.
  • Derivatives of every order in uu and in mm are closed forms in sn, cn, dn and the Jacobi epsilon E(u,m)=Z(u,m)+u E(m)/K(m)\mathcal{E}(u,m)=Z(u,m)+u\,E(m)/K(m) (DLMF 22.13): D, Series in uu at 00 or at a symbolic point, and Series in mm at m=0m=0 all give concrete coefficients. The mm-derivatives evaluate numerically for real uu and mm between 0 and 1.

Plot

Examples

1 more kept as data, checked against the oracles
Basic #

A floating-point argument evaluates directly to a decimal

live ↗
InN(JacobiCD(0.3,0.5))N(\mathrm{JacobiCD}(0.3, 0.5))Out0.977 250 336 444 249 90.977\,250\,336\,444\,249\,9

Known value · mpmath 1.3.0 ellipfun

Scope #

m greater than 1, via the reciprocal-modulus transformation

live ↗
InN(JacobiCD(0.3,1.5))N(\mathrm{JacobiCD}(0.3, 1.5))Out1.023 633 106 578 7351.023\,633\,106\,578\,735

The derivative in the parameter m, in closed form through the Jacobi zeta

live ↗
IndJacobiCD(u,m)dm\frac{\mathrm{d}\mathrm{JacobiCD}(u, m)}{\mathrm{d}m}Out(uEllipticE(m)EllipticK(m)+JacobiZN(u,m))JacobiSN(u,m)2m×(1−m)−uJacobiSN(u,m)2m−(uEllipticE(m)EllipticK(m)+JacobiZN(u,m))JacobiSN(u,m)JacobiCN(u,m)22(1−m)JacobiDN(u,m)2+uJacobiSN(u,m)JacobiCN(u,m)22JacobiDN(u,m)2\frac{(\frac{u\mathrm{EllipticE}(m)}{\mathrm{EllipticK}(m)}+\mathrm{JacobiZN}(u, m))\mathrm{JacobiSN}(u, m)}{2m×(1-m)}-\frac{u\mathrm{JacobiSN}(u, m)}{2m}-\frac{(\frac{u\mathrm{EllipticE}(m)}{\mathrm{EllipticK}(m)}+\mathrm{JacobiZN}(u, m))\mathrm{JacobiSN}(u, m)\mathrm{JacobiCN}(u, m)^2}{2(1-m)\mathrm{JacobiDN}(u, m)^2}+\frac{u\mathrm{JacobiSN}(u, m)\mathrm{JacobiCN}(u, m)^2}{2\mathrm{JacobiDN}(u, m)^2}

The Taylor series at u = 0, its coefficients polynomials in m

live ↗
InSeries⁡(JacobiCD(u,m),u,0,5)\operatorname{Series}(\mathrm{JacobiCD}(u, m), u, 0, 5)Out1+12(m−1)u2+124(5m2−6m+1)u4+O(u6)1+\frac{1}{2}(m-1)u^2+\frac{1}{24}(5m^2-6m+1)u^4+O\left(u^6\right)

The series in the parameter m at m = 0, its coefficients trigonometric in z

live ↗
InSeries⁡(JacobiCD(z,m),m,0,2)\operatorname{Series}(\mathrm{JacobiCD}(z, m), m, 0, 2)Outcos⁡(z)+m×(zsin⁡(z)4−cos⁡(3z)16+cos⁡(z)16)+(−132cos⁡(z)z2−164×3zsin⁡(3z)+3zsin⁡(z)32−cos⁡(3z)32+cos⁡(5z)256+7cos⁡(z)256)m2+O(m3)\cos(z)+m×(\frac{z\sin(z)}{4}-\frac{\cos(3z)}{16}+\frac{\cos(z)}{16})+(-\frac{1}{32}\cos(z)z^2-\frac{1}{64}×3z\sin(3z)+\frac{3z\sin(z)}{32}-\frac{\cos(3z)}{32}+\frac{\cos(5z)}{256}+\frac{7\cos(z)}{256})m^2+O\left(m^3\right)
Properties #

u = 0 is 1, for any m

live ↗
InJacobiCD(0,m)\mathrm{JacobiCD}(0, m)Out11
live ↗
InN(JacobiCD(21/24i,2))N(\mathrm{JacobiCD}(\frac{2^{1/2}}{4}i, 2))Out0.942 972 425 777 385 40.942\,972\,425\,777\,385\,4

Known value · Wolfram MathematicalFunctionData, JacobiCD, Landen's transformation

live ↗
InN(JacobiCD(12(1+21/22),(1−21/2/2)2(1+21/2/2)2))N(\mathrm{JacobiCD}(\frac{1}{2}(1+\frac{2^{1/2}}{2}), \frac{(1-2^{1/2}/2)^2}{(1+2^{1/2}/2)^2}))Out0.664 848 107 974 773 60.664\,848\,107\,974\,773\,6

Known value · Wolfram MathematicalFunctionData, JacobiCD, Gauss' transformation

live ↗
InN(JacobiCD(2i,2))N(\mathrm{JacobiCD}(\sqrt{2}i, 2))Out0.710 861 047 784 087 40.710\,861\,047\,784\,087\,4

Known value · Wolfram MathematicalFunctionData, JacobiCD, Landen's transformation

live ↗
InN(JacobiCD(2(1+22),(1−21/2/2)2(1+21/2/2)2))N(\mathrm{JacobiCD}(2(1+\frac{\sqrt{2}}{2}), \frac{(1-2^{1/2}/2)^2}{(1+2^{1/2}/2)^2}))Out−0.970 018 357 823 858 7-0.970\,018\,357\,823\,858\,7

Known value · Wolfram MathematicalFunctionData, JacobiCD, Gauss' transformation

Possible issues #

Symbolic arguments are left unevaluated rather than guessed at

live ↗
InJacobiCD(u,m)\mathrm{JacobiCD}(u, m)OutJacobiCD(u,m)\mathrm{JacobiCD}(u, m)

u = 10^16 spans far more than 10^6 periods of 4K(2/7): u this far out has no argument reduction against its real period, so the guard in exceedsDoublePrecision's sibling (periodsExceedDouble, ce-patches/support/precise.ts) declines rather than return a wrong value.

live ↗
InN(JacobiCD(1016,27))N(\mathrm{JacobiCD}(10^{16}, \frac{2}{7}))OutJacobiCD(10 000 000 000 000 000.0,0.285 714 285 714 285 714 286)\mathrm{JacobiCD}(10\,000\,000\,000\,000\,000.0, 0.285\,714\,285\,714\,285\,714\,286)

The true value (mpmath, dps=30) — still not computed here. Argument reduction at bignum precision (reduce u mod 4K(m) before collapsing to a double) is deferred; this example only pins the gap, not a fix.

live ↗

Known value · mpmath 1.3.0 ellipfun

About
Examples14
Checked againstWolfram Language 12 agree1 differSageMath 10 agree1 differ1 unevaluated1 errormpmath 7 agree1 unevaluatedJulia 7 agree1 unevaluated
CrosswalkWolfram LanguageSageMathmpmathJulia

Implementation

mappedmpmathpackages/oracle/src/mappings.ts
mappedsagepackages/oracle/src/mappings.ts
mappedjuliapackages/oracle/src/mappings.ts

See also: JacobiCN, JacobiDN, JacobiDC