Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#15340 closed defect (fixed)

Bug in chord_and_tangent

Reported by: vbraun Owned by:
Priority: major Milestone: sage-6.1
Component: elliptic curves Keywords:
Cc: Niels, cremona, defeo Merged in:
Authors: Volker Braun Reviewers: Luca De Feo
Report Upstream: N/A Work issues:
Branch: u/vbraun/ell_curve_from_cubic_fix (Commits, GitHub, GitLab) Commit: 92d3cfb02e58648f8a2f250a0bc1690d0d84920d
Dependencies: Stopgaps:

Status badges


The chord_and_tangent method fails to treat one special case: the t-family of points

(dy*t+P[0], (-dx-dz)*t+P[1], dy*t+P[2])

might fail to parametrize a line if (dy,-dx-dz,dy) is projectively equivalent to P. One needs to try two independent normal directions...

This leads to the following failure (reported by Pierre Vanhove):

sage: R.<x,y,z> = QQ[]
sage: cubic = x^2*y + 4*x*y^2 + x^2*z + 8*x*y*z + 4*y^2*z + 9*x*z^2 + 9*y*z^2
sage: EllipticCurve_from_cubic(cubic, [1,-1,1], morphism=False)
ValueError                                Traceback (most recent call last)
<ipython-input-3-67b6e7c68a76> in <module>()
----> 1 EllipticCurve_from_cubic(cubic, [Integer(1),-Integer(1),Integer(1)], morphism=False)

/home/vbraun/Code/sage.git/local/lib/python2.7/site-packages/sage/schemes/elliptic_curves/constructor.pyc in EllipticCurve_from_cubic(F, P, morphism)
    774         X, Y, Z = S.gen(0), S.gen(1), S(-1/b)*S.gen(2)
    775         F4 = F3(X, Y, Z)
--> 776         E = EllipticCurve(F4.subs(z=1))
    777         if not morphism:
    778             return E

/home/vbraun/Code/sage.git/local/lib/python2.7/site-packages/sage/schemes/elliptic_curves/constructor.pyc in EllipticCurve(x, y, j, minimal_twist)
    313     if is_MPolynomial(x):
    314         if y is None:
--> 315             return EllipticCurve_from_Weierstrass_polynomial(x)
    316         else:
    317             return EllipticCurve_from_cubic(x, y, morphism=False)

/home/vbraun/Code/sage.git/local/lib/python2.7/site-packages/sage/schemes/elliptic_curves/constructor.pyc in EllipticCurve_from_Weierstrass_polynomial(f)
    433             a3 = -coeff
    434         else:
--> 435             raise ValueError('polynomial is not in long Weierstrass form')
    437     if x3 != y2:

ValueError: polynomial is not in long Weierstrass form

Change History (9)

comment:1 Changed 9 years ago by vbraun

  • Authors set to Volker Braun
  • Branch set to u/vbraun/ell_curve_from_cubic_fix
  • Commit set to 92d3cfb02e58648f8a2f250a0bc1690d0d84920d

New commits:

[changeset:92d3cfb]added missing case in chord_and_tangent

comment:2 Changed 9 years ago by vbraun

  • Cc Niels cremona added
  • Status changed from new to needs_review

comment:3 Changed 9 years ago by defeo

  • Cc defeo added

comment:4 Changed 9 years ago by defeo

  • Created changed from 10/28/13 19:51:11 to 10/28/13 19:51:11
  • Modified changed from 10/29/13 15:00:39 to 10/29/13 15:00:39
  • Status changed from needs_review to positive_review

comment:5 Changed 9 years ago by jdemeyer

  • Milestone changed from sage-5.13 to sage-6.0

comment:6 Changed 9 years ago by vbraun

  • Milestone changed from sage-6.0 to sage-6.1

comment:7 Changed 9 years ago by vbraun

  • Resolution set to fixed
  • Status changed from positive_review to closed

comment:8 Changed 9 years ago by vbraun

  • Reviewers set to ​Luca De Feo

comment:9 Changed 9 years ago by jdemeyer

  • Reviewers changed from ​Luca De Feo to Luca De Feo

Try to avoid putting U+200b characters in the Reviewer name.

Note: See TracTickets for help on using tickets.