The source code is organized into several subdirectories.
All include files are in the include directory.
The arith directory contains
code for implementing finite fields of any characteristic
greater than 3: modular arithmetic, polynomial rings, and
finally polynomial rings modulo a polynomial. In future, finite
fields of low characteristic may be implemented.
The ecc directory contains code
for arbitrary precision complex numbers, curve generation
(which depends on the former), curve group operations and
pairings. A separate source file is dedicated to each type of
pairing, containing optimizations tailored for its pairing.
The misc directory contains
code for dynamic arrays, symbol tables, parsing, benchmarking,
debugging and so on.
The test directory contains
test programs. They were used to generate the files in the
param directory.