## Elliptic curves

This application is intended to demonstrate abelian groups associated with elliptic curves over small finite fields.

An elliptic curve is a set of points satisfying the equation *x ^{3}+ax+b=y^{2}*. Since we are working over a
finite field of order

*p*, there will be just a finite number of such points.

The values of *a,b,p* can be selected from the drop down boxes - *a,b* should lie between 0 and *p*. If the resulting curve has no points the message 'no curve" will be displayed.
Otherwise, the points can be shown by pressing the button "Draw curve". The points will be shown on a graph
with x-axis running from 0 to *p* and with y-axis running from *-(p-1)/2* to *(p-1)/2*
as this shows the symmetry about the x-axis.
In addition to the points on the curve a line is drawn across
the top to represent, "O", the identity of the associated abelian group. This can be thought of
as the "point at infinity".

Two points can be selected from the drop down lists. The selected points will be shown as larger blue dots. They can both be the same point. Pressing the button "Draw line through chosen points" will then draw a line of green dots through the points. Since the field is finite the line is a finite set of points and may appear in pieces, like a line drawn on the map of a torus.

Pressing the button "Show the sum of chosen points" will normally show the point where the line intersects the curve and its reflection in the "x-axis". This is the sum required. The exceptions occur where the point is added to itself, the result of the sum is "O", or where one of the points is "O".

Pressing the button "Show orders of elements" will display a table of the elements along with their order in the abelian group.

On a tablet scrolling may clear the graph. Touching or moving the screen in the area that is not pink should restore the graph.