diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-19 09:26:03 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-19 09:26:03 +0000 |
commit | 9918693037dce8aa4bb6f08741b6812923486c18 (patch) | |
tree | 21d2b40bec7e6a7ea664acee056eb3d08e15a1cf /vendor/itertools/benches/powerset.rs | |
parent | Releasing progress-linux version 1.75.0+dfsg1-5~progress7.99u1. (diff) | |
download | rustc-9918693037dce8aa4bb6f08741b6812923486c18.tar.xz rustc-9918693037dce8aa4bb6f08741b6812923486c18.zip |
Merging upstream version 1.76.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/itertools/benches/powerset.rs')
-rw-r--r-- | vendor/itertools/benches/powerset.rs | 67 |
1 files changed, 60 insertions, 7 deletions
diff --git a/vendor/itertools/benches/powerset.rs b/vendor/itertools/benches/powerset.rs index 074550bc4..018333d31 100644 --- a/vendor/itertools/benches/powerset.rs +++ b/vendor/itertools/benches/powerset.rs @@ -20,17 +20,64 @@ fn powerset_n(c: &mut Criterion, n: usize) { }); } -fn powerset_0(c: &mut Criterion) { powerset_n(c, 0); } +fn powerset_n_fold(c: &mut Criterion, n: usize) { + let id = format!("powerset {} fold", n); + c.bench_function(id.as_str(), move |b| { + b.iter(|| { + for _ in 0..calc_iters(n) { + (0..n).powerset().fold(0, |s, elt| s + black_box(elt).len()); + } + }) + }); +} + +fn powerset_0(c: &mut Criterion) { + powerset_n(c, 0); +} + +fn powerset_1(c: &mut Criterion) { + powerset_n(c, 1); +} + +fn powerset_2(c: &mut Criterion) { + powerset_n(c, 2); +} -fn powerset_1(c: &mut Criterion) { powerset_n(c, 1); } +fn powerset_4(c: &mut Criterion) { + powerset_n(c, 4); +} -fn powerset_2(c: &mut Criterion) { powerset_n(c, 2); } +fn powerset_8(c: &mut Criterion) { + powerset_n(c, 8); +} -fn powerset_4(c: &mut Criterion) { powerset_n(c, 4); } +fn powerset_12(c: &mut Criterion) { + powerset_n(c, 12); +} -fn powerset_8(c: &mut Criterion) { powerset_n(c, 8); } +fn powerset_0_fold(c: &mut Criterion) { + powerset_n_fold(c, 0); +} -fn powerset_12(c: &mut Criterion) { powerset_n(c, 12); } +fn powerset_1_fold(c: &mut Criterion) { + powerset_n_fold(c, 1); +} + +fn powerset_2_fold(c: &mut Criterion) { + powerset_n_fold(c, 2); +} + +fn powerset_4_fold(c: &mut Criterion) { + powerset_n_fold(c, 4); +} + +fn powerset_8_fold(c: &mut Criterion) { + powerset_n_fold(c, 8); +} + +fn powerset_12_fold(c: &mut Criterion) { + powerset_n_fold(c, 12); +} criterion_group!( benches, @@ -40,5 +87,11 @@ criterion_group!( powerset_4, powerset_8, powerset_12, + powerset_0_fold, + powerset_1_fold, + powerset_2_fold, + powerset_4_fold, + powerset_8_fold, + powerset_12_fold, ); -criterion_main!(benches);
\ No newline at end of file +criterion_main!(benches); |