#9646: Incorrect calculation of elliptic curve formal group law
-------------------------------+--------------------------------------------
   Reporter:  hlaw             |       Owner:  cremona                        
       Type:  defect           |      Status:  new                            
   Priority:  major            |   Milestone:  sage-5.0                       
  Component:  elliptic curves  |    Keywords:  elliptic curve formal group law
     Author:  hlaw             |    Upstream:  N/A                            
   Reviewer:                   |      Merged:                                 
Work_issues:                   |  
-------------------------------+--------------------------------------------

Comment(by hlaw):

 The bug appears to be related to the precision in a regular way:
 {{{
 sage: for prec in srange(4, 7):
 ....: E = EllipticCurve(list(P.gens()))
 ....: F = E.formal_group()
 ....: fg = F.group_law(prec)
 ....: print prec, fg(0, fg.parent().gen())
 ....:
 4 t2 - a1^2*t2^3
 5 t2 + (-a1^3 - a1*a2)*t2^4
 6 t2 + (-a1^4 - 2*a1^2*a2 - a1*a3)*t2^5
 }}}
 Note that the error is always of degree one less than the precision.  This
 might be related to the following issue, whereby the calculation dies when
 the precision is set to 2 or 3:
 {{{
 sage: E = EllipticCurve(list(P.gens()))
 sage: F = E.formal_group()
 sage: fg = F.group_law(2)
 ---------------------------------------------------------------------------
 TypeError                                 Traceback (most recent call
 last)

 /Users/hlaw/Dropbox/phd/thesis/<ipython console> in <module>()

 /Users/hlaw/src/sage-src/local/lib/python2.6/site-
 packages/sage/schemes/elliptic_curves/formal_group.pyc in group_law(self,
 prec)
     524         t3 = -t1 - t2 - \
     525              (a1*lam + a3*lam2 + a2*nu + 2*a4*lam*nu +
 3*a6*lam2*nu)/  \
 --> 526              (1 + a2*lam + a4*lam2 + a6*lam3)
     527         inv = self.inverse(prec)
     528

 /Users/hlaw/src/sage-src/local/lib/python2.6/site-
 packages/sage/structure/element.so in
 sage.structure.element.RingElement.__sub__
 (sage/structure/element.c:11073)()

 /Users/hlaw/src/sage-src/local/lib/python2.6/site-
 packages/sage/structure/coerce.so in
 sage.structure.coerce.CoercionModel_cache_maps.bin_op
 (sage/structure/coerce.c:6966)()

 TypeError: unsupported operand parent(s) for '-': 'Power Series Ring in t2
 over Power Series Ring in t1 over Multivariate Polynomial Ring in a1, a2,
 a3, a4, a6 over Integer Ring' and 'Power Series Ring in t1 over Fraction
 Field of Multivariate Polynomial Ring in a1, a2, a3, a4, a6 over Integer
 Ring'
 sage: fg = F.group_law(3)
 ---------------------------------------------------------------------------
 TypeError                                 Traceback (most recent call
 last)

 /Users/hlaw/Dropbox/phd/thesis/<ipython console> in <module>()

 /Users/hlaw/src/sage-src/local/lib/python2.6/site-
 packages/sage/schemes/elliptic_curves/formal_group.pyc in group_law(self,
 prec)
     524         t3 = -t1 - t2 - \
     525              (a1*lam + a3*lam2 + a2*nu + 2*a4*lam*nu +
 3*a6*lam2*nu)/  \
 --> 526              (1 + a2*lam + a4*lam2 + a6*lam3)
     527         inv = self.inverse(prec)
     528

 /Users/hlaw/src/sage-src/local/lib/python2.6/site-
 packages/sage/structure/element.so in
 sage.structure.element.RingElement.__sub__
 (sage/structure/element.c:11073)()

 /Users/hlaw/src/sage-src/local/lib/python2.6/site-
 packages/sage/structure/coerce.so in
 sage.structure.coerce.CoercionModel_cache_maps.bin_op
 (sage/structure/coerce.c:6966)()

 TypeError: unsupported operand parent(s) for '-': 'Power Series Ring in t2
 over Power Series Ring in t1 over Multivariate Polynomial Ring in a1, a2,
 a3, a4, a6 over Integer Ring' and 'Power Series Ring in t1 over Fraction
 Field of Multivariate Polynomial Ring in a1, a2, a3, a4, a6 over Integer
 Ring'
 }}}

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9646#comment:2>
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.

Reply via email to