A crate providing explicit syntax for non-stdlib finite field types.
There are two parts to the crate's design:
Semantics: The types should facilitate direct expression of numeric types ranging over finite fields, so that the ideas expressed in the code are clear on their face.
Syntax: Syntax for working with the types should be transparent and universal
where reasonable. For example, Add
for GF(2)
should present the same
interface as Add
for GF(4)
.
The implementations are not great, but they should work as a demonstration. The crate currently uses fixed-length arrays, with the idea that types be created by the programmer using macros. In other words, it stores the factored elements (the 'digits') of a number in the field as elements of a finite-length array.