poly.rs 764 B

12345678910111213141516171819
  1. use spiral_rs::poly::*;
  2. use spiral_rs::params::*;
  3. use spiral_rs::util::*;
  4. use rand::Rng;
  5. use rand::distributions::Standard;
  6. use criterion::{black_box, criterion_group, criterion_main, Criterion};
  7. fn criterion_benchmark(c: &mut Criterion) {
  8. let params = Params::init(2048, &vec![268369921u64, 249561089u64]);
  9. let mut rng = rand::thread_rng();
  10. let mut iter = rng.sample_iter(&Standard);
  11. let m1 = PolyMatrixNTT::random(&params, 2, 1, &mut iter);
  12. let m2 = PolyMatrixNTT::random(&params, 3, 2, &mut iter);
  13. let mut m3 = PolyMatrixNTT::zero(&params, 2, 2);
  14. c.bench_function("nttf 2048", |b| b.iter(|| multiply(black_box(&mut m3), black_box(&m1), black_box(&m2))));
  15. }
  16. criterion_group!(benches, criterion_benchmark);
  17. criterion_main!(benches);