arnaucube
arnaucube/ark-curves-cherry-pickedPublic Self-hosted repository
Work
Pratyush Mishra pratyushmishra@berkeley.edu
Thu, 10 Dec 2020 18:22:16 -0800
commit

ac0dcc7ae908f94dcd135e7465f76cf98f30435b

parent

76cc7aa0444288ad9b9fd9b48fcb4c3dd27f0661

M curve-benches/src/macros/ec.rs → curve-benches/src/macros/ec.rs

@@ -186,7 +186,7 @@ tmp.serialize_unchecked(&mut bytes)

}); } - $crate::bencher::benchmark_group!( + $crate::benchmark_group!( group_ops, rand, mul_assign,
M curve-benches/src/macros/field.rs → curve-benches/src/macros/field.rs

@@ -8,7 +8,7 @@ use super::*;

field_common!($f, $f_type); sqrt!($f, $f_type); prime_field!($f, $f_type, $f_repr, $f_repr_type); - $crate::bencher::benchmark_group!( + $crate::benchmark_group!( $modname, // common stuff add_assign,

@@ -44,7 +44,7 @@ mod [<_ $modname>] {

use super::*; field_common!($f, $f_type); sqrt!($f, $f_type); - $crate::bencher::benchmark_group!( + $crate::benchmark_group!( $modname, // common stuff add_assign,

@@ -71,7 +71,7 @@ crate::paste! {

mod [<_ $modname>] { use super::*; field_common!($f, $f_type); - $crate::bencher::benchmark_group!( + $crate::benchmark_group!( $modname, // common stuff add_assign,
M curve-benches/src/macros/pairing.rs → curve-benches/src/macros/pairing.rs

@@ -65,7 +65,7 @@ tmp

}); } - $crate::bencher::benchmark_group!( + $crate::benchmark_group!( pairing, miller_loop, final_exponentiation,
M curve-benches/src/macros/utils.rs → curve-benches/src/macros/utils.rs

@@ -8,3 +8,29 @@ ($tmp:ident, $func:ident) => {

$tmp.$func(); }; } + +/// Defines a function called `$group_name` that returns the test description +/// values for the listed functions `$function`. +#[macro_export] +macro_rules! benchmark_group { + ($group_name:ident, $($function:path),+) => { + pub fn $group_name() -> ::std::vec::Vec<$crate::TestDescAndFn> { + use $crate::{TestDescAndFn, TestFn, TestDesc}; + use std::borrow::Cow; + let mut benches = ::std::vec::Vec::new(); + $( + benches.push(TestDescAndFn { + desc: TestDesc { + name: Cow::from(module_path!().to_string() + "::" + stringify!($function)), + ignore: false, + }, + testfn: TestFn::StaticBenchFn($function), + }); + )+ + benches + } + }; + ($group_name:ident, $($function:path,)+) => { + benchmark_group!($group_name, $($function),+); + }; +}