#3416: Weierstrass form and Jacobian for cubics and certain other genus-one
curves
------------------------------------------------------------------------------+
Reporter: moretti |
Owner: was
Type: enhancement |
Status: needs_review
Priority: major |
Milestone: sage-5.7
Component: elliptic curves |
Resolution:
Keywords: nagell, weierstrass, cubic, elliptic curves, editor_wstein |
Work issues:
Report Upstream: N/A |
Reviewers: John Cremona, Marco Streng, Nils Bruin
Authors: Niels Duif, Volker Braun |
Merged in:
Dependencies: #12553, #13084, #13458 |
Stopgaps:
------------------------------------------------------------------------------+
Comment (by was):
Another possibility (which is easy in Python) is to enhance objects with
extra structure. For example,
{{{
sage: K.<a,b> = NumberField([x^2+1,x^3-2]); K
Number Field in a with defining polynomial x^2 + 1 over its base field
sage: L.<c> = K.absolute_field(); L
Number Field in c with defining polynomial x^6 + 3*x^4 + 4*x^3 + 3*x^2 -
12*x + 5
sage: L.structure()
(Isomorphism map:
From: Number Field in c with defining polynomial x^6 + 3*x^4 + 4*x^3 +
3*x^2 - 12*x + 5
To: Number Field in a with defining polynomial x^2 + 1 over its base
field, Isomorphism map:
From: Number Field in a with defining polynomial x^2 + 1 over its base
field
To: Number Field in c with defining polynomial x^6 + 3*x^4 + 4*x^3 +
3*x^2 - 12*x + 5)
}}}
In our case, we could do:
{{{
sage: E = EllipticCurve_from_cubic(x^3+y^3+z^3, [1,0,-1])
sage: E.extra_defining_data()
{'cubic':x^3+y^3+z^3, 'morphism':..., 'point':[1,0,-1]}
}}}
If the morphism gets computed, it's there; if it doesn't get computed, it
isn't.
Whether or not it gets computed can be determined as you suggest
{{{
E = EllipticCurve_from_cubic(x^3+y^3+z^3, [1,0,-1], morphism=False)
}}}
BUT the input does not impact the return type -- you get an elliptic curve
no matter what.
I not sure I agree with the assertion that people/algorithms will always
compute the morphism. There are alternative algorithms for computing the
jacobian of a genus 1 curve that give the Jacobian without giving the
morphism -- one involves computing the a_p and doing a search for curves
with those a_p, and another involves "Fermionic Fock Spaces" (I think).
To me the above proposal fits better with how one thinks in mathematics;
when you construct one object from another, you might as well remember you
did so, and take advantage of it.
Another possibility would be to add a "jacobian_structure()" method to
elliptic curves, which usually returns the identity map E-->E, but in the
above case, returns a morphism X-->E. More generally, it could return a
simply transitive group-object, i.e., a map E x X --> X, but that's
getting complicated.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/3416#comment:62>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.