MPFQ : Fast Finite fields

Pierrick Gaudry

Luc Sanselme

Emmanuel Thomé

Table of Contents

1. Introduction
Specializing code for a given field
Generalizing code for a large set of fields
Reporting bugs, comments, feature requests...
2. Compile and install
Hardware, system and software requirements
Generating C source and header files
Optional targets
Targets for checking
Targets for benching
Targets for tuning
3. Tuning
Build targets for tuning
Exporting and importing tuning results
4. Writing applications using MPFQ
Organization of MPFQ code
Names of MPFQ functions
General API of an MPFQ field
API for fields of characteristic two
API for prime fields in Montgomery representation
API for polynomials
5. Design of the library
Advantages of automatically generated code
Disadvantages of automatically generated code
6. How to implement or modify a field
Enforcing the API
Input/Output of code_for_xxx()
Splitting information in several files
The inheritance schema, and conflict resolution
The elementary package files: the init_handler functions.
The top-level package file
The main generator file
Some extra notes