| Crates.io | field-matrix-utils |
| lib.rs | field-matrix-utils |
| version | 0.1.1 |
| created_at | 2023-03-04 07:40:36.361402+00 |
| updated_at | 2023-03-04 15:12:50.443675+00 |
| description | A library for working with matrices over finite fields |
| homepage | |
| repository | https://github.com/edgarbarrantes/field-matrix |
| max_upload_size | |
| id | 800435 |
| size | 32,252 |
Simple matrix library for Rust. Used for use with Finite fields.
Not safe for production use. It was only done for educational purposes.
// Arkworks has a macro to generate the modulus and generator for a finite field.
// Type F is field element for use in our matrix.
// You should be able to use any. This is just an example.
use ark_ff::{Fp64, MontBackend};
#[derive(ark_ff::MontConfig)]
#[modulus = "127"]
#[generator = "6"]
pub struct F127Config;
type F = Fp64<MontBackend<F127Config, 1>>;
// The good stuff starts here.
let a: Matrix<F> = Matrix::new(vec![
vec![F::from(1), F::from(2)],
vec![F::from(3), F::from(4)],
]);
let b: Matrix<F> = a.transpose();
let c: Matrix<F> = a + b;
let d: Matrix<F> = a * b;
let det: F = a.determinant();
...