Skip to content

EdgarBarrantes/field-matrix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

crates.io Tests

field-matrix-utils

Simple matrix library for Rust. Used for use with Finite fields.

Not safe for production use. It was only done for educational purposes.

Example

// 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();
...

Features:

  • Addition
  • Subtraction
  • Multiplication
  • Transpose
  • Determinant
  • Inverse
  • Is square
  • Adjoint
  • LU decomposition
  • Scalar multiplication
  • Vector multiplication
  • Sumation
  • Get element at index
  • Set element at index
  • Is identity
  • Equality
  • Display
  • Linear equations Ax = b for x solution

About

A small Rust library to handle matrices made from elements of finite fields

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy