Hi!
Thanks Ed for the kind reception of this idea.
To show what I have done so far I have set up a git repository here:
https://github.com/CaptainSifff/zeta
Obviously it is not yet in a state where it looks like sth. from the standard 
library; it still uses my conventions right now.
This commit
https://github.com/CaptainSifff/zeta/commit/6f4d70975f0a064a1d551fd5319f5ac3391f4234
gives an example where the old implementation failed and which essentially led 
me to recode all this.
So, what do you think,
What it be nice to have that functionality in gcc and is it worthwhile to patch 
it up for the std library?
I would be willing to do the work and get a copyright assignment.
 
Another thing:
I fiddled with the code for the evaluation of the Riemann Zeta function.
By removing a lot of calls to special functions in the innermost loop I
could speed it up by about a factor of 3 on my machines(core2 + core-i7).
The commits are
https://github.com/CaptainSifff/zeta/commit/d1d32f2ac2422d9c5408e1b850984dcb3cd2aeb6
and to clean things up:
https://github.com/CaptainSifff/zeta/commit/e48ba770a0591af8d56150401a50807218c00026
The basic idea is to replace the evaluation of the binomial coefficient via 
exp(log(gamma(x)))
by a recursive relation of the binomial coefficient. This does not worsen the 
numerical stability since
all intermediate results are perfectly representable. Of course that hard 
boundary where the result of the binomial coefficient is not
representable anymore is still present.
 

Florian.

Reply via email to