From 275e4bef0c5027517163a50248cf417308d6bde7 Mon Sep 17 00:00:00 2001
From: Peter Bruin
Date: Thu, 27 Mar 2014 10:56:16 +0000
Subject: [PATCH] fix a bug in Denis Simon's 2-descent program
---
src/ext/pari/simon/ell.gp | 7 +++++--
src/sage/schemes/elliptic_curves/gp_simon.py | 7 +++++++
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/ext/pari/simon/ell.gp b/src/ext/pari/simon/ell.gp
index c93535adcd7..0d130f460cd 100644
--- a/src/ext/pari/simon/ell.gp
+++ b/src/ext/pari/simon/ell.gp
@@ -1776,8 +1776,11 @@ if( DEBUGLEVEL_ell >= 2, print(" reduced: Y^2 = ",lift(redq[1])));
\\ Search for a point on the quartic
point = nfratpoint(nf,pol,LIM1,1);
found = point != [];
-\\ If no point is found, check if it is ELS
- if( !found && !loc,
+ if( found,
+ loc = 1
+ );
+\\ If the quartic is not known to be ELS, check if it is
+ if( !loc,
if( bigflag,
loc = nflocallysoluble(nf,pol,r,a,b)
, loc = nflocallysoluble(nf,pol,0,1,1)
diff --git a/src/sage/schemes/elliptic_curves/gp_simon.py b/src/sage/schemes/elliptic_curves/gp_simon.py
index 19ce2db15fa..752dee76dba 100644
--- a/src/sage/schemes/elliptic_curves/gp_simon.py
+++ b/src/sage/schemes/elliptic_curves/gp_simon.py
@@ -60,6 +60,13 @@ def simon_two_descent(E, verbose=0, lim1=5, lim3=50, limtriv=10, maxprob=20, lim
sage: E.simon_two_descent()
(1, 1, [(-1 : 0 : 1)])
+ Check that :trac:`16022` is fixed::
+
+ sage: K. = NumberField(x^4 + x^2 - 7);
+ sage: E = EllipticCurve(K, [1, 0, 5*y^2 + 16, 0, 0])
+ sage: E.simon_two_descent(lim1=2, limtriv=3) # long time (about 3 s)
+ (1, 1, [(-369/25*y^3 + 539/25*y^2 - 1178/25*y + 1718/25 : -27193/125*y^3 + 39683/125*y^2 - 86816/125*y + 126696/125 : 1)])
+
"""
init()