#galois-field #macro #clone

macro-galois-field

宏伽罗瓦域

1个不稳定版本

0.1.0 2020年7月19日

#15#galois-field

MIT 许可证

8KB
136 代码行

伽罗瓦域推导宏

快速开始

use macro_galois_field::Field;

#[derive(Field, Debug, Default, Copy, Clone)]
#[prime = 2]
struct Fp2(u64);

let a = Fp2(3);
let b = Fp2(3);
assert_eq!(a + b, Fp2(0), "{} + {}", a.0, b.0);
assert_eq!(a - b, Fp2(0), "{} - {}", a.0, b.0);
assert_eq!(a - b, Fp2(2), "{} - {}", a.0, b.0);
assert_eq!(a * b, Fp2(1), "{} * {}", a.0, b.0);
assert_eq!(a * b, Fp2(3), "{} * {}", a.0, b.0);
assert_eq!(a / b, Fp2(1), "{} / {}", a.0, b.0);

let a = Fp2(3);
let b = Fp2(100);
assert_eq!(a + b, Fp2(1), "{} + {}", a.0, b.0);
assert_eq!(a - b, Fp2(1), "{} - {}", a.0, b.0);

依赖

~2MB
~46K SLoC