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.