31 releases (9 breaking)
Uses old Rust 2015
0.10.3 | Mar 29, 2017 |
---|---|
0.9.5 | Mar 13, 2017 |
#1936 in Rust patterns
Used in turbo
115KB
3K
SLoC
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,
Add
forGF(2)
should present the same interface asAdd
forGF(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
weird readings
Dependencies
~78KB