id summary reporter owner description type status priority milestone component resolution keywords cc merged author reviewer upstream work_issues branch commit dependencies stopgaps
26677 rational_points for some elliptic curves fails Alex J. Best "{{{
sage: E = EllipticCurve(""11a1"")
sage: E.rational_points(bound=5)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
in ()
----> 1 E.rational_points(""11a1"")
AttributeError: 'function' object has no attribute 'rational_points'
sage: E = EllipticCurve(""11a1"")
sage: E.rational_points(bound=5)
Exception raised by child process with pid=90565:
Traceback (most recent call last):
File ""/Users/alex/sage/local/lib/python2.7/site-packages/sage/parallel/use_fork.py"", line 177, in __call__
self._subprocess(f, dir, *v0)
File ""/Users/alex/sage/local/lib/python2.7/site-packages/sage/parallel/use_fork.py"", line 302, in _subprocess
value = f(*args, **kwds)
File ""/Users/alex/sage/local/lib/python2.7/site-packages/sage/schemes/projective/projective_rational_point.py"", line 460, in parallel_function
Xp = X.change_ring(GF(p))
File ""/Users/alex/sage/local/lib/python2.7/site-packages/sage/schemes/elliptic_curves/ell_generic.py"", line 1347, in change_ring
return self.base_extend(R)
File ""/Users/alex/sage/local/lib/python2.7/site-packages/sage/schemes/elliptic_curves/ell_number_field.py"", line 151, in base_extend
E = super(EllipticCurve_number_field, self).base_extend(R)
File ""/Users/alex/sage/local/lib/python2.7/site-packages/sage/schemes/elliptic_curves/ell_generic.py"", line 1329, in base_extend
return constructor.EllipticCurve([R(a) for a in self.a_invariants()])
File ""sage/structure/factory.pyx"", line 369, in sage.structure.factory.UniqueFactory.__call__ (build/cythonized/sage/structure/factory.c:2046)
return self.get_object(version, key, kwds)
File ""sage/structure/factory.pyx"", line 412, in sage.structure.factory.UniqueFactory.get_object (build/cythonized/sage/structure/factory.c:2422)
obj = self.create_object(version, key, **extra_args)
File ""/Users/alex/sage/local/lib/python2.7/site-packages/sage/schemes/elliptic_curves/constructor.py"", line 471, in create_object
return EllipticCurve_finite_field(R, x)
File ""/Users/alex/sage/local/lib/python2.7/site-packages/sage/schemes/elliptic_curves/ell_generic.py"", line 149, in __init__
raise ArithmeticError(""invariants "" + str(ainvs) + "" define a singular curve"")
ArithmeticError: invariants (0, 10, 1, 1, 2) define a singular curve
<---------SNIP----------->
/Users/alex/sage/local/lib/python2.7/site-packages/sage/schemes/generic/algebraic_scheme.pyc in rational_points(self, **kwds)
1828 return X.points(**kwds) # checks for proper bound done in points functions
1829 except TypeError:
-> 1830 raise TypeError(""Unable to enumerate points over %s.""%F)
1831 elif (self.base_ring() in NumberFields() or self.base_ring() == ZZ)\
1832 and hasattr(F, 'precision'):
TypeError: Unable to enumerate points over Rational Field.
sage:
}}}
Miraculously this works for the curve that is currently doctested `37a`,
The issue is that elliptic curves don't like to be base changed to bad primes, however for the purposes of sieving this is fine. So elliptic curves need to be convinced they are just curves for the purposes of sieving for points.
Precisely
{{{
Curve(E).rational_points(bound=5)
}}}
works even when `E.rational_points(bound=5)` does not. Not sure if a change should be made to elliptic curves (to have a special rational_points method, or to the generic sieving code to first change the input to a rather generic type of scheme. I like the former more as the latter causes friction if people want to add special methods that speed up base_change or whatever." defect closed major sage-8.5 algebraic geometry fixed rational points, elliptic curves Raghukul Raman Ben Hutz Alex J. Best Ben Hutz N/A b6a6e9793ca6be1a9635bc8d5505d60970e81367 b6a6e9793ca6be1a9635bc8d5505d60970e81367