Code Monkey home page Code Monkey logo

field-matrix's Introduction

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

field-matrix's People

Contributors

edgarbarrantes avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

field-matrix's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.