Skip to content

Improve downloaded search results for elliptic curves over number fields #6806

@rvisser7

Description

@rvisser7

When downloading the search results for a set of elliptic curves over number fields $\mathbb{Q}(\alpha)$ (for any language Sage, Magma, Pari, or Oscar) , the data unfortunately doesn't include an easy way to actually use the elliptic curves as objects in the respective language. Currently, it only contains a string of the latexed Weierstrass equation, which isn't particularly useful when trying to run your own computations on the data.

Example: https://beta.lmfdb.org/EllipticCurve/?field=2.0.111.1&conductor_norm=1
When downloading to Sage all elliptic curves with conductor norm 1 over the base field 2.0.111.1, the file contains the following:

columns = ["short_label", "short_class_label", "field_label", "conductor_norm", "rank", "torsion_structure", "cm", "sato_tate_group", "equation"]
data = [
["1.1-a1", "1.1-a", "2.0.111.1", 1, 1, [], 0, "1.2.A.1.1a", "{y}^2+{y}={x}^3+\\left(-a+1\\right){x}^2+\\left(-3a-16\\right){x}+7a-31"],
["1.1-a2", "1.1-a", "2.0.111.1", 1, 1, [], 0, "1.2.A.1.1a", "{y}^2+{y}={x}^3+\\left(-a+1\\right){x}^2+\\left(-563a-1486\\right){x}-14287a+263"],
["1.1-b1", "1.1-b", "2.0.111.1", 1, 1, [], 0, "1.2.A.1.1a", "{y}^2+{y}={x}^3+a{x}^2+\\left(3a-19\\right){x}-7a-24"],
["1.1-b2", "1.1-b", "2.0.111.1", 1, 1, [], 0, "1.2.A.1.1a", "{y}^2+{y}={x}^3+a{x}^2+\\left(563a-2049\\right){x}+14287a-14024"]
]

def create_record(row):
    out = {col: val for col, val in zip(columns, row)}
    return out

I think it would definitely be a lot more helpful if the downloaded search results could create an EllipticCurve object, as is currently done for elliptic curves over Q! E.g. It would be great to have something similar to what is currently implemented for downloading elliptic curves over Q to Sage:

columns = ["lmfdb_label", "lmfdb_iso", "class_size", "conductor", "rank", "torsion_structure", "cm_discriminant", "ainvs"]
data = [
["32.a1", "32.a", 4, 32, 0, [2], -16, [0, 0, 0, -11, -14]],
["64.a1", "64.a", 4, 64, 0, [2], -16, [0, 0, 0, -44, -112]]
]

def create_record(row):
    out = {col: val for col, val in zip(columns, row)}
    curve = EllipticCurve(out["ainvs"])
    out["curve"] = curve
    return out

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions