#8820: elliptic_exponential broken for curves over number fields
----------------------------------------------+-----------------------------
Reporter: robertwb | Owner: cremona
Type: enhancement | Status: needs_work
Priority: major | Milestone: sage-4.6
Component: elliptic curves | Keywords:
Author: John Cremona | Upstream: N/A
Reviewer: Chris Wuthrich, Jeroen Demeyer | Merged:
Work_issues: |
----------------------------------------------+-----------------------------
Changes (by jdemeyer):
* status: needs_review => needs_work
Comment:
A few comments:
* I think the help for {{{elliptic_exponential}}} (lines 1379--1385) is
not so well written. I would write something like
{{{
OUTPUT:
- If ``to_curve`` is False, a 2-tuple of real or complex numbers
representing the point `(x,y) = (\wp(z),\wp'(z))` where `\wp` denotes the
Weierstrass
`\wp`-function with respect to this lattice.
- If ``to_curve`` is True, the point `(x-b_2/12,y-(a_1(x-b_2/12)-a_3)/2)`
as a point in `E(\RR)` or `E(\CC)`, with `(x,y) = (\wp(z),\wp'(z))` as
above.
If the lattice is real...
}}}
* The comment
{{{
# the next lines compute [P(w), P'(w)] when flag=1
# or [x:y:1] in E(C) when flag=2
}}}
seems to refer to old code.
* Is there a good reason to distinguish between QQ and general number
fields? The number-field code seems simpler, so you could consider
removing the special-case code for QQ.
* lines 1503 and 1530: {{{C(t.real().python(),t.imag().python())}}} can
be simplified as {{{C(t)}}}.
* it doesn't work for the point at infinity (and there should be a
doctest for that case anyway):
{{{
sage: E = EllipticCurve([1,1,1,-8,6])
sage: L = E.period_lattice()
sage: L.elliptic_exponential(0)
---------------------------------------------------------------------------
UnboundLocalError Traceback (most recent call
last)
/usr/local/src/pari/src/<ipython console> in <module>()
/usr/local/src/sage-4.6.alpha1/local/lib/python2.6/site-
packages/sage/schemes/elliptic_curves/period_lattice.pyc in
elliptic_exponential(self, z, to_curve)
1476 if self.coordinates(z) == self.coordinates(z,
rounding='round'):
1477 if to_curve:
-> 1478 return E.change_ring(C)(0)
1479 return (C('+infinity'),C('+infinity'))
1480
UnboundLocalError: local variable 'E' referenced before assignment
}}}
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/8820#comment:22>
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 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.