EllipticExp[u,{a,b}]
is the inverse for EllipticLog. It produces a list {x,y} such that u==EllipticLog[{x,y},{a,b}].
EllipticExp
EllipticExp[u,{a,b}]
is the inverse for EllipticLog. It produces a list {x,y} such that u==EllipticLog[{x,y},{a,b}].
Details
- Mathematical function, suitable for both symbolic and numerical manipulation.
- EllipticExp gives the generalized exponential associated with the elliptic curve
. - For certain special arguments, EllipticExp automatically evaluates to exact values.
- EllipticExp can be evaluated to arbitrary numerical precision.
Examples
open all close allBasic Examples (2)
EllipticExp[-0.4, {4, 1}]Check relation with the inverse function:
EllipticLog[%, {4, 1}]Plot the components of EllipticExp over several real periods:
Plot[{EllipticExp[x, {4, 1}]//First, EllipticExp[x, {4, 1}]//Last}, {x, 0, 4 2.83147}]Scope (10)
Numerical Evaluation (4)
EllipticExp[5., {1, 2}]EllipticExp[-.4, {3, 2}]N[EllipticExp[15 / 7, {5, 1}], 50]The precision of the output tracks the precision of the input:
EllipticExp[0.211111111111111111, {5, 1}]N[EllipticExp[27 + I, {5 - I, 2}]]Evaluate efficiently at high precision:
N[EllipticExp[157`10, {5, 1}], 50]//TimingN[EllipticExp[157`10000, {5, 1}], 50];//TimingSpecific Values (3)
EllipticExp[5, {0 , 0}]EllipticExp[Hypergeometric2F1[I 1 / 2, 1 / 2, 1 / 2, 3 / 2], {0 , 0}]EllipticExp[Hypergeometric2F1[ 1 / 2, 1 / 3, 1 / 2, 3 / 2], {0 , 0}]EllipticExp[x, {0, 0}]//FunctionExpandEllipticExp[0, {1, 2}]Visualization (2)
Plot the EllipticExp function for various parameters:
Plot[{EllipticExp[u, {2, 3}], EllipticExp[u, {4, 3}], EllipticExp[-u, {4, 3}]}, {u, 0, 5}]Plot the real part of EllipticExp[z,{1,2}]:
ComplexContourPlot[Re[EllipticExp[z, {1, 2}]], {z, -4 - 4I, 4 + 4 I}, IconizedObject[«PlotOptions»]]Plot the imaginary part of EllipticExp[z,{1,2}]:
ComplexContourPlot[Im[EllipticExp[z, {1, 2}]], {z, -4 - 4I, 4 + 4 I}, IconizedObject[«PlotOptions»]]Applications (4)
Define multiplication on the elliptic curve
:
ellipticMultiply[{{x1_, y1_}, {x2_, y2_}}, {a_, b_}] :=
Module[{s = (y2 - y1) / (x2 - x1), x3, y3},
x3 = s ^ 2 - x1 - x2 - a;
y3 = -y1 + s(x1 - x3);
{x3, y3}]Use multiplication on the elliptic curve to add rational numbers:
ellipticMultiply[{EllipticExp[-1 / 3., {4, 1}], EllipticExp[1 / 2., {4, 1}]}, {4, 1}]Compare with EllipticLog:
EllipticLog[%, {4, 1}] == -1 / 3 + 1 / 2Map integers on an elliptic curve:
ContourPlot[y ^ 2 == x(x ^ 2 + 4.x + 1.), {x, -5, 5}, {y, -5, 5}, Epilog -> {Red, PointSize[Medium], Point[EllipticExp[#, {4., 1.}]& /@ Join[Range[-10, -1], Range[1, 10]]]}]Visualize the elliptic exponential in the complex plane:
Plot3D[Re[EllipticExp[x + I y, {1, 2}]], {x, -3, 3}, {y, -3, 3}]Define multiplication on the elliptic curve
:
ellipticMultiply[{{x1_, y1_}, {x2_, y2_}}, {a_, b_}] :=
Module[{s = (y2 - y1) / (x2 - x1), x3, y3},
x3 = s ^ 2 - x1 - x2 - a;
y3 = -y1 + s(x1 - x3);{x3, y3}]Use multiplication on the elliptic curve to add rational numbers:
p1 = EllipticExp[-1 / 3., {4, 1}];
p2 = EllipticExp[1 / 2., {4, 1}];p3 = ellipticMultiply[{p1, p2}, {4, 1}]The value of EllipticLog at the product point equals the sum of values of EllipticLog at the corresponding factors:
EllipticLog[p3, {4, 1}] == EllipticLog[p1, {4, 1}] + EllipticLog[p2, {4, 1}]Properties & Relations (5)
D[EllipticExp[u, {a, b}], u]The point
returned by EllipticExp[u,{a,b}] satisfies
:
{x, y} = N[EllipticExp[1 / 2, {7, -2}], 16]With[{a = 7, b = -2}, y^2 == x^3 + a x^2 + b x]EllipticExp is closely related to the WeierstrassP function and its derivative:
ellipticExp[u_, {a_, b_}] := {4 WeierstrassP[2u, {(1/4)((a^2/3) - b), (1/8)(a/3)((b/2) - ((a/3))^2)}] - (a/3), 4WeierstrassPPrime[2u, {(1/4)((a^2/3) - b), (1/8)(a/3)((b/2) - ((a/3))^2)}]}ellipticExp[0.5, {3, 4}]EllipticExp[0.5, {3, 4}]Evaluate the elliptic exponential and its derivative:
u = -0.4;{a, b} = {4., 1.};eExp = EllipticExp[u, {a, b}]eExpPrime = EllipticExpPrime[u, {a, b}]EllipticExpPrime can be expressed in terms of the components of EllipticExp:
eExpPrime == {2Indexed[eExp, 2], 3Indexed[eExp, 1]^2 + 2a Indexed[eExp, 1] + b}WeierstrassHalfPeriods can be used to compute the two linearly independent periods of EllipticExp:
{a, b} = {4., 1.};
{p1, p2} = 2WeierstrassHalfPeriods[{(1/4)((a^2/3) - b), (1/8)(a/3)((b/2) - ((a/3))^2)}]Compare numerical evaluations of EllipticExp at congruent points in the complex plane:
u = -0.4;
{EllipticExp[u, {a, b}], EllipticExp[u + p1, {a, b}], EllipticExp[u + p2, {a, b}]}Possible Issues (1)
EllipticExp is a doubly periodic complex function, so the inverse relation does not always hold:
z = 12.4;
EllipticExp[z, {4, 1}]z1 = EllipticLog[%, {4, 1}]The discrepancy equals two periods of the lattice:
With[{a = 4, b = 1}, z == z1 + 4 WeierstrassHalfPeriodW3[{(1/4)((a^2/3) - b), (1/8)(a/3)((b/2) - ((a/3))^2)}]]Tech Notes
Related Guides
Related Links
History
Introduced in 1988 (1.0)
Text
Wolfram Research (1988), EllipticExp, Wolfram Language function, https://reference.wolfram.com/language/ref/EllipticExp.html.
CMS
Wolfram Language. 1988. "EllipticExp." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/EllipticExp.html.
APA
Wolfram Language. (1988). EllipticExp. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/EllipticExp.html
BibTeX
@misc{reference.wolfram_2026_ellipticexp, author="Wolfram Research", title="{EllipticExp}", year="1988", howpublished="\url{https://reference.wolfram.com/language/ref/EllipticExp.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_ellipticexp, organization={Wolfram Research}, title={EllipticExp}, year={1988}, url={https://reference.wolfram.com/language/ref/EllipticExp.html}, note=[Accessed: 13-June-2026]}