A multimodular algorithm for computing Bernoulli numbers
Number Theory
2008-10-13 v2
Abstract
We describe an algorithm for computing Bernoulli numbers. Using a parallel implementation, we have computed B(k) for k = 10^8, a new record. Our method is to compute B(k) modulo p for many small primes p, and then reconstruct B(k) via the Chinese Remainder Theorem. The asymptotic time complexity is O(k^2 log(k)^(2+epsilon)), matching that of existing algorithms that exploit the relationship between B(k) and the Riemann zeta function. Our implementation is significantly faster than several existing implementations of the zeta-function method.
Cite
@article{arxiv.0807.1347,
title = {A multimodular algorithm for computing Bernoulli numbers},
author = {David Harvey},
journal= {arXiv preprint arXiv:0807.1347},
year = {2008}
}
Comments
10 pages, 1 table, requires algorithm2e package; many minor edits, updated timings for correct GMP version, added data for calcbn package