Math::Prime::Util::ZetaBigFloat - Perl Big Float versions of Riemann Zeta and R
Math::BigFloat versions`of the Riemann Zeta and Riemann R functions. These are
kept in a separate module because they use a lot of big tables that we'd
prefer to only load if needed.
Pure Perl implementations of Riemann Zeta and Riemann R using Math::BigFloat.
These functions are used if:
- The input is a BigInt, a BigFloat, or the bignum module has been
- The Math::Prime::Util::GMP module is not available or old.
If you use these functions a lot, I highly
recommend you install
Math::Prime::Util::GMP, which the main Math::Prime::Util functions will find.
These give much
better performance, and better accuracy. You can also
use Math::Pari and Math::MPFR for the Riemann Zeta function.
my $z = RiemannZeta($s);
Given a floating point input "s" where "s >= 0.5",
returns the floating point value of ζ(s)-1, where ζ(s) is the
Riemann zeta function. One is subtracted to ensure maximum precision for large
values of "s". The zeta function is the sum from k=1 to infinity of
"1 / k^s"
Results are calculated using either Borwein (1991) algorithm 2, or the basic
series. Full input accuracy is attempted, but there are defects in
Math::BigFloat with high accuracy computations that make this difficult.
my $r = RiemannR($x);
Given a positive non-zero floating point input, returns the floating point value
of Riemann's R function. Riemann's R function gives a very close approximation
to the prime counting function.
Accuracy should be about 35 digits.
Bugs in Math::BigFloat (RT 43692, RT 77105) cause many problems with this code.
I've attempted to work around them, but it is possible there are cases they
The accuracy goals (35 digits) are sometimes missed by a digit or two.
Performance is quite bad.
Dana Jacobsen <email@example.com>
Copyright 2012 by Dana Jacobsen <firstname.lastname@example.org>
This program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.