Elliptic Curves

Little has been implemented so far.

ModularForm(E) : CrvEll -> ModFrmElt
Newform(E) : CrvEll -> ModFrmElt
The modular form associated to the elliptic curve E (which must be defined over the rationals).
Eigenform(E, prec) : CrvEll, RngIntElt -> RngSerPowElt
qEigenform(E, prec) : CrvEll, RngIntElt -> RngSerPowElt
The q-expansion of the newform associated to E, to the specified precision.

Note: this is exactly the same as calling qExpansion(ModularForm(E),prec).

EllipticCurve(f) : ModFrmElt -> CrvEll
An elliptic curve E with associated modular form f, when f is a weight 2 newform on Γ0(N) with rational Fourier coefficients.

The Cremona database is used to identify the isogeny class. (A routine to compute the curve from scratch is implemented, and can be called with EllipticCurve(M : Database:=false) where M is the relevant space of modular symbols; however this is not optimized for large level.)

Example ModFrm_EllipticCurves (H141E21)

> M := ModularForms(Gamma0(389),2);
> f := Newform(M,1);
> Degree(f);
1
> E := EllipticCurve(f);
> E;
Elliptic Curve defined by y^2 + y = x^3 + x^2 - 2*x over Rational
Field
> Conductor(E);
389
> time s := PowerSeries(f,200);  // faster because it knows the elliptic curve
Time: 0.509
V2.28, 13 July 2023