You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
1.2 KiB

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