finite-fields
A crate providing explicit syntax for non-stdlib finite field types.
details
design goals
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,
AddforGF(2)should present the same interface asAddforGF(4).
implementation
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.
roadmap
- Binary types
- Binary macros
- Big refactor about here
- Non-binary types
- Non-binary macros
- Rigorous tests
- Refactor down huge macros
- Tiny pieces