summaryrefslogtreecommitdiffstats
path: root/vendor/itertools/benches/powerset.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-19 09:26:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-19 09:26:03 +0000
commit9918693037dce8aa4bb6f08741b6812923486c18 (patch)
tree21d2b40bec7e6a7ea664acee056eb3d08e15a1cf /vendor/itertools/benches/powerset.rs
parentReleasing progress-linux version 1.75.0+dfsg1-5~progress7.99u1. (diff)
downloadrustc-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.rs67
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);