1 | initial version |

Note that the problem is not in defining the elliptic curve, but only when plotting it:

```
sage: E.change_ring(F)
Elliptic Curve defined by y^2 = x^3 + 7 over Finite Field of size 115792089237316195423570985008687907853269984665640564039457584007908834671663
sage: E.plot()
Launched png viewer for Graphics object consisting of 1 graphics primitive
sage: E.change_ring(F).plot()
OverflowError: Python int too large to convert to C long
```

2 | No.2 Revision |

Note that the problem is not in defining the elliptic curve, but only when plotting it:

```
sage: E.change_ring(F)
Elliptic Curve defined by y^2 = x^3 + 7 over Finite Field of size 115792089237316195423570985008687907853269984665640564039457584007908834671663
sage: E.plot()
Launched png viewer for Graphics object consisting of 1 graphics primitive
sage: E.change_ring(F).plot()
OverflowError: Python int too large to convert to C long
```

More precisely, the problem comes from the fact that the plot function iterates over the points of the curve:

```
sage: E = E.change_ring(F)
sage: E.points()
---------------------------------------------------------------------------
OverflowError Traceback (most recent call last)
<ipython-input-39-e168c98b87f8> in <module>()
----> 1 E.points()
/opt/sagemath/sage-source/local/lib/python2.7/site-packages/sage/schemes/elliptic_curves/ell_finite_field.pyc in points(self)
206 k = self.base_ring()
207 if k.is_prime_field() and k.order()>50:
--> 208 v = self._points_via_group_structure()
209 else:
210 v =self._points_fast_sqrt()
/opt/sagemath/sage-source/local/lib/python2.7/site-packages/sage/schemes/elliptic_curves/ell_finite_field.pyc in _points_via_group_structure(self)
148 if ngens == 0: # trivial group
149 return H0
--> 150 for m in range(1,ni[0]):
151 H0.append(H0[-1]+pts[0])
152 if ngens == 1: # cyclic group
OverflowError: Python int too large to convert to C long
```

Even if the loop was tuned so that it accepts such a large number (e.g. using `xsrange`

instead of `range`

), you will not get an error but, you will have to wait forever, there are just too many points:

```
sage: E.cardinality()
115792089237316195423570985008687907852837564279074904382605163141518161494337
```

So, you can think of making you own partial plot. Unfortunately, it seems currently not possible to look at the "first" points of the curve, since the iteration first computes all points:

```
sage: E.__iter__??
Source:
def __iter__(self):
"""
Return an iterator through the points of this elliptic curve.
EXAMPLES::
sage: E = EllipticCurve(GF(11), [1,2])
sage: for P in E: print("{} {}".format(P, P.order()))
(0 : 1 : 0) 1
(1 : 2 : 1) 4
(1 : 9 : 1) 4
(2 : 1 : 1) 8
...
(10 : 0 : 1) 2
"""
for P in self.points():
yield P
```

So, you can think of sampling some points using:

```
sage: E.random_element()
(5931825134738693147239085942431521905946451730071919123281591598082826125500 : 12327482641317859093710230640295762484447995871249429156192043444179262968436 : 1)
```

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.