3个版本
0.1.2 | 2021年8月11日 |
---|---|
0.1.1 | 2020年12月3日 |
0.1.0 | 2020年12月3日 |
#1221 in 数学
175KB
3.5K SLoC
在no_std
Rust中使用有限域
该crate暴露了多种小型有限域类型。它不依赖于标准库。
截至编写本文时,在谷歌搜索“rust有限域”的前几个结果中显示
- 一个不再编译,且完全不能正确实现有限域的crate
- 一个只实现特征值为二的域的crate
- 一个实现了一般有限域,但未公开高次有限域加法之外的算术的crate
该crate试图提供
- 一个当链接时占用空间小的库
- 支持尽可能多的域,为不可约多项式编写足够的能量
- 小型有限域元素(仅限32位)
- 仅支持小型特征域(适合一个
u8
)
该crate不试图
- 特别快速
- 处理适合,例如,密码学的大素数
该crate在未来应该
- 处理适合
u32
的所有有限域 - 永远不要依赖于
std
- 易于使用,具有直观的接口
- 易于理解的代码,无需不必要的优化
为使上述内容成为现实,最欢迎的将是拉取请求。
欢迎在GitHub跟踪器上的问题。
示例用法
# use tinyfield::prime_power_field::*;
type F = tinyfield::fields::GF9;
let delta = F::elts()
.filter(|x| x * x - 2.into() == F::zero)
.next()
.expect("GF9 should contain a square root of two");