Section: Software
Polynomial arithmetic in characteristic 2
Participants : Richard Brent, Pierrick Gaudry, Emmanuel Thomé, Paul Zimmermann [ contact ] .
gf2x is a software library for polynomial multiplication over the binary field, developed together with Richard Brent (Australian National University, Canberra, Australia). There are implementations of various algorithms corresponding to different degrees of the input polynomials. In the case of polynomials that fit into one or two machine-words, the schoolbook algorithm has been improved and implemented using SSE instructions for maximum speed. For small degrees, we switch to Karatsuba's algorithm and then to Toom-Cook's algorithm. These have been implemented using the most recent improvements. Finally, for very large degrees one has to switch to Fourier-transform based algorithms, namely Schönhage's or Cantor's algorithm. In order to choose between these two asymptotically fast algorithms, we have implemented and compared them. The gf2x package is distributed and maintained. It is available from http://gforge.inria.fr/projects/gf2x/ . The software library Ntl , as of version 5.5 (April 2009) can be configured to use gf2x as an auxiliary package for best performance. Ntl being a very widespread library across the community, it is thus expected that gf2x will thus be used in e.g., Sage shortly. Documentation on the link between Ntl and gf2x can be obtained from http://www.shoup.net/ntl/doc/tour-gf2x.html . Work on gf2x was part of the ANC associate team (see below).