#有限域 #伽罗瓦 #伽罗瓦域

无std g2poly

GF(2)域上多项式的原始实现

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算法

Download history 25257/week @ 2024-04-26 23886/week @ 2024-05-03 21103/week @ 2024-05-10 28190/week @ 2024-05-17 27178/week @ 2024-05-24 32246/week @ 2024-05-31 22134/week @ 2024-06-07 22197/week @ 2024-06-14 29936/week @ 2024-06-21 22420/week @ 2024-06-28 20330/week @ 2024-07-05 33050/week @ 2024-07-12 27792/week @ 2024-07-19 28406/week @ 2024-07-26 22077/week @ 2024-08-02 16444/week @ 2024-08-09

101,755 每月下载量
32 个crate(2个直接)中使用

MIT/Apache

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 http://www.apache.org/licenses/LICENSE-2.0> 或MIT许可证 http://opensource.org/licenses/MIT>,由您选择。此文件不得复制、修改或分发,除非根据那些条款。//

无运行时依赖