English

Putting F\"urer Algorithm into Practice with the BPAS Library

Symbolic Computation 2018-11-06 v1

Abstract

Fast algorithms for integer and polynomial multiplication play an important role in scientific computing as well as in other disciplines. In 1971, Sch{\"o}nhage and Strassen designed an algorithm that improved the multiplication time for two integers of at most nn bits to O(lognloglogn)\mathcal{O}(\log n \log \log n). In 2007, Martin F\"urer presented a new algorithm that runs in O(nlogn 2O(logn))O \left(n \log n\ \cdot 2^{O(\log^* n)} \right), where logn\log^* n is the iterated logarithm of nn. We explain how we can put F\"urer's ideas into practice for multiplying polynomials over a prime field Z/pZ\mathbb{Z} / p \mathbb{Z}, for which pp is a Generalized Fermat prime of the form p=rk+1p = r^k + 1 where kk is a power of 22 and rr is of machine word size. When kk is at least 8, we show that multiplication inside such a prime field can be efficiently implemented via Fast Fourier Transform (FFT). Taking advantage of Cooley-Tukey tensor formula and the fact that rr is a 2k2k-th primitive root of unity in Z/pZ\mathbb{Z} / p \mathbb{Z}, we obtain an efficient implementation of FFT over Z/pZ\mathbb{Z} / p \mathbb{Z}. This implementation outperforms comparable implementations either using other encodings of Z/pZ\mathbb{Z} / p \mathbb{Z} or other ways to perform multiplication in Z/pZ\mathbb{Z} / p \mathbb{Z}.

Keywords

Cite

@article{arxiv.1811.01490,
  title  = {Putting F\"urer Algorithm into Practice with the BPAS Library},
  author = {Sviatoslav Covanov and Davood Mohajerani and Marc Moreno-Maza and Lin-Xiao Wang},
  journal= {arXiv preprint arXiv:1811.01490},
  year   = {2018}
}

Comments

54 pages, 7 figures

R2 v1 2026-06-23T05:03:48.654Z