ark-r1cs-std/cp-benches/benches/crypto_primitives/comm.rs
cp-benches/benches/crypto_primitives/comm.rsRaw
1use rand;
2
3#[macro_use]
4extern crate criterion;
5
6use algebra::{ed_on_bls12_377::EdwardsProjective as Edwards, UniformRand};
7use criterion::Criterion;
8use crypto_primitives::commitment::{pedersen::*, CommitmentScheme};
9
10#[derive(Clone, PartialEq, Eq, Hash)]
11pub struct CommWindow;
12
13impl Window for CommWindow {
14 const WINDOW_SIZE: usize = 250;
15 const NUM_WINDOWS: usize = 8;
16}
17
18fn pedersen_comm_setup(c: &mut Criterion) {
19 c.bench_function("Pedersen Commitment Setup", move |b| {
20 b.iter(|| {
21 let mut rng = &mut rand::thread_rng();
22 Commitment::<Edwards, CommWindow>::setup(&mut rng).unwrap()
23 })
24 });
25}
26
27fn pedersen_comm_eval(c: &mut Criterion) {
28 let mut rng = &mut rand::thread_rng();
29 let parameters = Commitment::<Edwards, CommWindow>::setup(&mut rng).unwrap();
30 let input = vec![5u8; 128];
31 c.bench_function("Pedersen Commitment Eval", move |b| {
32 b.iter(|| {
33 let rng = &mut rand::thread_rng();
34 let commitment_randomness = Randomness::rand(rng);
35 Commitment::<Edwards, CommWindow>::commit(¶meters, &input, &commitment_randomness)
36 .unwrap()
37 })
38 });
39}
40
41criterion_group! {
42 name = comm_setup;
43 config = Criterion::default().sample_size(10);
44 targets = pedersen_comm_setup
45}
46
47criterion_group! {
48 name = comm_eval;
49 config = Criterion::default().sample_size(10);
50 targets = pedersen_comm_eval
51}
52
53criterion_main!(comm_setup, comm_eval);