#4749: improve coercion of points between elliptic curves and reduction of
points
mod p
---------------------------+------------------------------------------------
Reporter: was | Owner: was
Type: enhancement | Status: new
Priority: major | Milestone: sage-3.2.2
Component: number theory | Resolution:
Keywords: |
---------------------------+------------------------------------------------
Old description:
> If I have a point P on an elliptic curve E and F is another curve, then
> F(P) should work if possible. It doesn't. For example:
> {{{
> E = EllipticCurve([1,-1,0,94,9])
> R = E([0,3]) + 5*E([8,31]) # big denom's
> E11 = E.change_ring(GF(11))
> E11(R)
> BOOM!
> }}}
> But it should clear denominators and coerce in the triple like so:
> {{{
> def reduce(R, p):
> x, y = R.xy()
> d = LCM(x.denominator(), y.denominator())
> return R.curve().change_ring(GF(p))([x*d,y*d,d])
> }}}
> }}}
New description:
If I have a point P on an elliptic curve E and F is another curve, then
F(P) should work if possible. It doesn't. For example:
{{{
E = EllipticCurve([1,-1,0,94,9])
R = E([0,3]) + 5*E([8,31]) # big denom's
E11 = E.change_ring(GF(11))
E11(R)
BOOM!
}}}
But it should clear denominators and coerce in the triple like so:
{{{
def reduce(R, p):
x, y = R.xy()
d = LCM(x.denominator(), y.denominator())
return R.curve().change_ring(GF(p))([x*d,y*d,d])
}}}
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/4749#comment:1>
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
-~----------~----~----~----~------~----~------~--~---