Math-AnyNum
view release on metacpan or search on metacpan
examples/zeta_2n_fast.pl view on Meta::CPAN
#!/usr/bin/perl
# Calculate zeta(2n) using a closed-form formula.
# See also:
# https://en.wikipedia.org/wiki/Riemann_zeta_function
use 5.010;
use strict;
use warnings;
use lib qw(../lib);
use experimental qw(signatures);
use Math::AnyNum qw(tau bernoulli factorial);
sub zeta_2n($n) {
(-1)**($n + 1) * bernoulli(2 * $n) / factorial(2 * $n) * tau**(2 * $n) / 2;
}
for my $i (1 .. 30) {
say "zeta(", 2 * $i, ") = ", zeta_2n($i);
}
( run in 1.714 second using v1.01-cache-2.11-cpan-e1769b4cff6 )