#有限 # #算术 # #字段

finitefields

在有限域上执行整数的代数运算

2 个版本

使用旧的 Rust 2015

0.1.1 2021年3月26日
0.1.0 2021年3月24日

#1480 in 数学

GPL-3.0 许可证

56KB
1.5K SLoC

finitefields

crates.io documentation Build Status Byy Me A Coffee

允许在有限域上执行简单的代数运算

参数

  • value - 以 value % 的形式表示的数字
  • modulo - 与模空间大小相对应的整数。为了成为一个有限域,它必须是一个 素数

操作

  • 加法
  • 减法
  • 乘法
  • 除法
  • 求逆

示例

// Simple operations within a finite field

use finitefields::{FF,Finitefield,primes};

fn main(){
    // Pick a prime
    let modulo = primes::PRIMES31[0];
    // Define numbers to be cast into our field
    let num1: FF = 23742687;
    let num2: FF = 87129774;

    let fnum1 = Finitefield::new(num1, modulo).unwrap();
    let fnum2 = Finitefield::new(num2, modulo).unwrap();

    // Compute product
    let product = fnum1 * fnum2;
    assert_eq!(product.value, 174523906);

    // Compute the inverse of the product
    let product_inv = product.inverse().unwrap();
    assert_eq!(product_inv.value, 486606559);

    // Multiply by the product
    assert_eq!((product * product_inv).value, 1);
}

依赖项

~225KB