next up previous contents
Next: Graphing Up: Visualizing Previous: How I learned to   Contents

The formulas and methods used for these graphs

The question that then needs to be asked is ``What does look like?" This is the question that we set about to answer. In order to do so we use the free program PARI (available online at http://www.parigp-home.de/) to generate a list of points which can then be graphed. Fortunately, PARI has a nice built-in feature for computing which makes the process much easier.

The function used to output the -series data was:

{printellseries(fname, curve) =
E = ellinit(curve);
for(x=1,150,
        s=0.0+x/50;
        write(fname,"(",s,",",
        nice(elllseries(E,s,1)),")"));
}
Where the function nice is:
  nice(x)=if(abs(x)<(10^(-25)), return(0), return(x))
This nice function is necessary because otherwise if the value at a certain point is too small, PARI will output in scientific notation, which makes the data unreadable by the program used to graph it. This way, values that are below a certain tolerance are simply converted to 0.

The printellseries function takes as input a filename and a vector defining a curve. It then outputs a list of points for the -series of that curve, computed at intervals of .02 to the file fname.

Using this function, along with a little ingenious shell scripting and the help of the pstricks package of LATEX, we were able to generate the graphs seen in section 4 along with many others.

This method worked well for graphing for real values of . However, is in reality a complex analytic function, so it is defined for any complex value as well. To solve this problem we could not use the built-in elllseries function since it was not able to compute for complex-valued .

In order to compute , we look to the following formula:

Here is the conductor of the curve, is the standard -function, is as above, and

In the formula for , is the standard incomplete function. This formula comes from the solution exercise 24 on page 521 in chapter 10.4 of Henri Cohen's book Advanced Topics in Computational Number Theory (Springer-Verlag, March 2000).

The main problem in using PARI for these computations was that the implementation of the -function in PARI does not include complex-valued arguments. For a while we played with trying to use other formulas to represent so that PARI could be used. In the end, however, we discovered that the -function implementation in Mathematica includes the ability to compute for complex-valued arguments, and so we decided to use Mathematica for that part of the computation and simply used the formulas as listed above. In addition, Mathematica has the ability to output three-dimensional graphs.


next up previous contents
Next: Graphing Up: Visualizing Previous: How I learned to   Contents
Ariel Shwayder 2002-12-11