plot() Overflow error int to large to convert to C long
The following code
p = 2^256 - 2^32 - 2^9 - 2^8 - 2^7 - 2^6 - 2^4 - 1
E = EllipticCurve(GF(p), [0,0,0,0,7])
plot(E)
produces the following error:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "_sage_input_54.py", line 10, in <module>
exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("cGxvdChFKQ=="),globals())+"\\n"); execfile(os.path.abspath("___code___.py"))
File "", line 1, in <module>
File "/tmp/tmp1ZsAfB/___code___.py", line 2, in <module>
exec compile(u'plot(E)
File "", line 1, in <module>
File "/opt/SageMath/local/lib/python2.7/site-packages/sage/misc/decorators.py", line 564, in wrapper
return func(*args, **options)
File "/opt/SageMath/local/lib/python2.7/site-packages/sage/plot/plot.py", line 1930, in plot
G = funcs.plot(*args, **original_opts)
File "/opt/SageMath/local/lib/python2.7/site-packages/sage/schemes/elliptic_curves/ell_finite_field.py", line 113, in plot
G += plot.points([P[0:2] for P in self.points() if not P.is_zero()], *args, **kwds)
File "/opt/SageMath/local/lib/python2.7/site-packages/sage/schemes/elliptic_curves/ell_finite_field.py", line 214, in points
v = self._points_via_group_structure()
File "/opt/SageMath/local/lib/python2.7/site-packages/sage/schemes/elliptic_curves/ell_finite_field.py", line 156, in _points_via_group_structure
for m in range(1,ni[0]):
OverflowError: Python int too large to convert to C long
Welcome to Ask Sage! Thank you for your question.
Looks like a bug. Would be good to have a better-formatted traceback though.
@Iguananaut -- traceback is now formatted properly.
As a curiosity i tried
plot( EllipticCurve(GF(2017), [0,0,0,0,7]) )
and the picture was a "blur", where i could not even figure out the symmetry immediately. (Or if there are more then $2017$ points.) But the picture convinced me that all the points were computed, than shown somehow (by mappingGF(2017)
on the axes).Then i tried
plot( EllipticCurve(GF((2^30).next_prime()), [0,0,0,0,7]) )
and i would have been glad to get the OverflowError, instead, the machine really started again seriously to compute all the points, and i lost control. There was no chance to start a terminal in the next minutes, to get the process, and kill it.So which should be the reason / the sense for getting some "statistical picture" for such a big prime, as the posted one?