MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

How do I let them know about a bug ?

first of all let me express my joy
in the discovery of this newsgroup.

I was playing with Mathematica 6
(which has some very very nice features!)
of a collegue of mine and exploring
the new features.

I saw that RamanujanTau[n] has been
moved into the kernel and has a much more
efficient implementation.

In Issues, they say that when evaluated
on large prime operands it can take
long time, and they make this example:

RamanujanTau[214928639999] // Timing


By lazily factoring it,
I realized that the computed value was obviously wrong,
so I checked for other prime operands.

To make a long story short I saw that for
prime operands greater than about 2*10^6 the function
returned results that were almost surely wrong.

So I worked a little on Attributes, to see how
the function was implemented.
I discovered that when the operand is a prime
greater or equal to 1999993 the algorithm they used
is wrong.
In that case they uses this formula:
(1/2) p^5 HurwitzClassNumber[4*p]

which is clearly broken (by the way, the nice
HurwitzClassNumber function is hidden).

Indeed there is a way to compute tau(n) using the Hurwitz Class
Number function H(x), and it contains the term  (1/2) p^5 H(4*p)
but it is much more complicated than that, since it needs also
the evaluation of H() in about other O(sqrt(p)) points!
Thus, for a number as large as 214928639999 the right running
time will be simply "too long".

Anyway, the right formula for tau() using H() can be found in the paper:

I hope that this will be useful to anybody which will play
with the fascinating Ramanujan tau function.

I wonder if I have to send a message to the Mathematica Team (how??)
or if they read this newsgroup.


  • Prev by Date: Re: PlotLabel - SubscriptBox - Vers. 6: FontColor not working?
  • Next by Date: Re: Controlling evaluation
  • Previous by thread: Re: Reading excel data
  • Next by thread: Re: How do I let them know about a bug ?