Opened 9 years ago

Closed 9 years ago

# Bug in chord_and_tangent

Reported by: Owned by: vbraun major sage-6.1 elliptic curves Niels, cremona, defeo Volker Braun Luca De Feo N/A u/vbraun/ell_curve_from_cubic_fix 92d3cfb02e58648f8a2f250a0bc1690d0d84920d

### Description

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')
436
437     if x3 != y2:

ValueError: polynomial is not in long Weierstrass form
```

### 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

• Status changed from new to needs_review

### 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.