7个版本 (3个稳定)
新 1.1.0 | 2024年8月12日 |
---|---|
1.0.1 | 2023年1月17日 |
0.4.0 | 2019年5月25日 |
0.2.0 | 2019年4月2日 |
0.1.0 | 2018年12月25日 |
#540 在 算法
101,755 每月下载量
在 32 个crate(2个直接)中使用
21KB
317 行
g2poly
一个用于处理GF(2)域上次数小于64的多项式的小型库。
此库的主要动机是生成形式为GF(2^p)的有限域。GF(2^p)的元素可以表示为GF(2)上的次数小于p的多项式。这些有限域用于加密算法以及错误检测/纠正代码。
示例
use g2poly;
let a = g2poly::G2Poly(0b10011);
assert_eq!(format!("{}", a), "G2Poly { x^4 + x + 1 }");
let b = g2poly::G2Poly(0b1);
assert_eq!(a + b, g2poly::G2Poly(0b10010));
// Since products could overflow in u64, the product is defined as a u128
assert_eq!(a * a, g2poly::G2PolyProd(0b100000101));
// This can be reduced using another polynomial
let s = a * a % g2poly::G2Poly(0b1000000);
assert_eq!(s, g2poly::G2Poly(0b101));
许可协议
// 根据Apache License 2.0