Turning an elliptic curve over C into a complex torus

This was way too long for a comment, but I'm not sure it's really an answer since I'm basically saying "I don't think this is trivial"--I hope that it helps at least a little.

As far as I know this isn't trivial. First of all, because the computations just work out nicer let's assume that you are given a curve in the standard Weierstrass form $y^2=4x^3-Ax-B$. Now, finding $\wp$ would be trivial if you knew which lattice $L$ satisfies $g_2(L)=A$ and $g_3(L)=B$. That said,the existence of such a lattice really comes down to the surjectivity of $j$ which, at least the proof I know, is proven using the argument principle to show that it can't not assume a value in $\mathbb{C}$.

Well, let's suppose for a second that this wasn't too hard, that you were actually able to effectively solve $j(z)=c$ for $c\in\mathbb{C}$. We then find $z_0$ such that $j(z_0)=c$ where

$$c:=1728\frac{A^3}{A^3-27B^2}$$

This should look right for if $L$ is a lattice such that $g_2(L)=A$ and $g_3(L)=B$ then $j(L)$ would be exactly $c$. Well, as I'm sure you know if we let $\Lambda=\mathbb{Z}+\mathbb{Z}z_0$ then $j(\Lambda)=j(z_0)=c$. Now, one of $g_2(\Lambda)$ or $g_3(\Lambda)$ must be non-zero since $\Delta(\Lambda)\ne 0$, let's assume without loss of generality that $g_2(\Lambda)\ne 0$ (it should be obvious, after what I'm about to say, how to proceed if it is actually $g_3(\Lambda)$ that is nonzero). Now, from this we can find some scaling factor $\lambda\in\mathbb{C}$ such that $g_2(\lambda\Lambda)=\lambda^{-4}g_2(\Lambda)=A$. Since $\lambda\Lambda$ and $\Lambda$ have the same $j$-invariant we can solve

$$1728\frac{g_2(\lambda L)^3}{g_2(\lambda\Lambda)^3-27g_2(\lambda\Lambda)^2}=j(\lambda\Lambda)=j(\Lambda)=1728\frac{A^3}{A^3-27B^2}$$

(using the fact that $g_2(\lambda\Lambda)=A$) to get that, in fact, $g_3(\lambda\Lambda)^2=B^2$ and thus $g_3(\lambda\Lambda)=\pm B$. Either way we're fine though. Namely, if $g_3(\lambda\Lambda)=B$ we're done, and if not then we can replace $\lambda\Lambda$ with $i\lambda\Lambda$ and check that

$$g_2(i\lambda\Lambda)=i^4g_2(\lambda\Lambda)=A$$

and

$$g_3(i\lambda \Lambda)=i^6g_3(\lambda\Lambda)=-(-B)=B$$

So, in either case we have found our desired lattice which allows us to find $\wp$.

Now, the point of the above is that the only roadblock to explicitly and easily finding the lattice $\Lambda$ for which $y^2=4x^3-Ax-B$ is just the plane curve associated to $\wp_\Lambda$ is the ability to solve the equation $j(z)=c$. Now, I am by no means expert (not even close!) enough to say that there is no simple/algorithmic way to solving $j(z)=c$, but the only methods I know to even proving that $j(z)=c$ are purely existential (as I said, it's just showing that $j(z)\ne c$ can't happen otherwise a certain contour integral wouldn't come out right).

Anyways, while the above isn't exactly optimistic, it shows you that you can reduce the problem to a problem about whether the surjectivity proof of the $j$-invariant can be made constructive, which (hopefully) may be easily googleable/amenable to search.


Quite likely I am misunderstanding what you want to do, but if you have $y^2=x^3+2x^2-3x$, you can use the depression substitution $x=t-\frac23$ to yield the new cubic

$$y^2=t^3-\frac{13}{3}t+\frac{70}{27}$$

With the further substitution $t=\sqrt[3]{4}u$, we have

$$y^2=4u^3-\frac{13\sqrt[3]{4}}{3}u+\frac{70}{27}$$

which means we have the invariants $g_2=\frac{13\sqrt[3]{4}}{3}$ and $g_3=-\frac{70}{27}$ (with respect to the new coordinates).

As already noted, from these invariants, you can express the periods in terms of the complete elliptic integral of the first kind (see e.g. the DLMF for the needed formulae), which is most efficiently evaluated with the arithmetic-geometric mean iteration.


As Brent notes in the comments, some take the Weierstrass form to have a leading coefficient of $1$ instead of $4$; that is, the standard form looks like

$$y^2=x^3-g_2 x-g_3$$

In this case, one just performs the depression substitution, yielding $g_2=\dfrac{13}{3}$.