Modular SIMD arithmetic in Mathemagix


Modular integer arithmetic occurs in many algorithms for computer algebra, cryptography, and error correcting codes. Although recent microprocessors typically offer a wide range of highly optimized arithmetic functions, modular integer operations still require dedicated implementations. In this article, we survey existing algorithms for modular integer arithmetic, and present detailed vectorized counterparts. We also present several applications, such as fast modular Fourier transforms and multiplication of integer polynomials and matrices. The vectorized algorithms have been implemented in C++ inside the free computer algebra and analysis system Mathemagix. The performance of our implementation is illustrated by various benchmarks.

Authors: Joris van der Hoeven, Grégoire Lecerf, Guillaume Quintin

Keywords: modular integer arithmetic, fast Fourier transform, integer product, polynomial product, matrix product, Mathemagix

ACM categories and subject descriptors: G.4 [Mathematical Software]: Parallel and vector implementations

View: Html, TeXmacs, Pdf, BibTeX