Skip to content
Snippets Groups Projects
Verified Commit 8a8a14c1 authored by STEVAN Antoine's avatar STEVAN Antoine :crab:
Browse files

read matrix elements from arguments

parent 13ff9654
No related branches found
No related tags found
1 merge request!31add an example to compute matrix ranks
Pipeline #4096 failed
use ark_bls12_381::Fr;
use ark_ff::Field;
use komodo::linalg::Matrix;
use rand::{rngs::ThreadRng, Rng};
fn rand<T: Field>(rng: &mut ThreadRng) -> T {
let element: u128 = rng.gen();
T::from(element)
}
fn main() {
let m = Matrix::from_vec_vec(vec![
vec![Fr::from(1), Fr::from(0), Fr::from(0)],
vec![Fr::from(0), Fr::from(0), Fr::from(0)],
vec![Fr::from(0), Fr::from(0), Fr::from(0)],
vec![Fr::from(0), Fr::from(0), Fr::from(0)],
vec![Fr::from(0), Fr::from(0), Fr::from(0)],
])
.unwrap();
let mut rng = rand::thread_rng();
let elements = std::env::args()
.skip(1)
.map(|r| {
r.clone()
.split(",")
.map(|x| {
if x == "-1" {
rand(&mut rng)
} else {
let y: u128 = x.parse().unwrap();
Fr::from(y)
}
})
.collect::<Vec<_>>()
})
.collect::<Vec<_>>();
let m = Matrix::from_vec_vec(elements).unwrap();
eprintln!("{}", m);
eprintln!("m: {}", m.height);
eprintln!("n: {}", m.width);
eprintln!("r: {}", m.rank());
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment