#4061: coercion from torsion subgroup of elliptic curve to elliptic curve is
broken
---------------------------+------------------------------------------------
Reporter: was | Owner: was
Type: defect | Status: new
Priority: minor | Milestone: sage-3.2.1
Component: number theory | Resolution:
Keywords: |
---------------------------+------------------------------------------------
Comment (by cremona):
I had not noticed this on trac, or I had forgotten.
The class EllipticCurveTorsionSubgroup is derived form an abstract abelian
group class, but does store the associated curve and the generators as
points on the curve. That is why T.0 is an actual point. But E(z) does
not work because the call() method for elliptic curves does not have
implemented a case where the argument is tested (or rather, its parent) to
be an element of type EllipticCurveTorsionSubgroup. That would not be
hard to do. I would recommend this:
1. Implement a method for the EllipticCurveTorsionSubgroup class which
converts an element of the abstract group to an actual point. For
example, this code does that for all elements of the abstract group:
{{{
[sum([zi*Ti for zi,Ti in zip(P.list(),T.gens())]) for P in T]
[(0 : 1 : 0),
(36 : 224 : 1),
(8 : 28 : 1),
(4 : 0 : 1),
(8 : -28 : 1),
(36 : -224 : 1)]
}}}
This also works ok when there are 2 generators, but not quite when there
are none (for the trivial group!) -- I just tried that and it gives an
empty list, strange.
2. Add a section in the function {{{__call__()}}} in ell_generic.py to
catch the case where the argument's parent is an element of the torsion
subgroup class like this:
{{{
sage:
isinstance(T[3].parent(),sage.schemes.elliptic_curves.ell_torsion.EllipticCurveTorsionSubgroup)
True
}}}
We'll want something similar when we have a MordellWeilGroup class to hold
the whole abelian group of a curve.
This should be an easy thing for someone to do!
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/4061#comment:2>
Sage <http://sagemath.org/>
Sage - Open Source Mathematical Software: Building the Car Instead of
Reinventing the Wheel
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en
-~----------~----~----~----~------~----~------~--~---