\documentclass[12pt]{article}
\usepackage{pstricks}
\include{macros}
\title{Lecture 28: Computing with Elliptic Curves {\tiny (in PARI)}}
\begin{document}
\maketitle
\tableofcontents

\section{Initializing Elliptic Curves}
We are concerned primarily with elliptic curves
$E$~given by an equation of the form
$$
  y^2 = x^3 + ax + b
$$
with~$a$ and~$b$ either rational 
numbers or elements of a finite field $\Z/p\Z$.  If~$a$ and~$b$ are
in $\Q$, we initialize~$E$ in PARI using the following command:
\begin{verbatim}
? E = ellinit([0,0,0,a,b]);
\end{verbatim}
If you wish to view $a$ and $b$ as element of $\Z/p\Z$, initialize~$E$
as follows:
\begin{verbatim}
? E = ellinit([0,0,0,a,b]*Mod(1,p));
\end{verbatim}
If $\Delta = -16(4a^3 + 27b^2)= 0$ then 
{\tt ellinit} will complain; otherwise, {\tt ellinit} returns
a $19$-component vector of information about~$E$.  You can
access some of this information using the 
dot notation, as shown below.
\begin{verbatim}
? E = ellinit([0,0,0,1,1]); 
? E.a4
%11 = 1
? E.a6
%12 = 1
? E.disc
%13 = -496
? E.j  
%14 = 6912/31
? E5 = ellinit([0,0,0,1,1]*Mod(1,5));
? E5.disc
%15 = Mod(4, 5)
? E5.j
%16 = Mod(2, 5)
\end{verbatim}
Here {\tt E.j} is the {\em $j$-invariant} of~$E$.  It is 
equal to $ \frac{2^8 3^3 a^3}{4a^3 + 27b^2}$,
and has some remarkable properties that I probably 
won't tell you about.

Most elliptic curves functions in PARI take as their first argument
the output of {\tt ellinit}.  For example, the function 
{\tt ellisoncurve(E,P)} takes the output of {\tt ellinit} as its
first argument and a point {\tt P=[x,y]}, and returns {\tt 1} if {\tt P}
lies on {\tt E} and {\tt 0} otherwise.
\begin{verbatim}
? P = [0,1]
? ellisoncurve(E, P)
%17 = 1
? P5 = [0,1]*Mod(1,5) 
? ellisoncurve(E5, P)
%18 = 1
\end{verbatim}


\section{Computing in The Group}
The following functions implement some basic arithmetic in 
the group of points on an elliptic curve: {\tt elladd}, 
{\tt ellpow}, and {\tt ellorder}.
The {\tt elladd} function simply adds together two points 
using the group law.  Warning: PARI does {\em not} check that the
two points are on the curve. 
\begin{verbatim}
? P = [0,1]
%2 = [0, 1]
? elladd(E,P,P)
%3 = [1/4, -9/8]
? elladd(E,P,[1,0])    \\ nonsense, since [1,0] isn't even on E!!!
%4 = [0, -1]
? elladd(E5,P5,P5)
%12 = [Mod(4, 5), Mod(2, 5)]
? [1/4,-9/8]*Mod(1,5)
%13 = [Mod(4, 5), Mod(2, 5)]
\end{verbatim}
The {\tt ellpow} function computes $n P = P + P + \cdots + P$ ($n$ summands).
\begin{verbatim}
? ellpow(E,P,2)
%5 = [1/4, -9/8]
? ellpow(E,P,3)
%6 = [72, 611]
? ellpow(E,P,15)
\end{verbatim}
{\tiny \begin{verbatim}
%7 = [26449452347718826171173662182327682047670541792/9466094804586385762312509661837302961354550401, 
4660645813671121765025590267647300672252945873586541077711389394563791/920992883734992462745141522111225908861976098219465616585649245395649]
\end{verbatim}}


\section{The Generating Function $L(E,s)$}
Suppose~$E$ is an elliptic curve over~$\Q$ defined by an equation
$y^2=x^3 + ax + b$.  Then for every prime~$p$ that does not
divide $\Delta=-16(4a^3 + 27b^2)$, the same equation defines
an elliptic curve over the finite field $\Z/p\Z$.  As you will
discover in problem 3 of homework 9, it can be exciting to consider
the package of numbers $\# E(\Z/p\Z)$ of points on~$E$ over all
finite fields.  The function {\tt ellap} computes 
$$
  a_p(E) = p+1 - \#E(\Z/p\Z).
$$
\begin{verbatim}
? E = ellinit([0,0,0,1,1]);
? ellap(E,5)
%19 = -3         \\ this should be 5+1 - #points
? E5 = ellinit([0,0,0,1,1]*Mod(1,5));
? for(x=0,4, for(y=0,4, if(ellisoncurve(E5,[x,y]),print([x,y]))))
[0, 1]
[0, 4]
[2, 1]
[2, 4]
[3, 1]
[3, 4]
[4, 2]
[4, 3]
? 5+1 - 9          \\ 8 points above, plus the point at infinity
%22 = -3
\end{verbatim}

There is a natural way to extend the definition of
$a_p$ to define integers $a_n$ for every integer~$n$.
For example, if $a_p$ and $a_q$ are defined as above
and~$p$ and~$q$ are distinct primes, then 
$a_{pq}=a_p a_q$.
Today I won't tell you how to define the $a_p$ when, 
e.g., $p\mid \Delta$.
However, you can compute the numbers $a_n$ quickly
in PARI using the function {\tt ellan}, which computes
the first few $a_n$.
\begin{verbatim}
? ellan(E,15)
%24 = [1, 0, 0, 0, -3, 0, 3, 0, -3, 0, -2, 0, -4, 0, 0]
\end{verbatim}
This output means that
$a_1=1$, $a_2=a_3=a_4=0$, $a_5=-3$, $a_6=0$, and so on.

When confronted by a mysterious list of numbers, 
it is a ``reflex action'' for a mathematician to 
package them together in a generating function, and see
if anything neat happens.   It turns out that for the above
numbers, a good way to do this is as follows.  Define
$$
  L(E,s) = \sum_{n=1}^{\infty} a_n n^{-s}.
$$
This might remind you of Riemann's $\zeta$-function, which
is the function you get if you make the simplest generating
function $\sum_{n=1}^{\infty} n^{-s}$ of this form.

Using {\tt elllseries(E,s,1)} I drew a
graph of $L(E,s)$ for $y^2=x^3+x+1$.
%for(x=1,100,print("(",1.0+x/50,",",elllseries(E,1+x/50,1),")"))
\vspace{1.2ex}

\begin{center}
\psset{unit=.9in}
\pspicture(-0.5,-2)(5,2)
\psgrid[gridcolor=lightgray]

\psline[linewidth=0.03]{->}(-0.5,0)(5,0)\rput(5.2,0){$x$}
\psline[linewidth=0.03]{->}(0,-2)(0,2)\rput(0.1,2.25){$y$}
\pscurve[linecolor=blue]
%(-1.080000000000000000000000000,-33.49735351293417519211957696)
%(-1.060000000000000000000000000,-23.30618230499020337000373142)
%(-1.040000000000000000000000000,-14.40013549713258688142857476)
%(-1.020000000000000000000000000,-6.666750787626234222798328824)
%(-1.000000000000000000000000000,0)
%(-0.9800000000000000000000000000,5.699704107463487881595135135)
%(-0.9600000000000000000000000000,10.52556787250100408984833825)
%(-0.9400000000000000000000000000,14.56453159610393139838452949)
%(-0.9200000000000000000000000000,17.89742873496613271109224969)
%(-0.9000000000000000000000000000,20.59918025294355028555601218)
%(-0.8800000000000000000000000000,22.73901617411571677839171309)
%(-0.8600000000000000000000000000,24.38071746335094659631695268)
%(-0.8400000000000000000000000000,25.58287232837695046489301202)
%(-0.8200000000000000000000000000,26.39914189997744671269276965)
%(-0.8000000000000000000000000000,26.87853101325012323501793035)
%(-0.7800000000000000000000000000,27.06566049148954261563524146)
%(-0.7600000000000000000000000000,27.00103793325991540674742554)
%(-0.7400000000000000000000000000,26.72132453010697097892001918)
%(-0.7200000000000000000000000000,26.25959590409875291304792016)
%(-0.7000000000000000000000000000,25.64559535743598483062338192)
%(-0.6800000000000000000000000000,24.90597827668839462275666538)
%(-0.6600000000000000000000000000,24.06454673727188223460902289)
%(-0.6400000000000000000000000000,23.14247361460749258894737732)
%(-0.6200000000000000000000000000,22.15851573159342147339773242)
%(-0.6000000000000000000000000000,21.12921576176938711346658653)
%(-0.5800000000000000000000000000,20.06909276767464971187633622)
%(-0.5600000000000000000000000000,18.99082138786018776084292472)
%(-0.5400000000000000000000000000,17.90539979694746777013357624)
%(-0.5200000000000000000000000000,16.82230665386215252118639211)
%(-0.5000000000000000000000000000,15.74964732646112346014832648)
%(-0.4800000000000000000000000000,14.69428973850638644492412708)
%(-0.4600000000000000000000000000,13.66199022937271508816132392)
%(-0.4400000000000000000000000000,12.65750984984196302266387590)
%(-0.4200000000000000000000000000,11.68472154047107162519256808)
%(-0.4000000000000000000000000000,10.74670865377627554465731485)
%(-0.3800000000000000000000000000,9.845855289140837890338474853)
%(-0.3600000000000000000000000000,8.983928911065769297878245834)
%(-0.3400000000000000000000000000,8.162155718144570107912295606)
%(-0.3200000000000000000000000000,7.381289222833692468548176322)
%(-0.3000000000000000000000000000,6.641672491479395154753170950)
%(-0.2800000000000000000000000000,5.943294480819068068115729053)
%(-0.2600000000000000000000000000,5.285840891882218253941665414)
%(-0.2400000000000000000000000000,4.668739945375030087678873597)
%(-0.2200000000000000000000000000,4.091203464673869404757383600)
%(-0.2000000000000000000000000000,3.552263633845516346109042850)
%(-0.1800000000000000000000000000,3.050805778967737778211393193)
%(-0.1600000000000000000000000000,2.585597501706206602067421937)
(-0.1400000000000000000000000000,2.155314474832464013637531220)
(-0.1200000000000000000000000000,1.758563190324171519751084992)
(-0.1000000000000000000000000000,1.393900932021487856105377543)
(-0.08000000000000000000000000000,1.059853226641086843310683907)
(-0.06000000000000000000000000000,0.7549290093658687480207620868)
(-0.04000000000000000000000000000,0.4776337233057031201262147783)
(-0.02000000000000000000000000000,0.2264805559156493803118203957)
(0,0)
(0.01999999999999999999999999999,-0.2032520877535539568223379065)
(0.03999999999999999999999999999,-0.3846877716636320305684161282)
(0.05999999999999999999999999999,-0.5456815194333011780057117379)
(0.07999999999999999999999999999,-0.6875657484100655972540557382)
(0.09999999999999999999999999999,-0.8116273136809889848837962660)
(0.1199999999999999999999999999,-0.9191048267650755545566794975)
(0.1399999999999999999999999999,-1.011186703745138138424848667)
(0.1599999999999999999999999999,-1.089009851058302891852665591)
(0.1799999999999999999999999999,-1.153658905866088754379687304)
(0.1999999999999999999999999999,-1.206165955981486905986407388)
(0.2199999999999999999999999999,-1.247510671772666874346231945)
(0.2399999999999999999999999999,-1.278620789322545925619597602)
(0.2599999999999999999999999999,-1.300372890432423643696103314)
(0.2799999999999999999999999999,-1.313593430848048495241669883)
(0.2999999999999999999999999999,-1.319059973389296869917585827)
(0.3199999999999999999999999999,-1.317502587510923201584859498)
(0.3399999999999999999999999999,-1.309605381241573265337027215)
(0.3599999999999999999999999999,-1.296008135470457753215985704)
(0.3799999999999999999999999999,-1.277308014203686366711641843)
(0.3999999999999999999999999999,-1.254061327722016660355895314)
(0.4200000000000000000000000000,-1.226785328564197224704491896)
(0.4400000000000000000000000000,-1.195960022959433463616130785)
(0.4600000000000000000000000000,-1.162029982761741908891411132)
(0.4800000000000000000000000000,-1.125406145119763043660142255)
(0.5000000000000000000000000000,-1.086467589068372650174137218)
(0.5200000000000000000000000000,-1.045563279972311097100919485)
(0.5400000000000000000000000000,-1.003013774304955571376749964)
(0.5600000000000000000000000000,-0.9591128786240189664197604289)
(0.5800000000000000000000000000,-0.9141292578259498110666694067)
(0.6000000000000000000000000000,-0.8683079888366067906634184838)
(0.6200000000000000000000000000,-0.8218720568408118402014145334)
(0.6400000000000000000000000000,-0.7750237919800668885420992176)
(0.6600000000000000000000000000,-0.7279462451675185956769638841)
(0.6800000000000000000000000000,-0.6808045022927402284637821273)
(0.7000000000000000000000000000,-0.6337469366257890191527356458)
(0.7200000000000000000000000000,-0.5869063996892122017182497059)
(0.7400000000000000000000000000,-0.5404013512563889572701712147)
(0.7600000000000000000000000000,-0.4943369294622830581782945779)
(0.7800000000000000000000000000,-0.4488059622851641593188750869)
(0.8000000000000000000000000000,-0.4038899218813494363386264587)
(0.8200000000000000000000000000,-0.3596598234351727950594217281)
(0.8400000000000000000000000000,-0.3161770703283348256437946190)
(0.8600000000000000000000000000,-0.2734942475411684152034277311)
(0.8800000000000000000000000000,-0.2316558652773717109055306447)
(0.9000000000000000000000000000,-0.1906990548572001700993837000)
(0.9199999999999999999999999999,-0.1506542189553829966855976694)
(0.9399999999999999999999999999,-0.1115456382721996468474137832)
(0.9599999999999999999999999999,-0.07339203672196470358163098881)
(0.9799999999999999999999999999,-0.03620710720507893548448253411)
(0.9999999999999999999999999999,0)
(1.019999999999999999999999999,0.03522422422808464711776250892)
(1.039999999999999999999999999,0.06946417485271024216855076862)
(1.059999999999999999999999999,0.1027217432506621900689048735)
(1.079999999999999999999999999,0.1350017444698155569132309611)
(1.099999999999999999999999999,0.1663115868277940075760342687)
(1.119999999999999999999999999,0.1966609677351744043683728379)
(1.139999999999999999999999999,0.2260615941052292064678392836)
(1.159999999999999999999999999,0.2545269257817305156960185572)
(1.179999999999999999999999999,0.2820719404864633473625883919)
(1.199999999999999999999999999,0.3087129188582340627716183682)
(1.219999999999999999999999999,0.3344672482248215621854238593)
(1.239999999999999999999999999,0.3593532438180892035283095680)
(1.259999999999999999999999999,0.3833899862100080840642276069)
(1.279999999999999999999999999,0.4065971738133513630669936552)
(1.299999999999999999999999999,0.4289949893550722205953400309)
(1.319999999999999999999999999,0.4506039792926894394264809011)
(1.339999999999999999999999999,0.4714449452042304129407476950)
(1.359999999999999999999999999,0.4915388462403137429445355752)
(1.379999999999999999999999999,0.5109067117827161313591335073)
(1.399999999999999999999999999,0.5295695635072119455592787195)
(1.419999999999999999999999999,0.5475483460995731751599798943)
(1.439999999999999999999999999,0.5648638659223672340883195511)
(1.459999999999999999999999999,0.5815367369766021423253881006)
(1.479999999999999999999999999,0.5975873335463695329559109221)
(1.499999999999999999999999999,0.6130357489564643252439695136)
(1.519999999999999999999999999,0.6279017599125645011184908027)
(1.539999999999999999999999999,0.6422047959309921457600496469)
(1.559999999999999999999999999,0.6559639134004112594514662481)
(1.579999999999999999999999999,0.6691977738511174495420198857)
(1.599999999999999999999999999,0.6819246260389119800463141501)
(1.619999999999999999999999999,0.6941622914800030896893440764)
(1.639999999999999999999999999,0.7059281531010181221590821136)
(1.659999999999999999999999999,0.7172391466941189991507749321)
(1.679999999999999999999999999,0.7281117548914693790596475547)
(1.699999999999999999999999999,0.7385620033959826728729213209)
(1.719999999999999999999999999,0.7486054592264633387425260675)
(1.739999999999999999999999999,0.7582572307550157430317718896)
(1.759999999999999999999999999,0.7675319693330099929291831831)
(1.779999999999999999999999999,0.7764438723190353013508747367)
(1.799999999999999999999999999,0.7850066873382093486184291632)
(1.819999999999999999999999999,0.7932337176170152088571653803)
(1.839999999999999999999999999,0.8011378282515717680991356916)
(1.859999999999999999999999999,0.8087314532799727362229138236)
(1.879999999999999999999999999,0.8160266034411143442823407867)
(1.900000000000000000000000000,0.8230348745133310194750085736)
(1.919999999999999999999999999,0.8297674561362275232246321553)
(1.939999999999999999999999999,0.8362351410283883951022239262)
(1.959999999999999999999999999,0.8424483345222116518033929565)
(1.979999999999999999999999999,0.8484170643450015831329129481)
(1.999999999999999999999999999,0.8541509905827107049053188422)
(2.019999999999999999999999999,0.8596594157693865729349664339)
(2.039999999999999999999999999,0.8649512950514959641470191669)
(2.059999999999999999999999999,0.8700352463819053261686788797)
(2.079999999999999999999999999,0.8749195607034286052118554500)
(2.099999999999999999999999999,0.8796122120865456697621026703)
(2.119999999999999999999999999,0.8841208677901785922294259627)
(2.139999999999999999999999999,0.8884528982183191080442260063)
(2.159999999999999999999999999,0.8926153867488568426111693982)
(2.180000000000000000000000000,0.8966151394141907941346802421)
(2.199999999999999999999999999,0.9004586944161407961065734129)
(2.220000000000000000000000000,0.9041523314603343522098018268)
(2.240000000000000000000000000,0.9077020808976489005055080050)
(2.260000000000000000000000000,0.9111137326624603334303714290)
(2.280000000000000000000000000,0.9143928449994042134101653969)
(2.299999999999999999999999999,0.9175447529721140233283892378)
(2.320000000000000000000000000,0.9205745767489771978387429587)
(2.340000000000000000000000000,0.9234872296623596667910146809)
(2.360000000000000000000000000,0.9262874260390071957135721674)
(2.380000000000000000000000000,0.9289796888004499045921865445)
(2.400000000000000000000000000,0.9315683568332270065237235088)
(2.420000000000000000000000000,0.9340575921296231607364210437)
(2.440000000000000000000000000,0.9364513867003761726486768979)
(2.460000000000000000000000000,0.9387535692614876081496438120)
(2.480000000000000000000000000,0.9409678116978520009902969206)
(2.500000000000000000000000000,0.9430976353069248204424359709)
(2.520000000000000000000000000,0.9451464168260816951540168020)
(2.540000000000000000000000000,0.9471173942476884304088491145)
(2.560000000000000000000000000,0.9490136724262094308830115147)
(2.580000000000000000000000000,0.9508382284819370583001476459)
(2.600000000000000000000000000,0.9525939170061315460122202778)
(2.620000000000000000000000000,0.9542834750725252515757226760)
(2.640000000000000000000000000,0.9559095270602707352226615796)
(2.660000000000000000000000000,0.9574745892935035084139870408)
(2.680000000000000000000000000,0.9589810745027510525262029503)
(2.700000000000000000000000000,0.9604312961134532880409926309)
(2.720000000000000000000000000,0.9618274723668692036328211309)
(2.740000000000000000000000000,0.9631717302786326788726077329)
(2.760000000000000000000000000,0.9644661094401902442526287447)
(2.780000000000000000000000000,0.9657125656683069720047600478)
(2.800000000000000000000000000,0.9669129745077660171997530024)
(2.820000000000000000000000000,0.9680691345923144670100977821)
(2.840000000000000000000000000,0.9691827708688248586775386276)
(2.860000000000000000000000000,0.9702555376895495762344373971)
(2.880000000000000000000000000,0.9712890217772457595474494164)
(2.900000000000000000000000000,0.9722847450678426413862997440)
(2.919999999999999999999999999,0.9732441674352125229395878100)
(2.939999999999999999999999999,0.9741686893024919398796018929)
(2.959999999999999999999999999,0.9750596541442818847165060175)
(2.979999999999999999999999999,0.9759183508839360618415438456)
(2.999999999999999999999999999,0.9767460161900247931909794376)
(3.019999999999999999999999999,0.9775438366759400155616537393)
(3.039999999999999999999999999,0.9783129510064843902398142976)
(3.059999999999999999999999999,0.9790544519151653878478716340)
(3.079999999999999999999999999,0.9797693881357937596700447936)
(3.099999999999999999999999999,0.9804587662518654479103440767)
(3.119999999999999999999999999,0.9811235524670870566436114110)
(3.139999999999999999999999999,0.9817646743002877913770988687)
(3.159999999999999999999999999,0.9823830222078455248353416374)
(3.179999999999999999999999999,0.9829794511366415685838778706)
(3.199999999999999999999999999,0.9835547820104479990473301150)
(3.219999999999999999999999999,0.9841098031525431463062521872)
(3.239999999999999999999999999,0.9846452716472452212151986626)
(3.259999999999999999999999999,0.9851619146429511226941147100)
(3.279999999999999999999999999,0.9856604305991673023529708762)
(3.299999999999999999999999999,0.9861414904799222181961196336)
(3.319999999999999999999999999,0.9866057388958554159282840108)
(3.339999999999999999999999999,0.9870537951971866528866323756)
(3.359999999999999999999999999,0.9874862545196797298362541760)
(3.379999999999999999999999999,0.9879036887856298118676165256)
(3.399999999999999999999999999,0.9883066476618199830936167544)
(3.419999999999999999999999999,0.9886956594763125633767027957)
(3.439999999999999999999999999,0.9890712320958632837119574978)
(3.459999999999999999999999999,0.9894338537656717282188195564)
(3.479999999999999999999999999,0.9897839939131094572996760737)
(3.499999999999999999999999999,0.9901221039169978759330464817)
(3.519999999999999999999999999,0.9904486178439411467933073775)
(3.539999999999999999999999999,0.9907639531531552101491327067)
(3.559999999999999999999999999,0.9910685113711721988694467144)
(3.579999999999999999999999999,0.9913626787377401628776365783)
(3.599999999999999999999999999,0.9916468268241809770156590241)
(3.619999999999999999999999999,0.9919213131254145323963901729)
(3.639999999999999999999999999,0.9921864816268047361415122196)
(3.659999999999999999999999999,0.9924426633469323998079734711)
(3.679999999999999999999999999,0.9926901768573517146768069203)
(3.699999999999999999999999999,0.9929293287803406245620133988)
(3.719999999999999999999999999,0.9931604142656109465533086785)
(3.739999999999999999999999999,0.9933837174469014905134559443)
(3.759999999999999999999999999,0.9935995118793366234868483046)
(3.779999999999999999999999999,0.9938080609583936507724848491)
(3.799999999999999999999999999,0.9940096183212849777866304069)
(3.819999999999999999999999999,0.9942044282315252137962006230)
(3.839999999999999999999999999,0.9943927259474191193342646358)
(3.859999999999999999999999999,0.9945747380751735242613615491)
(3.879999999999999999999999999,0.9947506829073049951724587995)
(3.899999999999999999999999999,0.9949207707469850528904034456)
(3.919999999999999999999999999,0.9950852042189360784455561936)
(3.939999999999999999999999999,0.9952441785674636461447818362)
(3.959999999999999999999999999,0.9953978819421848336344820844)
(3.979999999999999999999999999,0.9955464956719870314462145826)
(3.999999999999999999999999999,0.9956901945277278601920233627)
(4.019999999999999999999999999,0.9958291469741639557811460590)
(4.039999999999999999999999999,0.9959635154115745567956503216)
(4.059999999999999999999999999,0.9960934564075249801098767935)
(4.079999999999999999999999999,0.9962191209191951591486002631)
(4.099999999999999999999999999,0.9963406545066794035670335077)
(4.119999999999999999999999999,0.9964581975376453808219607797)
(4.139999999999999999999999999,0.9965718853837229817791534936)
(4.159999999999999999999999999,0.9966818486089771782972241264)
(4.179999999999999999999999999,0.9967882131508031761734395767)
(4.199999999999999999999999999,0.9968911004935670788286234528)
(4.219999999999999999999999999,0.9969906278353008738686053062)
(4.239999999999999999999999999,0.9970869082477468056990830640)
(4.259999999999999999999999999,0.9971800508300330734483705558)
(4.279999999999999999999999999,0.9972701608562502665368631586)
(4.299999999999999999999999999,0.9973573399171859934618454750)
(4.319999999999999999999999999,0.9974416860564637470111108356)
(4.339999999999999999999999999,0.9975232939013211565404758980)
(4.359999999999999999999999999,0.9976022547882523815640173693)
(4.379999999999999999999999999,0.9976786568837294781428390859)
(4.399999999999999999999999999,0.9977525853002080988279657476)
(4.419999999999999999999999999,0.9978241222076138475670031295)
(4.439999999999999999999999999,0.9978933469404969832800117391)
(4.459999999999999999999999999,0.9979603361010349308761758162)
(4.479999999999999999999999999,0.9980251636580541982847871068)
(4.499999999999999999999999999,0.9980879010422357953809351745)
(4.519999999999999999999999999,0.9981486172376610890385566058)
(4.539999999999999999999999999,0.9982073788698481922215186352)
(4.559999999999999999999999999,0.9982642502904224590170408962)
(4.579999999999999999999999999,0.9983192936585584274948042166)
(4.599999999999999999999999999,0.9983725690193246045607965370)
(4.619999999999999999999999999,0.9984241343790568085123795418)
(4.639999999999999999999999999,0.9984740457778803633324969282)
(4.659999999999999999999999999,0.9985223573594962620001479394)
(4.679999999999999999999999999,0.9985691214383414729016898187)
(4.699999999999999999999999999,0.9986143885642288429865234966)
(4.719999999999999999999999999,0.9986582075845675433044377798)
(4.739999999999999999999999999,0.9987006257042606971512855329)
(4.759999999999999999999999999,0.9987416885433727188522121635)
(4.779999999999999999999999999,0.9987814401926549632809405214)
(4.799999999999999999999999999,0.9988199232670145340197490690)
(4.819999999999999999999999999,0.9988571789570075134755955834)
(4.839999999999999999999999999,0.9988932470784344535308592568)
(4.859999999999999999999999999,0.9989281661201126930323239535)
(4.879999999999999999999999999,0.9989619732898969415650654604)
(4.899999999999999999999999999,0.9989947045590165808045677663)
(5,0.999999)

\pscircle*[linecolor=red](1,0){0.06}

\endpspicture

\end{center}

That the value of $L(E,s)$ makes sense at $s=1$, where the series above
doesn't obviously converge, follows from the nontrivial 
fact that the function 
$$
  f(z)=\sum_{n=1}^{\infty} a_n e^{2\pi i nz}
$$ 
is a {\em modular form}.  Also, keep your eyes on the dot;
it plays a central roll in the Birch and Swinnerton-Dyer conjecture,
which asserts that $L(E,1)=0$ if and only if the group $E(\Q)$
is infinite.

\subsection{A Curve of Rank Two}
Let $E$ be the simplest rank~$2$ curve:
$$
   y^2 + y = x^3 + x^2 - 2x.
$$
The discriminant is $389$.
%e=ellinit([0,1,1,-2,0]);
%for(x=1,100,print("(",x/20.0,",",elllseries(e,x/20.0,1),")"))
\vspace{1.2ex}

\begin{center}
\psset{unit=.9in}
\pspicture(-0.5,-2)(5,2)
\psgrid[gridcolor=lightgray]

\psline[linewidth=0.03]{->}(-0.5,0)(5,0)\rput(5.2,0){$x$}
\psline[linewidth=0.03]{->}(0,-2)(0,2)\rput(0.1,2.25){$y$}
\pscurve[linecolor=blue]
(-0.2500000000000000000000000000,-1.869301080746668455985357875)
(-0.2000000000000000000000000000,-1.307452174275307812975265456)
(-0.1500000000000000000000000000,-0.8508834566546463310621688366)
(-0.1000000000000000000000000000,-0.4886364479565607868738206842)
(-0.05000000000000000000000000000,-0.2089451667158738982563246704)
(0.04999999999999999999999999999,0.1495303531105348677905016281)
(0.09999999999999999999999999999,0.2501634032128948577781162685)
(0.1499999999999999999999999999,0.3114082461725666566870413872)
(0.1999999999999999999999999999,0.3416748620723204017123107521)
(0.2500000000000000000000000000,0.3482578941959046100721623459)
(0.2999999999999999999999999999,0.3373718043623533659424285446)
(0.3499999999999999999999999999,0.3142195810543822817144335937)
(0.3999999999999999999999999999,0.2830815077294071810755392342)
(0.4499999999999999999999999999,0.2474139993042702609559524431)
(0.5000000000000000000000000000,0.2099513032520556529211768679)
(0.5499999999999999999999999999,0.1728050497929077261080500819)
(0.5999999999999999999999999999,0.1375583252730762514803768786)
(0.6499999999999999999999999999,0.1053522245757870934123179003)
(0.6999999999999999999999999999,0.07696379100480972080761890705)
(0.7500000000000000000000000000,0.05287494269328086191489706832)
(0.7999999999999999999999999999,0.03333246962187091404798015891)
(0.8499999999999999999999999999,0.01839951146778021091061749336)
(0.8999999999999999999999999999,0.007999131868965912642441395573)
(0.9499999999999999999999999999,0.001950719995076086523458768854)
(1.000000000000000000000000000,0)
(1.049999999999999999999999999,0.001843432162623526805421027989)
(1.099999999999999999999999999,0.007147761132339355951297819538)
(1.149999999999999999999999999,0.01556541797619881097845183612)
(1.199999999999999999999999999,0.02674642212028410492580900502)
(1.250000000000000000000000000,0.04034736297109149972237511052)
(1.299999999999999999999999999,0.05603797340009158542754001710)
(1.349999999999999999999999999,0.07350574140846672344937000182)
(1.399999999999999999999999999,0.09245894414351856480180224415)
(1.449999999999999999999999999,0.1126284312117006189401349698)
(1.500000000000000000000000000,0.1337684325463184144182903735)
(1.549999999999999999999999999,0.1556566201470275288035905334)
(1.599999999999999999999999999,0.1780936127319682621754391509)
(1.649999999999999999999999999,0.2009020774591902803388255939)
(1.699999999999999999999999999,0.2239255529909046600601038464)
(1.750000000000000000000000000,0.2470270928360595987690243203)
(1.799999999999999999999999999,0.2700878066314372903924979782)
(1.849999999999999999999999999,0.2930053593272868093124930495)
(1.899999999999999999999999999,0.3156924736677139737711561022)
(1.949999999999999999999999999,0.3380754694663440402210869532)
(2.000000000000000000000000000,0.3600928635788807296980040920)
(2.049999999999999999999999999,0.3816940468108779983880996151)
(2.099999999999999999999999999,0.4028380479566454785017768724)
(2.149999999999999999999999999,0.4234923904683971243274757788)
(2.199999999999999999999999999,0.4436320436652311156968651002)
(2.250000000000000000000000000,0.4632384677050697254303080822)
(2.299999999999999999999999999,0.4822987495858363724860086952)
(2.349999999999999999999999999,0.5008048260688364847201755901)
(2.399999999999999999999999999,0.5187527885055396888373777886)
(2.449999999999999999999999999,0.5361422639976527614363980368)
(2.500000000000000000000000000,0.5529758670464501924162602402)
(2.549999999999999999999999999,0.5692587157830759193525914748)
(2.599999999999999999999999999,0.5849980069622239219107713778)
(2.649999999999999999999999999,0.6002026441034326616295762561)
(2.699999999999999999999999999,0.6148829134424614342827547772)
(2.750000000000000000000000000,0.6290502026826420217480678266)
(2.799999999999999999999999999,0.6427167578916698305616933645)
(2.849999999999999999999999999,0.6558954742569908667854371904)
(2.899999999999999999999999999,0.6685997167807884964349752979)
(2.949999999999999999999999999,0.6808431673548621557265187577)
(3.000000000000000000000000000,0.6926396950002846117222293821)
(3.049999999999999999999999999,0.7040032463825176015043907577)
(3.099999999999999999999999999,0.7149477540171236680904994188)
(3.149999999999999999999999999,0.7254870598630050867062509271)
(3.199999999999999999999999999,0.7356348522588055534985384207)
(3.250000000000000000000000000,0.7454046143939708829454230379)
(3.299999999999999999999999999,0.7548095827197031814199544254)
(3.349999999999999999999999999,0.7638627138977091675110432410)
(3.399999999999999999999999999,0.7725766590575001282836744756)
(3.449999999999999999999999999,0.7809637442874340762918718280)
(3.500000000000000000000000000,0.7890359564221410713637781201)
(3.549999999999999999999999999,0.7968049333108866931198608023)
(3.599999999999999999999999999,0.8042819578592214559330635355)
(3.649999999999999999999999999,0.8114779552312940874578182219)
(3.699999999999999999999999999,0.8184034926837589712869664778)
(3.750000000000000000000000000,0.8250687815754835493137719202)
(3.799999999999999999999999999,0.8314836811613714233702023912)
(3.849999999999999999999999999,0.8376577038345813375485705589)
(3.899999999999999999999999999,0.8436000215301708943820184830)
(3.949999999999999999999999999,0.8493194730455690754202973327)
(4.000000000000000000000000000,0.8548245720700425168614353307)
(4.049999999999999999999999999,0.8601235157471480128605405330)
(4.099999999999999999999999999,0.8652241936216662643009316377)
(4.149999999999999999999999999,0.8701341968462309909853208257)
(4.199999999999999999999999999,0.8748608275432836179837562920)
(4.250000000000000000000000000,0.8794111082355217942116722409)
(4.299999999999999999999999999,0.8837917912730448714765732526)
(4.349999999999999999999999999,0.8880093681982610195943916738)
(4.399999999999999999999999999,0.8920700790005984563619489026)
(4.449999999999999999999999999,0.8959799212224110098972823458)
(4.500000000000000000000000000,0.8997446588854076963520304475)
(4.549999999999999999999999999,0.9033698312136607404862465887)
(4.599999999999999999999999999,0.9068607611349251047730284956)
(4.649999999999999999999999999,0.9102225635467817730780041656)
(4.699999999999999999999999999,0.9134601533381241020682024834)
(4.750000000000000000000000000,0.9165782531598519236573296568)
(4.799999999999999999999999999,0.9195814009414173557072563010)
(4.849999999999999999999999999,0.9224739571521621136793041110)
(4.899999999999999999999999999,0.9252601118082698830816512369)
(4.949999999999999999999999999,0.9279438912276905530726670644)
(5.000000000000000000000000000,0.9305291645366288221292825852)

\pscircle*[linecolor=red](1,0){0.06}

\endpspicture

\end{center}

\subsection{A Curve of Rank Three}
Let $E$ be the simplest rank~$3$ curve:
$$
y^2 + y = x^3 - 7x + 6.
$$
The discriminant is $5077$.
%e=ellinit([0,0,1,-7,6]);
%for(x=1,120,print("(",-1+x/20.0,",",elllseries(e,-1+x/20.0,1),")"))
\vspace{1.2ex}

\begin{center}
\psset{unit=.9in}
\pspicture(-0.5,-2)(5,2)
\psgrid[gridcolor=lightgray]

\psline[linewidth=0.03]{->}(-0.5,0)(5,0)\rput(5.2,0){$x$}
\psline[linewidth=0.03]{->}(0,-2)(0,2)\rput(0.1,2.25){$y$}
\pscurve[linecolor=blue]
%(-0.05000000000000000000000000000,2.665459353842516300887862596)
(-0.05000000000000000000000000000,2)
(0.04999999999999999999999999999,-1.436313690317728678707910214)
(0.09999999999999999999999999999,-2.080058567173062689443317490)
(0.1499999999999999999999999999,-2.236939072193606938632963309)
(0.1999999999999999999999999999,-2.115456837327142818018141335)
(0.2500000000000000000000000000,-1.853432905059353050907893277)
(0.2999999999999999999999999999,-1.538400874605764615403251437)
(0.3499999999999999999999999999,-1.222950308809072438872831689)
(0.3999999999999999999999999999,-0.9360357684041337897681360899)
(0.4499999999999999999999999999,-0.6911433407224225907444126881)
(0.5000000000000000000000000000,-0.4920628837884663767162722526)
(0.5499999999999999999999999999,-0.3368727272381728237157201340)
(0.5999999999999999999999999999,-0.2206157061565192332634880189)
(0.6499999999999999999999999999,-0.1370359284572558537858170991)
(0.6999999999999999999999999999,-0.07965546780820809922285492823)
(0.7500000000000000000000000000,-0.04239799885735108894403555342)
(0.7999999999999999999999999999,-0.01991002302575148987446085200)
(0.8499999999999999999999999999,-0.007687221254587426202010872917)
(0.8999999999999999999999999999,-0.002081118652996614152056766731)
(0.9499999999999999999999999999,-0.0002374050371406603390332040359)
(1.000000000000000000000000000,0)
(1.049999999999999999999999999,0.0001973055383879500596605611727)
(1.099999999999999999999999999,0.001438329075870453641136902056)
(1.149999999999999999999999999,0.004423593813688950588261765297)
(1.199999999999999999999999999,0.009557371165349786145716519831)
(1.250000000000000000000000000,0.01702143669397141056910104126)
(1.299999999999999999999999999,0.02683578433704244666524467576)
(1.349999999999999999999999999,0.03890736792440829376782056899)
(1.399999999999999999999999999,0.05306833385534747781079476114)
(1.449999999999999999999999999,0.06910533155796129556286888417)
(1.500000000000000000000000000,0.08678144750494967257462341313)
(1.549999999999999999999999999,0.1058521772685890314517613547)
(1.599999999999999999999999999,0.1260766763059780939693254888)
(1.649999999999999999999999999,0.1472253441231011839679738745)
(1.699999999999999999999999999,0.1690846162559851612628322841)
(1.750000000000000000000000000,0.1914596740374486075847895246)
(1.799999999999999999999999999,0.2141756379606673828509888436)
(1.849999999999999999999999999,0.2370776878254622994561836946)
(1.899999999999999999999999999,0.2600304509861604269868339229)
(1.949999999999999999999999999,0.2829169170544625420470579397)
(2.000000000000000000000000000,0.3056370709993943665549003165)
(2.049999999999999999999999999,0.3281063842610022498080182847)
(2.099999999999999999999999999,0.3502542628853236001868016155)
(2.149999999999999999999999999,0.3720225206421691524288643731)
(2.199999999999999999999999999,0.3933639217203174874682380442)
(2.250000000000000000000000000,0.4142408203036086038975532818)
(2.299999999999999999999999999,0.4346239117815307688696096270)
(2.349999999999999999999999999,0.4544911014482147977054116887)
(2.399999999999999999999999999,0.4738264904162215078882895996)
(2.449999999999999999999999999,0.4926194744192423955045506465)
(2.500000000000000000000000000,0.5108639486548272542604836536)
(2.549999999999999999999999999,0.5285576104019794566057004842)
(2.599999999999999999999999999,0.5457013505159362590105184873)
(2.649999999999999999999999999,0.5622987248098805143223571624)
(2.699999999999999999999999999,0.5783554965991442740802876900)
(2.750000000000000000000000000,0.5938792421744403906389750161)
(2.799999999999999999999999999,0.6088790115907074308408645888)
(2.849999999999999999999999999,0.6233650378393919194295903746)
(2.899999999999999999999999999,0.6373484881677044668307021565)
(2.949999999999999999999999999,0.6508412519875435061611998327)
(3.000000000000000000000000000,0.6638557604598125793076126510)
(3.049999999999999999999999999,0.6764048334354289801609480539)
(3.099999999999999999999999999,0.6885015499768967519166251132)
(3.149999999999999999999999999,0.7001591391723403383493824245)
(3.199999999999999999999999999,0.7113908883884519063483917773)
(3.250000000000000000000000000,0.7222100664926462501663795576)
(3.299999999999999999999999999,0.7326298599115607103526447545)
(3.349999999999999999999999999,0.7426633196870802560372874286)
(3.399999999999999999999999999,0.7523233179466495118385487603)
(3.449999999999999999999999999,0.7616225124260154850860002514)
(3.500000000000000000000000000,0.7705733178737709065680951776)
(3.549999999999999999999999999,0.7791878833318839640945432804)
(3.599999999999999999999999999,0.7874780744282131691193445996)
(3.649999999999999999999999999,0.7954554599388734439430500380)
(3.699999999999999999999999999,0.8031313019829548321680034308)
(3.750000000000000000000000000,0.8105165493018862487783973805)
(3.799999999999999999999999999,0.8176218331527697405642974946)
(3.849999999999999999999999999,0.8244574654110984549210934544)
(3.899999999999999999999999999,0.8310334385349814375219085843)
(3.949999999999999999999999999,0.8373594270916809277550879970)
(4.000000000000000000000000000,0.8434447905890828398119005816)
(4.049999999999999999999999999,0.8492985773906623268686357452)
(4.099999999999999999999999999,0.8549295295234234862643042166)
(4.149999999999999999999999999,0.8603460882149109792910197989)
(4.199999999999999999999999999,0.8655564000183305574796269165)
(4.250000000000000000000000000,0.8705683234046028238972415412)
(4.299999999999999999999999999,0.8753894357172596229730437515)
(4.349999999999999999999999999,0.8800270404008583682046530145)
(4.399999999999999999999999999,0.8844881744263629263290703651)
(4.449999999999999999999999999,0.8887796158479988297367871982)
(4.500000000000000000000000000,0.8929078914356731922323888573)
(4.549999999999999999999999999,0.8968792843353586902299472732)
(4.599999999999999999999999999,0.9006998417170498471541577335)
(4.649999999999999999999999999,0.9043753823761571479875307212)
(4.699999999999999999999999999,0.9079115042596375262452695937)
(4.750000000000000000000000000,0.9113135918928777967199333318)
(4.799999999999999999999999999,0.9145868236874446176388673658)
(4.849999999999999999999999999,0.9177361791133714732896009535)
(4.899999999999999999999999999,0.9207664457227397728495168876)
(4.949999999999999999999999999,0.9236822260139877758604273374)
(5.000000000000000000000000000,0.9264879441286998841153195103)
\pscircle*[linecolor=red](1,0){0.06}

\endpspicture

\end{center}


\subsection{A Curve of Rank Four}
Let $E$ be the simplest {\em known} rank~$4$ curve:
$$
y^2 + xy = x^3 - x^2 - 79x + 289
$$
The conductor is $2\cdot 117223$.
%e=ellinit([1, -1, 0 ,-79 ,289]);
%for(x=1,20,print("(",x/10.0,",",elllseries(e,x/10.0,1),")"))
%for(x=1,20,print("(",0.9+x/100.0,",",elllseries(e,x/100.0,1),")"))
%for(x=0,9,s=x/10.0;print("(",s,",",elllseries(e,s,1),")"))
%for(x=0,90,s=x/100.0;print("(",s,",",elllseries(e,s,1),")"))
%for(x=1,21,s=2+x/7.0;print("(",s,",",elllseries(e,s,1),")"))
\vspace{1.2ex}

\begin{center}
\psset{unit=.9in}
%\psset{unit=1.5in}
\pspicture(-0.5,-2)(5,2)
\psgrid[gridcolor=lightgray]

\psline[linewidth=0.03]{->}(-0.5,0)(5,0)\rput(5.2,0){$x$}
\psline[linewidth=0.03]{->}(0,-2)(0,2)\rput(0.1,2.25){$y$}
\pscircle*[linecolor=red](1,0){0.06}



\pscurve[linecolor=blue]
(0,0)
(0.009999999999999999999999999999,20.17460740732031218029067105)
(0.01999999999999999999999999999,36.49248092043218759414227962)
(0.02999999999999999999999999999,49.48695269194186255570395989)
(0.03999999999999999999999999999,59.62809499064306722407223772)
(0.04999999999999999999999999999,67.32949817701725860474850393)
(0.05999999999999999999999999999,72.95437998695321784902246547)
(0.06999999999999999999999999999,76.82108703674534698230608976)
(0.07999999999999999999999999999,79.20804440435897043647662713)
(0.08999999999999999999999999999,80.35820445115398146915461672)
(0.09999999999999999999999999999,80.48304170441465810207415387)
(0.1099999999999999999999999999,79.76613660406133174625793745)
(0.1199999999999999999999999999,78.36638720713565471334218075)
(0.1299999999999999999999999999,76.42088452189766469084520681)
(0.1399999999999999999999999999,74.04748399111477869470341911)
(0.1499999999999999999999999999,71.34710274352131875238762686)
(0.1599999999999999999999999999,68.40576956639155116679637679)
(0.1699999999999999999999999999,65.29645210439220133457469776)
(0.1799999999999999999999999999,62.08068354485849675320142694)
(0.1899999999999999999999999999,58.81000899267982264641223734)
(0.1999999999999999999999999999,55.52726985520684582203751378)
(0.2099999999999999999999999999,52.26774283592287994132381501)
(0.2199999999999999999999999999,49.06014856276556567828076763)
(0.2299999999999999999999999999,45.92754344141284383534396879)
(0.2399999999999999999999999999,42.88810701477216095300037175)
(0.2500000000000000000000000000,39.95583591725886436605311523)
(0.2599999999999999999999999999,37.14115442682657456540803882)
(0.2699999999999999999999999999,34.45145063037828623093305962)
(0.2799999999999999999999999999,31.89154632102089971062111326)
(0.2899999999999999999999999999,29.46410793109383578525135981)
(0.2999999999999999999999999999,27.17000506602518061597947147)
(0.3099999999999999999999999999,25.00862253439015019890448691)
(0.3199999999999999999999999999,22.97813116310177967557620869)
(0.3299999999999999999999999999,21.07572213794885965683462997)
(0.3399999999999999999999999999,19.29780911363895258131960784)
(0.3499999999999999999999999999,17.64020188943555017633327563)
(0.3599999999999999999999999999,16.09825504210457925139305818)
(0.3699999999999999999999999999,14.66699454326279499576807542)
(0.3799999999999999999999999999,13.34122505973041656327517788)
(0.3899999999999999999999999999,12.11562033981553963057313496)
(0.3999999999999999999999999999,10.98479882256070828538534132)
(0.4099999999999999999999999999,9.943386368083383947466728763)
(0.4199999999999999999999999999,8.986067792701650934369969225)
(0.4299999999999999999999999999,8.107628700234563525818535593)
(0.4399999999999999999999999999,7.302988928586518979021916724)
(0.4499999999999999999999999999,6.567228776537510403916594514)
(0.4599999999999999999999999999,5.895609037808749758128609910)
(0.4699999999999999999999999999,5.283585746356747623589733925)
(0.4799999999999999999999999999,4.726820427014403603207828295)
(0.4899999999999999999999999999,4.221186547723964451899689776)
(0.5000000000000000000000000000,3.762772782494687754526881867)
(0.5099999999999999999999999999,3.347883616780079475458459212)
(0.5199999999999999999999999999,2.973037758219996513199228676)
(0.5299999999999999999999999999,2.634964754739207607589602182)
(0.5399999999999999999999999999,2.330600168028682449712596851)
(0.5499999999999999999999999999,2.057079602728938881782014276)
(0.5599999999999999999999999999,1.811731849526851974888215643)
(0.5699999999999999999999999999,1.592071363273333449258930595)
(0.5799999999999999999999999999,1.395790264592613793193107804)
(0.5899999999999999999999999999,1.220750024801029588629612509)
(0.5999999999999999999999999999,1.064972968849014570738009102)
(0.6099999999999999999999999999,0.9266337090529745829497283098)
(0.6199999999999999999999999999,0.8040506032421436529502188197)
(0.6299999999999999999999999999,0.6956773142935737278953165664)
(0.6399999999999999999999999999,0.6000945335828484520729664871)
(0.6499999999999999999999999999,0.5160019183851058048608615062)
(0.6599999999999999999999999999,0.4422102824932734723852967661)
(0.6699999999999999999999999999,0.3776340700748442896394133312)
(0.6799999999999999999999999999,0.3212841348834891250179487532)
(0.6899999999999999999999999999,0.2722608402152899327179309314)
(0.6999999999999999999999999999,0.2297474893069316371408115573)
(0.7099999999999999999999999999,0.1930040910861989698630156271)
(0.7199999999999999999999999999,0.1613614621891930253258516617)
(0.7299999999999999999999999999,0.1342156628522034383917738953)
(0.7399999999999999999999999999,0.1110227615790083457114122966)
(0.7500000000000000000000000000,0.09129392129667414518098480549)
(0.7599999999999999999999999999,0.07459079797405312211187159854)
(0.7699999999999999999999999999,0.06052124132473794610248824865)
(0.7799999999999999999999999999,0.04873528619520886474474134312)
(0.7899999999999999999999999999,0.03892142250086749266271155850)
(0.7999999999999999999999999999,0.03080313107503010887527356618)
(0.8099999999999999999999999999,0.02413567250142808775689375590)
(0.8199999999999999999999999999,0.01870311587666825308627117243)
(0.8299999999999999999999999999,0.01431559446691944601678069902)
(0.8399999999999999999999999999,0.01080677535797030118779995171)
(0.8499999999999999999999999999,0.008031530428166537313088826674)
(0.8599999999999999999999999999,0.005863796280892651616045409318)
(0.8699999999999999999999999999,0.004194611141076388195622582279)
(0.8799999999999999999999999999,0.002930317134784240786576375213)
(0.8899999999999999999999999999,0.001990916820450637832948807979)
(0.8999999999999999999999999999,0.001308573314500336314393575834)
(0.9099999999999999999999999999,0.0008262438444779515009749122133)
(0.9199999999999999999999999999,0.0004964370620328922663686765112)
(0.9299999999999999999999999999,0.0002800849501432968528544120962)
(0.9399999999999999999999999999,0.0001455206587485309187589983425)
(0.9499999999999999999999999999,0.00006755409634153535113332324454)
(0.9599999999999999999999999999,0.00002663758867231954273129854073)
(0.9699999999999999999999999999,0.000008114386827604695137558360759)
(0.9799999999999999999999999999,0.000001543263454951985960816259945)
(0.9899999999999999999999999999,0.00000009287616753530200698777679283)
(1.000000000000000000000000000,0)
(1.009999999999999999999999999,0.00000008613535242271793720817881641)
(1.019999999999999999999999999,0.000001327383632453574056960242273)
(1.029999999999999999999999999,0.000006472849519208711184577737210)
(1.039999999999999999999999999,0.00001970717637751214949546526075)
(1.049999999999999999999999999,0.00004635314997888051879883070784)
(1.059999999999999999999999999,0.00009261061561523324548962036876)
(1.069999999999999999999999999,0.0001653282453215230156051138830)
(1.079999999999999999999999999,0.0002718049657487095079831033217)
(1.089999999999999999999999999,0.0004196181138178058712824946368)
(1.099999999999999999999999999,0.0006164756272648974614962677827)
(1.099999999999999999999999999,0.0006164756272648974614962677827)
(1.199999999999999999999999999,0.006870279746547869692524606156)
(1.299999999999999999999999999,0.02451425929226668848552443352)
(1.399999999999999999999999999,0.05530486595233524676133790522)
(1.500000000000000000000000000,0.09765544070412340678441505311)
(1.599999999999999999999999999,0.1484133662890015288766060733)
(1.699999999999999999999999999,0.2041828834745631596498302481)
(1.799999999999999999999999999,0.2620135130277175192931976650)
(1.899999999999999999999999999,0.3196398583984175776395640284)
(2.000000000000000000000000000,0.3754772776917356690282702906)
(2.142857142857142857142857142,0.4502313491226790796900981145)
(2.285714285714285714285714285,0.5178521605298004955131946576)
(2.428571428571428571428571428,0.5779802204499079942278058454)
(2.571428571428571428571428571,0.6308850124153752579541337641)
(2.714285714285714285714285714,0.6771425457165369193256163032)
(2.857142857142857142857142857,0.7174458390192943996234368404)
(3.000000000000000000000000000,0.7525010360986485727517631927)
(3.142857142857142857142857142,0.7829749879942698159458508626)
(3.285714285714285714285714285,0.8094722550337551220911958042)
(3.428571428571428571428571428,0.8325281629388328047823509839)
(3.571428571428571428571428571,0.8526101345199758064458287717)
(3.714285714285714285714285714,0.8701229137173289116087300433)
(3.857142857142857142857142857,0.8854152900121340605812737059)
(4.000000000000000000000000000,0.8987870701281932147462079378)
(4.142857142857142857142857142,0.9104956815780882370859628481)
(4.285714285714285714285714285,0.9207621415644603190499847130)
(4.428571428571428571428571428,0.9297763100393346042082318535)
(4.571428571428571428571428571,0.9377014395533425632455706355)
(4.714285714285714285714285714,0.9446780780755271456938317299)
(4.857142857142857142857142857,0.9508273974961405102958036830)
(5.000000000000000000000000000,0.9562540230526573686678401977)


\comment{\pscircle*[linecolor=green](0,0){0.02}
\pscircle*[linecolor=green](0.09999999999999999999999999999,80.48304170441465810207415387){0.02}
\pscircle*[linecolor=green](0.1999999999999999999999999999,55.52726985520684582203751378){0.02}
\pscircle*[linecolor=green](0.2999999999999999999999999999,27.17000506602518061597947147){0.02}
\pscircle*[linecolor=green](0.3999999999999999999999999999,10.98479882256070828538534132){0.02}
\pscircle*[linecolor=green](0.5000000000000000000000000000,3.762772782494687754526881867){0.02}
\pscircle*[linecolor=green](0.5999999999999999999999999999,1.064972968849014570738009102){0.02}
\pscircle*[linecolor=green](0.6999999999999999999999999999,0.2297474893069316371408115573){0.02}
\pscircle*[linecolor=green](0.7999999999999999999999999999,0.03080313107503010887527356618){0.02}
\pscircle*[linecolor=green](0.8999999999999999999999999999,0.001308573314500336314393575834){0.02}
\pscircle*[linecolor=green](0.9099999999999999999999999999,0.0008262438444779515009749122133){0.02}
\pscircle*[linecolor=green](0.9199999999999999999999999999,0.0004964370620328922663686765112){0.02}
\pscircle*[linecolor=green](0.9299999999999999999999999999,0.0002800849501432968528544120962){0.02}
\pscircle*[linecolor=green](0.9399999999999999999999999999,0.0001455206587485309187589983425){0.02}
\pscircle*[linecolor=green](0.9499999999999999999999999999,0.00006755409634153535113332324454){0.02}
\pscircle*[linecolor=green](0.9599999999999999999999999999,0.00002663758867231954273129854073){0.02}
\pscircle*[linecolor=green](0.9699999999999999999999999999,0.000008114386827604695137558360759){0.02}
\pscircle*[linecolor=green](0.9799999999999999999999999999,0.000001543263454951985960816259945){0.02}
\pscircle*[linecolor=green](0.9899999999999999999999999999,0.00000009287616753530200698777679283){0.02}
\pscircle*[linecolor=green](1.000000000000000000000000000,0){0.02}
\pscircle*[linecolor=green](1.009999999999999999999999999,0.00000008613535242271793720817881641){0.02}
\pscircle*[linecolor=green](1.019999999999999999999999999,0.000001327383632453574056960242273){0.02}
\pscircle*[linecolor=green](1.029999999999999999999999999,0.000006472849519208711184577737210){0.02}
\pscircle*[linecolor=green](1.039999999999999999999999999,0.00001970717637751214949546526075){0.02}
\pscircle*[linecolor=green](1.049999999999999999999999999,0.00004635314997888051879883070784){0.02}
\pscircle*[linecolor=green](1.059999999999999999999999999,0.00009261061561523324548962036876){0.02}
\pscircle*[linecolor=green](1.069999999999999999999999999,0.0001653282453215230156051138830){0.02}
\pscircle*[linecolor=green](1.079999999999999999999999999,0.0002718049657487095079831033217){0.02}
\pscircle*[linecolor=green](1.089999999999999999999999999,0.0004196181138178058712824946368){0.02}
\pscircle*[linecolor=green](1.099999999999999999999999999,0.0006164756272648974614962677827){0.02}
\pscircle*[linecolor=green](1.099999999999999999999999999,0.0006164756272648974614962677827){0.02}
\pscircle*[linecolor=green](1.199999999999999999999999999,0.006870279746547869692524606156){0.02}
\pscircle*[linecolor=green](1.299999999999999999999999999,0.02451425929226668848552443352){0.02}
\pscircle*[linecolor=green](1.399999999999999999999999999,0.05530486595233524676133790522){0.02}
\pscircle*[linecolor=green](1.500000000000000000000000000,0.09765544070412340678441505311){0.02}
\pscircle*[linecolor=green](1.599999999999999999999999999,0.1484133662890015288766060733){0.02}
\pscircle*[linecolor=green](1.699999999999999999999999999,0.2041828834745631596498302481){0.02}
\pscircle*[linecolor=green](1.799999999999999999999999999,0.2620135130277175192931976650){0.02}
\pscircle*[linecolor=green](1.899999999999999999999999999,0.3196398583984175776395640284){0.02}
\pscircle*[linecolor=green](2.000000000000000000000000000,0.3754772776917356690282702906){0.02}
}

\endpspicture
\end{center}



\section{Other Functions and Programs}
You can see a complete list of elliptic-curves functions by typing {\tt ?5}:
{\tiny\begin{verbatim}
                                ? ?5
                                elladd          ellak           ellan           ellap
                                ellbil          ellchangecurve  ellchangepoint  elleisnum
                                elleta          ellglobalred    ellheight       ellheightmatrix
                                ellinit         ellisoncurve    ellj            elllocalred
                                elllseries      ellorder        ellordinate     ellpointtoz
                                ellpow          ellrootno       ellsigma        ellsub
                                elltaniyama     elltors         ellwp           ellzeta          ellztopoint
\end{verbatim}}
I have only described a small subset of these.  To understand many of
them, you must first learn how to view an elliptic curve as a
``donut'', that is, as quotient of the complex numbers by a {\em
lattice}, and also as a quotient of the upper half plane.

There is a Maple package called APECS for computing with elliptic
curves, which is more sophisticated than PARI in certain ways,
especially in connection with algorithms that involve lots of
commutative algebra.  MAGMA also offers sophisticated features for
computing with elliptic curves, which are built in to the standard
distribution.  I will give a demonstrations of MAGMA in the Basic
Notions seminar at 3pm on Monday, December 3 in SC 507. There is also
a C++ library called LiDIA that has libraries with some powerful
elliptic curves features.

%\section{My Curve is Bigger than Yours}

%\section{Computing $E(\Q)$}

%\section{Literature}


\end{document}