Weierstrass elliptic functions, in terms of (real) lattice roots \(e_1, e_2\)#

The Weierstrass functions take real values on the real axis iff the lattice is fixed under complex conjugation, or, equivalently, when \(g_2, g_3 \in \mathbb{R}\).

Weierstrass function \(\wp_e(x,e_1,e_2)\) (also DAMath)#

math53.weierstrass_p_e(x, e1, e2)#

Returns the Weierstrass function \(\wp_e(x,e_1,e_2)\) using the lattice roots and the Jacobi functions (where the equation with the smallest \(e_k \ge 0\) is used). See also Wikipedia [1463], MathWorld [1066], Ehrhardt [309] (3.2.17.2).

\[\wp_e(x,e_1,e_2) = e_3 + \frac{e_1-e_3}{\mathrm{sn}^2(u,k)} = e_2 + (e_1-e_3) \frac{\mathrm{dn}^2(u,k)}{\mathrm{sn}^2(u,k)} = e_1 + (e_1-e_3) \frac{\mathrm{cn}^2(u,k)}{\mathrm{sn}^2(u,k)}, \quad k = \sqrt{\frac{e_2-e_3}{e_1-e_3}}, \quad u = x \sqrt{e_1-e_3}.\]

Returns the the basic lemniscatic case \(\wp_l(x) = \wp_g(x, 1, 0) = \wp_e\left(x, \tfrac{1}{2}, 0\right)\). See also Wikipedia [1463], MathWorld [1066], Ehrhardt [309] (3.2.17.1).

Returns the Weierstrass function \(\wp_e(iy,e_1,e_2) = -\wp_e(y,-e_1,-e_2)\). See also Wikipedia [1463], MathWorld [1066], Ehrhardt [309] (3.2.17.4).

\[g_{2}=2({e_{1}}^{2}+{e_{2}}^{2}+{e_{3}}^{2}),\]
\[g_{3}=4e_{1}e_{2}e_{3}.\]

An example in Python

>>> from xlcalcnet import xreal
>>> xreal.Wpe(2.5, 1.5, 0.5)
xreal('5.2359877559829887307E-1')
>>> xreal.Wpe(2.5, 1.5, '0.51')
xreal('5.3518479027559984754E-1')

An example in Visual Basic

>>> from xlcalcnet import Gpr
>>> Gpr.Wpe(2.5, 1.5, 0.5)
Gpr('5.2359877559829887307E-1')
>>> Gpr.Wpe(2.5, 1.5, '0.51')
Gpr('5.3518479027559984754E-1')

Weierstrass function \(\wp'_e(x,e_1,e_2)\) (also DAMath)#

math53.weierstrass_pprime_e(x, e1, e2)#

Returns the derivative of the Weierstrass function \(\wp'_e(x,e_1,e_2)\). See also Wikipedia [1463], MathWorld [1066], Ehrhardt [309] (3.2.17.3).

\[\wp'_e(x,e_1,e_2) = -2(e_1-e_3)^{3/2} \frac{\mathrm{cn}(u,k)\mathrm{dn}(u,k)}{\mathrm{sn}^3(u,k)} , \quad k = \sqrt{\frac{e_2-e_3}{e_1-e_3}}, \quad u = x \sqrt{e_1-e_3}.\]
\[g_{2}=2({e_{1}}^{2}+{e_{2}}^{2}+{e_{3}}^{2}),\]
\[g_{3}=4e_{1}e_{2}e_{3}.\]

An example in Python

>>> from xlcalcnet import xreal
>>> xreal.WpeDer(2.5, 1.5, 0.5)
xreal('5.2359877559829887307E-1')
>>> xreal.WpeDer(2.5, 1.5, '0.51')
xreal('5.3518479027559984754E-1')

An example in Visual Basic

>>> from xlcalcnet import Gpr
>>> Gpr.WpeDer(2.5, 1.5, 0.5)
Gpr('5.2359877559829887307E-1')
>>> Gpr.WpeDer(2.5, 1.5, '0.51')
Gpr('5.3518479027559984754E-1')

Inverse Weierstrass function \(\wp^{-1}_e(y,e_1,e_2)\) (also DAMath)#

math53.weierstrass_p_inv_e(y, e1, e2)#

Returns the functional inverse \(\wp^{-1}_e\) of the Weierstrass function for \(y \ge e_1\), i.e. the smallest positive \(x\) with \(\wp_e(x,e_1,e_2) = y\). The result is computed with the symmetric Carlson integral,

\[\wp^{-1}_e(y,e_1,e_2) = \frac{1}{2} \int_y^{\infty} \frac{\mathrm{d}t}{\sqrt{(t-e_1)(t-e_2)(t-e_3)}} = R_F(y-e_1, y-e_2, y-e_3)\]

See also: MathWorld [1062], Ehrhardt [309] (3.2.17.8).

\[g_{2}=2({e_{1}}^{2}+{e_{2}}^{2}+{e_{3}}^{2}),\]
\[g_{3}=4e_{1}e_{2}e_{3}.\]

An example in Python

>>> from xlcalcnet import xreal
>>> xreal.WpeInv(2.5, 1.5, 0.5)
xreal('5.2359877559829887307E-1')
>>> xreal.WpeInv(2.5, 1.5, '0.51')
xreal('5.3518479027559984754E-1')

An example in Visual Basic

>>> from xlcalcnet import Gpr
>>> Gpr.WpeInv(2.5, 1.5, 0.5)
Gpr('5.2359877559829887307E-1')
>>> Gpr.WpeInv(2.5, 1.5, '0.51')
Gpr('5.3518479027559984754E-1')

Weierstrass Zeta function \(\zeta_e(z, e_1, e_2)\)#

ctxflint.weierstrass_zeta_e(z, e_1, e_2)#

Computes the Weierstrass zeta function \(\zeta_g(z; g_2, g_3)\).

We have \(\zeta_g(tz; t^{-4} g_2, t^{-6} g_3) = t^{-1} \zeta_g(z; g_2, g_3)\) and \(\zeta_g(i z; g_2, g_3) = -i\zeta_g(z; g_2, -g_3)\).

The function is related to \(\wp(z; g_2, g_3)\) by \(\displaystyle \frac{d \zeta(z; g_2, g_3)}{\mathrm{d}z} = -\wp(z; g_2, g_3)\) and \(\displaystyle \zeta(z; g_2, g_3) - z^{-1} = \int_0^z \left(\wp(z; g_2, g_3) - z^{-2} \right)\).

See also MathWorld [1069], Flint [837].

\[g_{2}=2({e_{1}}^{2}+{e_{2}}^{2}+{e_{3}}^{2}),\]
\[g_{3}=4e_{1}e_{2}e_{3}.\]

Weierstrass Sigma function \(\sigma_e(z, e_1, e_2)\)#

ctxflint.weierstrass_sigma_e(z, e_1, e_2)#

Computes the Weierstrass sigma function, \(\sigma_g(z; g_2, g_3)\). We have \(\sigma_g(tz; t^{-4} g_2, t^{-6} g_3) = t \sigma_g(z; g_2, g_3)\).

The function is related to \(\zeta(z; g_2, g_3)\) by \(\displaystyle \frac{d}{\mathrm{d}z} \log \sigma(z; g_2, g_3) = \zeta(z; g_2, g_3)\).

See also MathWorld [1068], Flint [837].

See also: https://dlmf.nist.gov/23.2

\[g_{2}=2({e_{1}}^{2}+{e_{2}}^{2}+{e_{3}}^{2}),\]
\[g_{3}=4e_{1}e_{2}e_{3}=.\]