About the Project
23 Weierstrass Elliptic and Modular FunctionsComputation

§23.22 Methods of Computation

  1. §23.22(i) Function Values
  2. §23.22(ii) Lattice Calculations

§23.22(i) Function Values

Given ω1 and ω3, with (ω3/ω1)>0, the nome q is computed from q=eiπω3/ω1. For (z) we apply (23.6.2) and (23.6.5), generating all needed values of the theta functions by the methods described in §20.14.

The functions ζ(z) and σ(z) are computed in a similar manner: the former by replacing u and z in (23.6.13) by z and πz/(2ω1), respectively, and also referring to (23.6.8); the latter by applying (23.6.9).

The modular functions λ(τ), J(τ), and η(τ) are also obtainable in a similar manner from their definitions in §23.15(ii).

§23.22(ii) Lattice Calculations

Starting from Lattice

Suppose that the lattice 𝕃 is given. Then a pair of generators 2ω1 and 2ω3 can be chosen in an almost canonical way as follows. For 2ω1 choose a nonzero point of 𝕃 of smallest absolute value. (There will be 2, 4, or 6 possible choices.) For 2ω3 choose a nonzero point that is not a multiple of 2ω1 and is such that τ>0 and |τ| is as small as possible, where τ=ω3/ω1. (There will be either 1 or 2 possible choices.) This yields a pair of generators that satisfy τ>0, |τ|12, |τ|>1. In consequence, q=eiπω3/ω1 satisfies |q|eπ3/2=0.0658. The corresponding values of e1, e2, e3 are calculated from (23.6.2)–(23.6.4), then g2 and g3 are obtained from (23.3.6) and (23.3.7).

Starting from Invariants

Suppose that the invariants g2=c, g3=d, are given, for example in the differential equation (23.3.10) or via coefficients of an elliptic curve (§23.20(ii)). The determination of suitable generators 2ω1 and 2ω3 is the classical inversion problem (Whittaker and Watson (1927, §21.73), McKean and Moll (1999, §2.12); see also §20.9(i) and McKean and Moll (1999, §2.16)). This problem is solvable as follows:

  1. (a)

    In the general case, given by cd0, we compute the roots α, β, γ, say, of the cubic equation 4t3ctd=0; see §1.11(iii). These roots are necessarily distinct and represent e1, e2, e3 in some order.

    If c and d are real, and the discriminant is positive, that is c327d2>0, then e1, e2, e3 can be identified via (23.5.1), and k2, k2 obtained from (23.6.16).

    If c327d2<0, or c and d are not both real, then we label α, β, γ so that the triangle with vertices α, β, γ is positively oriented and [α,γ] is its longest side (chosen arbitrarily if there is more than one). In particular, if α, β, γ are collinear, then we label them so that β is on the line segment (α,γ). In consequence, k2=(βγ)/(αγ), k2=(αβ)/(αγ) satisfy k20k2 (with strict inequality unless α, β, γ are collinear); also |k2|, |k2|1.

    Finally, on taking the principal square roots of k2 and k2 we obtain values for k and k that lie in the 1st and 4th quadrants, respectively, and 2ω1, 2ω3 are given by

    23.22.1 2ω1M(1,k)=2iω3M(1,k)=π3c(2+k2k2)(k2k2)d(1k2k2),

    where M denotes the arithmetic-geometric mean (see §§19.8(i) and 22.20(ii)). This process yields 2 possible pairs (2ω1, 2ω3), corresponding to the 2 possible choices of the square root.

  2. (b)

    If d=0, then

    23.22.2 2ω1=2iω3=(Γ(14))22πc1/4.

    There are 4 possible pairs (2ω1, 2ω3), corresponding to the 4 rotations of a square lattice. The lemniscatic case occurs when c>0 and ω1>0.

  3. (c)

    If c=0, then

    23.22.3 2ω1=2eπi/3ω3=(Γ(13))32πd1/6.

    There are 6 possible pairs (2ω1, 2ω3), corresponding to the 6 rotations of a lattice of equilateral triangles. The equianharmonic case occurs when d>0 and ω1>0.


Assume c=g2=4(32i) and d=g3=4(42i). Then α=12i, β=1, γ=2i; k2=(7+6i)/17, and k2=(106i)/17. Working to 6 decimal places we obtain

23.22.4 2ω1 =0.867568+i1.466607,
2ω3 =1.223741+i1.328694,
τ =0.305480+i1.015109.