arnaucube
arnaucube/shamirsecretsharingPublic Self-hosted repository
shamirsecretsharing/shamirsecretsharing-rs/benchmarks/benches.rs
shamirsecretsharing-rs/benchmarks/benches.rsRaw
 1#[macro_use]
 2extern crate criterion;
 3extern crate shamirsecretsharing_rs;
 4extern crate num_bigint;
 5
 6use criterion::{Criterion, Benchmark};
 7use shamirsecretsharing_rs::*;
 8use num_bigint::BigInt;
 9
10use std::str::FromStr;
11
12
13mod mod_inv_benches {
14    use super::*;
15
16    pub fn bench_modular_inv(c: &mut Criterion) {
17
18        let modul1 = BigInt::from_str("7237005577332262213973186563042994240857116359379907606001950938285454250989").unwrap();
19        let d1 = BigInt::from_str("182687704666362864775460604089535377456991567872").unwrap();
20
21        let modul2 = BigInt::from_str("7237005577332262213973186563042994240857116359379907606001950938285454250989").unwrap();
22        let d2 = BigInt::from_str("182687704666362864775460604089535377456991567872").unwrap();
23
24        c.bench(
25            "Modular Inverse",
26            Benchmark::new("Kalinski Modular inverse", move |b| b.iter(|| kalinski_inv(&d1, &modul1)))
27        );
28
29        c.bench(
30            "Modular Inverse",
31            Benchmark::new("Standard Mod Inv", move |b| b.iter(|| mod_inverse(d2.clone(), modul2.clone())))
32        );
33    }
34}
35
36criterion_group!(benches,
37                mod_inv_benches::bench_modular_inv);
38criterion_main!(benches);