Fürer's algorithm
Fürer's algorithm is an integer multiplication algorithm for quite large integers possessing a very low asymptotic complexity, which can be optimized by using the inverse Ackermann function instead of the iterated logarithm. It was designed in 2007 by the swiss mathematician Martin Fürer of Pennsylvania State University [1] as an asymptotically faster algorithm (when analysed on a multitape Turing machine) than its predecessor, the Schönhage-Strassen algorithm published in 1971. [2]
The predecessor to the Fürer algorithm, the Schönhage-Strassen algorithm, used fast Fourier transforms to compute integer products in time (in big O notation) and its authors, Arnold Schönhage and Volker Strassen, also conjectured a lower bound for the problem of . Here, denotes the total number of bits in the two input numbers. Fürer's algorithm reduces the gap between these two bounds: it can be used in order to multiply binary integers of length in time (or by a circuit with that many logic gates), where log*n represents the iterated logarithm operation. However, the difference between the and factors in the time bounds of the Schönhage-Strassen algorithm and the Fürer algorithm for realistic values of is very small. [1]
In 2008, Anindya De, Chandan Saha, Piyush Kurur and Ramprasad Saptharishi [3] gave a similar algorithm that relies on modular arithmetic instead of complex arithmetic to achieve the same running time.
In 2014, David Harvey, Joris van der Hoeven and Grégoire Lecerf [4] showed that an optimized version of Fürer's algorithm achieves a running time of , making the implied constant in the exponent explicit. They also gave a modification to Fürer's algorithm that achieves .
In 2015, Svyatoslav Covanov and Emmanuel Thomé provided another modification that achieves the same running time. [5] Yet it remains just as impractical as the other implementations of Fürer's algorithm. [6] [7]
See also
References
- 1 2 M. Fürer (2007), "Faster Integer Multiplication" Proceedings of the 39th annual ACM Symposium on Theory of Computing, pp. 55-67, June 11-13, 2007, San Diego, California, USA, and SIAM Journal on Computing, Vol. 39 Issue 3, pp. 979-1005, 2007.
- ↑ A. Schönhage and V. Strassen (1971), "Schnelle Multiplikation großer Zahlen", Computing 7, pp. 281–292, 1971.
- ↑ A. De, C. Saha, P. Kurur and R. Saptharishi (2008). "Fast integer multiplication using modular arithmetic" Proceedings of the Symposium on Theory of Computation (STOC), 2008. arXiv:0801.1416
- ↑ D. Harvey, J. van der Hoeven and G. Lecerf (2014), "Even faster integer multiplication", 2014, arXiv:1407.3360
- ↑ S. Covanov and E. Thomé (2015), "Fast arithmetic for faster integer multiplication", 2015 arXiv:1502.02800
- ↑ S. Covanov (2015), "Putting Fürer algorithm into practice", 2015.
- ↑ S. Covanov and E. Thomé (2016), "Fast integer multiplication using generalized Fermat primes", 2016.