On Mon, 2007-07-30 at 17:24 -0700, Bill Hart wrote: > Wow!! Excellent work indeed. > > In fact on 64 bit X86 systems you could actually use the 128 bit long > doubles to give you a little bit more precision (I believe it only > gives you 80 bits including exponent and sign, so probably 64 bit > mantissa). >
Actually, even on my 32 bit core duo, the long double type seems to give 64 bits of precision, so using it might help a little. Do you have any idea how to check at run/compile time what the precision of a double or a long double is? > It would be interesting to see the time for Mathematica on a 32 bit > X86 machine, since this would tell us if that is what they do. > > Certainly I think you are right that any remaining optimization would > be in making sure it uses no unnecessary precision. Here is a page > giving information about the remainder of the series after N terms: > > http://mathworld.wolfram.com/PartitionFunctionP.html (see eqn 26). > That's what I'm using, but I took it straight from Rademacher's paper. I think that what is needed is a careful analysis of how many terms (N) will need to be computed to get the remainder to be less than, say, r < .5. Then we know that the error in each term will have to be less than (.5 - r)/N to guarantee that when we round, we will get the right answer. > Also in Pari, I noted that the computation of the Psi function could > dramatically slow the whole computation. I was surprised to find it > figured in the runtime. It may be worthwhile checking if this is > slowing things down at all. It should be computed relatively quickly > if implemented correctly. The main issue was again using the minimum > possible precision. > I don't think that this is slowing things down much, but I could be wrong. I think that most time is spent in the actual computation of A(n,k), (this is the notation I use for the sum of exponentials -- I think that is the notation that Mathworld uses also.) If I set s(h,k) to return 1 every time, without computing anything, I only save about 20 seconds on a 2m 30s computation of p(10^9), I think. --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/ -~----------~----~----~----~------~----~------~--~---