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.