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 \(\Gamma_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: Elliptic Curves (ex-b1a407)#
> 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

Run in calculator