| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (26 ms vs. 27 ms) |
Inf times more (51 kB vs. 0 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (26 ms vs. 27 ms) |
548 times more (51 kB vs. 96 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (10 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (30 ms vs. 27 ms) |
1404 times more (132 kB vs. 96 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (26 ms vs. 26 ms) |
254 times more (52 kB vs. 208 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (26 ms vs. 27 ms) |
236 times more (52 kB vs. 224 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (27 ms vs. 27 ms) |
208 times more (52 kB vs. 256 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (27 ms vs. 27 ms) |
124 times more (55 kB vs. 448 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (26 ms vs. 26 ms) |
53 times more (65 kB vs. 1 kB) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (31 ms vs. 27 ms) |
619 times more (136 kB vs. 224 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (31 ms vs. 27 ms) |
498 times more (140 kB vs. 288 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (15 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (31 ms vs. 27 ms) |
375 times more (153 kB vs. 416 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (39 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (34 ms vs. 27 ms) |
186 times more (215 kB vs. 1 kB) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (44 LLVM lines) |
similar (5 μs vs. 5 μs) |
similar (32 ms vs. 27 ms) |
34 times more (144 kB vs. 4 kB) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (27 ms vs. 27 ms) |
470 times more (52 kB vs. 112 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (26 ms vs. 27 ms) |
412 times more (52 kB vs. 128 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (26 ms vs. 27 ms) |
333 times more (52 kB vs. 160 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (26 ms vs. 27 ms) |
158 times more (55 kB vs. 352 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (27 ms vs. 27 ms) |
57 times more (65 kB vs. 1 kB) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (26 ms vs. 27 ms) |
254 times more (52 kB vs. 208 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (27 ms vs. 27 ms) |
236 times more (52 kB vs. 224 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (27 ms vs. 27 ms) |
208 times more (52 kB vs. 256 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (26 ms vs. 27 ms) |
124 times more (55 kB vs. 448 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (26 ms vs. 28 ms) |
53 times more (65 kB vs. 1 kB) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (13 LLVM lines) |
similar (60 ns vs. 50 ns) |
similar (30 ms vs. 27 ms) |
542 times more (136 kB vs. 256 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (19 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (31 ms vs. 27 ms) |
359 times more (140 kB vs. 400 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (32 LLVM lines) |
similar (70 ns vs. 70 ns) |
similar (32 ms vs. 27 ms) |
200 times more (153 kB vs. 784 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (107 LLVM lines) |
similar (90 ns vs. 90 ns) |
similar (38 ms vs. 27 ms) |
80 times more (217 kB vs. 3 kB) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
similar (44 LLVM lines) |
similar (6 μs vs. 6 μs) |
similar (32 ms vs. 27 ms) |
14 times more (157 kB vs. 11 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (55 ms vs. 35 ms) |
29 times more (3 MB vs. 109 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (55 ms vs. 34 ms) |
23 times more (3 MB vs. 139 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (10 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (47 ms vs. 38 ms) |
16 times more (3 MB vs. 210 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (66 ms vs. 35 ms) |
23 times more (3 MB vs. 139 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (66 ms vs. 35 ms) |
23 times more (3 MB vs. 139 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (67 ms vs. 35 ms) |
23 times more (3 MB vs. 139 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (68 ms vs. 35 ms) |
24 times more (3 MB vs. 141 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
190 times less (50 ns vs. 10 μs) |
2 times more (70 ms vs. 35 ms) |
25 times more (4 MB vs. 148 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (59 ms vs. 39 ms) |
17 times more (4 MB vs. 210 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (22 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (59 ms vs. 39 ms) |
16 times more (4 MB vs. 235 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (37 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (60 ms vs. 39 ms) |
17 times more (4 MB vs. 236 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (181 LLVM lines) |
similar (80 ns vs. 80 ns) |
similar (70 ms vs. 40 ms) |
25 times more (6 MB vs. 239 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (641 LLVM lines vs. 17 kB allocs) |
64 times less (220 ns vs. 14 μs) |
4 times more (183 ms vs. 40 ms) |
53 times more (13 MB vs. 253 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (67 ms vs. 35 ms) |
23 times more (3 MB vs. 139 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (66 ms vs. 34 ms) |
23 times more (3 MB vs. 141 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (67 ms vs. 35 ms) |
16 times more (3 MB vs. 205 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (68 ms vs. 35 ms) |
24 times more (3 MB vs. 142 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
338 times less (50 ns vs. 17 μs) |
2 times more (70 ms vs. 35 ms) |
25 times more (4 MB vs. 150 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (68 ms vs. 35 ms) |
23 times more (3 MB vs. 139 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (67 ms vs. 35 ms) |
23 times more (3 MB vs. 140 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (66 ms vs. 34 ms) |
23 times more (3 MB vs. 141 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (67 ms vs. 34 ms) |
24 times more (3 MB vs. 142 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
340 times less (50 ns vs. 17 μs) |
2 times more (71 ms vs. 35 ms) |
25 times more (4 MB vs. 150 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (15 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (59 ms vs. 39 ms) |
15 times more (4 MB vs. 236 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (25 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (60 ms vs. 39 ms) |
16 times more (4 MB vs. 237 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (46 LLVM lines) |
similar (70 ns vs. 70 ns) |
similar (63 ms vs. 40 ms) |
17 times more (4 MB vs. 240 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (169 LLVM lines) |
similar (110 ns vs. 110 ns) |
2 times more (85 ms vs. 39 ms) |
21 times more (6 MB vs. 277 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (1110 LLVM lines vs. 560 kB allocs) |
106 times less (651 ns vs. 69 μs) |
12 times more (489 ms vs. 39 ms) |
16 times more (13 MB vs. 794 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (56 ms vs. 35 ms) |
29 times more (3 MB vs. 109 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (56 ms vs. 35 ms) |
23 times more (3 MB vs. 139 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (10 LLVM lines) |
similar (60 ns vs. 50 ns) |
similar (47 ms vs. 39 ms) |
17 times more (4 MB vs. 210 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (68 ms vs. 35 ms) |
23 times more (3 MB vs. 139 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (66 ms vs. 35 ms) |
23 times more (3 MB vs. 139 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (66 ms vs. 35 ms) |
23 times more (3 MB vs. 139 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (67 ms vs. 35 ms) |
24 times more (3 MB vs. 141 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
191 times less (50 ns vs. 10 μs) |
similar (71 ms vs. 36 ms) |
25 times more (4 MB vs. 148 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (59 ms vs. 39 ms) |
17 times more (4 MB vs. 210 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (21 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (60 ms vs. 40 ms) |
16 times more (4 MB vs. 235 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (36 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (61 ms vs. 39 ms) |
18 times more (4 MB vs. 236 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (180 LLVM lines) |
similar (90 ns vs. 80 ns) |
similar (72 ms vs. 40 ms) |
26 times more (6 MB vs. 239 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (642 LLVM lines vs. 17 kB allocs) |
66 times less (210 ns vs. 14 μs) |
4 times more (185 ms vs. 40 ms) |
59 times more (15 MB vs. 253 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (67 ms vs. 35 ms) |
23 times more (3 MB vs. 139 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (66 ms vs. 35 ms) |
23 times more (3 MB vs. 141 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (67 ms vs. 35 ms) |
16 times more (3 MB vs. 205 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (67 ms vs. 35 ms) |
24 times more (3 MB vs. 142 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
341 times less (50 ns vs. 17 μs) |
2 times more (70 ms vs. 35 ms) |
25 times more (4 MB vs. 150 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (68 ms vs. 35 ms) |
23 times more (3 MB vs. 139 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (67 ms vs. 35 ms) |
23 times more (3 MB vs. 140 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (66 ms vs. 34 ms) |
23 times more (3 MB vs. 141 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (67 ms vs. 35 ms) |
24 times more (3 MB vs. 142 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
342 times less (50 ns vs. 17 μs) |
2 times more (70 ms vs. 35 ms) |
25 times more (4 MB vs. 150 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (15 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (59 ms vs. 39 ms) |
16 times more (4 MB vs. 236 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (27 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (61 ms vs. 40 ms) |
16 times more (4 MB vs. 237 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (46 LLVM lines) |
similar (80 ns vs. 70 ns) |
similar (64 ms vs. 40 ms) |
17 times more (4 MB vs. 240 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (171 LLVM lines) |
similar (130 ns vs. 110 ns) |
2 times more (90 ms vs. 40 ms) |
24 times more (7 MB vs. 277 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (1110 LLVM lines vs. 560 kB allocs) |
95 times less (711 ns vs. 68 μs) |
10 times more (433 ms vs. 40 ms) |
18 times more (15 MB vs. 794 kB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (28 ms vs. 29 ms) |
357 times more (78 kB vs. 224 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (27 ms vs. 29 ms) |
357 times more (78 kB vs. 224 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (28 ms vs. 29 ms) |
529 times more (116 kB vs. 224 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (31 ms vs. 29 ms) |
651 times more (204 kB vs. 320 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (31 ms vs. 29 ms) |
655 times more (205 kB vs. 320 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (43 ms vs. 29 ms) |
694 times more (228 kB vs. 336 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
7 times less (50 ns vs. 370 ns) |
similar (43 ms vs. 43 ms) |
2 times less (253 kB vs. 723 kB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
22 times less (50 ns vs. 1 μs) |
similar (44 ms vs. 43 ms) |
2 times less (351 kB vs. 723 kB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 50 ns) |
similar (31 ms vs. 29 ms) |
1297 times more (345 kB vs. 272 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (32 ms vs. 29 ms) |
1240 times more (388 kB vs. 320 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (43 ms vs. 29 ms) |
897 times more (449 kB vs. 512 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (20 LLVM lines vs. 592 B allocs) |
12 times less (60 ns vs. 731 ns) |
similar (45 ms vs. 44 ms) |
similar (660 kB vs. 724 kB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (68 LLVM lines vs. 2 kB allocs) |
35 times less (70 ns vs. 3 μs) |
similar (52 ms vs. 43 ms) |
2 times more (1 MB vs. 726 kB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (32 ms vs. 29 ms) |
929 times more (203 kB vs. 224 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (31 ms vs. 29 ms) |
658 times more (206 kB vs. 320 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (42 ms vs. 29 ms) |
697 times more (229 kB vs. 336 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 192 B allocs) |
10 times less (50 ns vs. 500 ns) |
similar (42 ms vs. 70 ms) |
9 times less (253 kB vs. 2 MB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 576 B allocs) |
32 times less (50 ns vs. 2 μs) |
similar (43 ms vs. 69 ms) |
6 times less (351 kB vs. 2 MB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (32 ms vs. 29 ms) |
651 times more (203 kB vs. 320 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (32 ms vs. 29 ms) |
658 times more (206 kB vs. 320 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (42 ms vs. 29 ms) |
696 times more (229 kB vs. 336 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (optimized out vs. 192 B allocs) |
36 times less (50 ns vs. 2 μs) |
similar (42 ms vs. 69 ms) |
9 times less (253 kB vs. 2 MB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 576 B allocs) |
144 times less (50 ns vs. 7 μs) |
similar (43 ms vs. 72 ms) |
7 times less (351 kB vs. 2 MB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (32 ms vs. 30 ms) |
1392 times more (370 kB vs. 272 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (32 ms vs. 29 ms) |
829 times more (389 kB vs. 480 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (17 LLVM lines) |
similar (60 ns vs. 70 ns) |
similar (44 ms vs. 29 ms) |
588 times more (450 kB vs. 784 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (55 LLVM lines vs. 18 kB allocs) |
46 times less (70 ns vs. 3 μs) |
similar (47 ms vs. 87 ms) |
3 times less (662 kB vs. 2 MB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (206 LLVM lines vs. 268 kB allocs) |
246 times less (120 ns vs. 30 μs) |
similar (67 ms vs. 89 ms) |
similar (1 MB vs. 2 MB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (38 ms vs. 28 ms) |
1913 times more (418 kB vs. 224 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (38 ms vs. 28 ms) |
2051 times more (449 kB vs. 224 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (35 ms vs. 28 ms) |
2335 times more (584 kB vs. 256 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (39 ms vs. 28 ms) |
1436 times more (449 kB vs. 320 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (40 ms vs. 28 ms) |
1485 times more (464 kB vs. 320 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (50 ms vs. 28 ms) |
1589 times more (522 kB vs. 336 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
7 times less (50 ns vs. 370 ns) |
similar (54 ms vs. 42 ms) |
similar (710 kB vs. 723 kB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
22 times less (50 ns vs. 1 μs) |
similar (66 ms vs. 42 ms) |
2 times more (1 MB vs. 723 kB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (35 ms vs. 28 ms) |
2198 times more (584 kB vs. 272 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (60 ns vs. 50 ns) |
similar (36 ms vs. 28 ms) |
2038 times more (637 kB vs. 320 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (47 ms vs. 28 ms) |
1440 times more (720 kB vs. 512 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (21 LLVM lines vs. 592 B allocs) |
12 times less (60 ns vs. 731 ns) |
similar (49 ms vs. 42 ms) |
similar (1 MB vs. 724 kB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (69 LLVM lines vs. 2 kB allocs) |
35 times less (70 ns vs. 2 μs) |
similar (57 ms vs. 43 ms) |
3 times more (2 MB vs. 726 kB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (38 ms vs. 28 ms) |
1438 times more (450 kB vs. 320 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (39 ms vs. 28 ms) |
1492 times more (466 kB vs. 320 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (50 ms vs. 28 ms) |
1595 times more (523 kB vs. 336 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 192 B allocs) |
10 times less (50 ns vs. 510 ns) |
similar (53 ms vs. 69 ms) |
3 times less (712 kB vs. 2 MB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 576 B allocs) |
41 times less (40 ns vs. 2 μs) |
similar (64 ms vs. 70 ms) |
similar (1 MB vs. 2 MB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (39 ms vs. 29 ms) |
1438 times more (450 kB vs. 320 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (39 ms vs. 28 ms) |
1491 times more (466 kB vs. 320 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (52 ms vs. 28 ms) |
1594 times more (523 kB vs. 336 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (optimized out vs. 192 B allocs) |
38 times less (50 ns vs. 2 μs) |
similar (54 ms vs. 69 ms) |
3 times less (711 kB vs. 2 MB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 576 B allocs) |
144 times less (50 ns vs. 7 μs) |
similar (66 ms vs. 73 ms) |
similar (1 MB vs. 2 MB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (36 ms vs. 28 ms) |
2053 times more (610 kB vs. 304 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (13 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (36 ms vs. 28 ms) |
1202 times more (639 kB vs. 544 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (20 LLVM lines) |
similar (70 ns vs. 70 ns) |
similar (49 ms vs. 28 ms) |
810 times more (722 kB vs. 912 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (57 LLVM lines vs. 18 kB allocs) |
39 times less (80 ns vs. 3 μs) |
similar (52 ms vs. 86 ms) |
2 times less (1 MB vs. 2 MB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (208 LLVM lines vs. 268 kB allocs) |
177 times less (170 ns vs. 30 μs) |
similar (74 ms vs. 86 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (35 ms vs. 26 ms) |
19 times more (174 kB vs. 9 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (34 ms vs. 26 ms) |
5 times more (207 kB vs. 40 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (26 ms vs. 26 ms) |
18 times more (239 kB vs. 13 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (35 ms vs. 26 ms) |
4 times more (210 kB vs. 43 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
2 times more (52 ms vs. 26 ms) |
2 times more (267 kB vs. 97 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (53 ms vs. 26 ms) |
similar (285 kB vs. 303 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 592 B allocs) |
15 times less (50 ns vs. 781 ns) |
similar (54 ms vs. 34 ms) |
similar (393 kB vs. 296 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (69 LLVM lines w/ Const vs. 2 kB allocs) |
34 times less (80 ns vs. 3 μs) |
2 times more (74 ms vs. 34 ms) |
3 times more (1 MB vs. 298 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (27 ms vs. 26 ms) |
12 times more (244 kB vs. 20 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (44 ms vs. 26 ms) |
2 times more (336 kB vs. 159 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (45 ms vs. 27 ms) |
similar (372 kB vs. 591 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 592 B allocs) |
15 times less (50 ns vs. 781 ns) |
similar (46 ms vs. 34 ms) |
similar (587 kB vs. 295 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (69 LLVM lines w/ Const vs. 2 kB allocs) |
38 times less (70 ns vs. 3 μs) |
similar (67 ms vs. 34 ms) |
5 times more (2 MB vs. 298 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (35 ms vs. 26 ms) |
4 times more (212 kB vs. 43 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 50 ns) |
similar (52 ms vs. 26 ms) |
2 times more (279 kB vs. 107 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (52 ms vs. 27 ms) |
similar (309 kB vs. 347 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 592 B allocs) |
23 times less (50 ns vs. 1 μs) |
similar (53 ms vs. 35 ms) |
similar (416 kB vs. 320 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (69 LLVM lines w/ Const vs. 2 kB allocs) |
53 times less (80 ns vs. 4 μs) |
2 times more (73 ms vs. 36 ms) |
3 times more (1 MB vs. 322 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (35 ms vs. 26 ms) |
4 times more (216 kB vs. 47 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 40 ns) |
2 times more (52 ms vs. 26 ms) |
2 times more (283 kB vs. 112 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (52 ms vs. 27 ms) |
similar (313 kB vs. 352 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 592 B allocs) |
23 times less (50 ns vs. 1 μs) |
similar (54 ms vs. 35 ms) |
similar (421 kB vs. 324 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (69 LLVM lines w/ Const vs. 2 kB allocs) |
53 times less (80 ns vs. 4 μs) |
2 times more (76 ms vs. 36 ms) |
3 times more (1 MB vs. 326 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (27 ms vs. 27 ms) |
5 times more (270 kB vs. 47 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (45 ms vs. 26 ms) |
2 times more (336 kB vs. 160 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (45 ms vs. 27 ms) |
similar (386 kB vs. 627 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 33 kB allocs) |
76 times less (40 ns vs. 3 μs) |
similar (46 ms vs. 36 ms) |
similar (602 kB vs. 334 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (69 LLVM lines w/ Const vs. 528 kB allocs) |
330 times less (80 ns vs. 26 μs) |
similar (66 ms vs. 36 ms) |
2 times more (2 MB vs. 829 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 31 ms) |
2 times less (55 kB vs. 159 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (30 ms vs. 31 ms) |
3 times less (89 kB vs. 281 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (26 ms vs. 33 ms) |
5 times less (62 kB vs. 337 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (29 ms vs. 35 ms) |
4 times less (93 kB vs. 450 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (49 ms vs. 35 ms) |
2 times less (155 kB vs. 450 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (49 ms vs. 34 ms) |
2 times less (179 kB vs. 450 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (51 ms vs. 35 ms) |
similar (323 kB vs. 450 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (59 ms vs. 35 ms) |
similar (898 kB vs. 450 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (26 ms vs. 36 ms) |
7 times less (71 kB vs. 521 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (46 ms vs. 36 ms) |
3 times less (167 kB vs. 546 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (47 ms vs. 36 ms) |
2 times less (209 kB vs. 546 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (48 ms vs. 36 ms) |
similar (461 kB vs. 546 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (56 ms vs. 36 ms) |
2 times more (1 MB vs. 547 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 31 ms) |
4 times less (86 kB vs. 377 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (49 ms vs. 31 ms) |
3 times less (145 kB vs. 500 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (49 ms vs. 32 ms) |
5 times less (159 kB vs. 805 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (51 ms vs. 36 ms) |
10 times less (247 kB vs. 3 MB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (58 ms vs. 31 ms) |
similar (596 kB vs. 340 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 35 ms) |
5 times less (97 kB vs. 532 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (49 ms vs. 44 ms) |
5 times less (168 kB vs. 940 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (50 ms vs. 61 ms) |
8 times less (206 kB vs. 2 MB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (51 ms vs. 68 ms) |
10 times less (350 kB vs. 4 MB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (60 ms vs. 38 ms) |
similar (924 kB vs. 504 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (26 ms vs. 37 ms) |
5 times less (100 kB vs. 532 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (46 ms vs. 46 ms) |
5 times less (180 kB vs. 951 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (46 ms vs. 65 ms) |
7 times less (235 kB vs. 2 MB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (48 ms vs. 83 ms) |
8 times less (487 kB vs. 4 MB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
473 times less (50 ns vs. 24 μs) |
similar (56 ms vs. 40 ms) |
similar (1 MB vs. 1 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
1 |
empty singleton Tuple |
similar (9 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (73 ms vs. 74 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (9 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (73 ms vs. 74 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (9 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (70 ms vs. 76 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (18 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (73 ms vs. 76 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (28 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (94 ms vs. 76 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (48 LLVM lines) |
similar (70 ns vs. 70 ns) |
similar (95 ms vs. 77 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (168 LLVM lines) |
similar (140 ns vs. 140 ns) |
similar (101 ms vs. 76 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (648 LLVM lines) |
similar (400 ns vs. 410 ns) |
similar (127 ms vs. 77 ms) |
similar (5 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (18 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (70 ms vs. 77 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (28 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (91 ms vs. 79 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (48 LLVM lines) |
similar (70 ns vs. 80 ns) |
similar (93 ms vs. 78 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (168 LLVM lines) |
similar (140 ns vs. 140 ns) |
similar (99 ms vs. 79 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (648 LLVM lines) |
similar (400 ns vs. 410 ns) |
similar (128 ms vs. 79 ms) |
2 times more (6 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (18 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (75 ms vs. 77 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (28 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (94 ms vs. 89 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
better (48 LLVM lines vs. 96 B allocs) |
30 times less (70 ns vs. 2 μs) |
similar (95 ms vs. 112 ms) |
2 times less (3 MB vs. 6 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (168 LLVM lines vs. 480 B allocs) |
156 times less (140 ns vs. 22 μs) |
similar (102 ms vs. 120 ms) |
2 times less (4 MB vs. 8 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
similar (648 LLVM lines) |
4 times less (410 ns vs. 2 μs) |
similar (141 ms vs. 79 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (18 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (75 ms vs. 78 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (28 LLVM lines) |
similar (60 ns vs. 70 ns) |
similar (97 ms vs. 90 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
better (48 LLVM lines vs. 96 B allocs) |
234 times less (70 ns vs. 16 μs) |
similar (96 ms vs. 112 ms) |
2 times less (3 MB vs. 6 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (168 LLVM lines vs. 496 B allocs) |
710 times less (140 ns vs. 99 μs) |
similar (102 ms vs. 121 ms) |
2 times less (4 MB vs. 8 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (648 LLVM lines) |
4 times less (400 ns vs. 2 μs) |
similar (128 ms vs. 79 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (18 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (71 ms vs. 79 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (28 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (91 ms vs. 92 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (48 LLVM lines vs. 3 kB allocs) |
248 times less (70 ns vs. 17 μs) |
similar (94 ms vs. 116 ms) |
2 times less (3 MB vs. 6 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (168 LLVM lines vs. 38 kB allocs) |
857 times less (140 ns vs. 120 μs) |
similar (100 ms vs. 134 ms) |
2 times less (4 MB vs. 9 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (648 LLVM lines vs. 521 kB allocs) |
60 times less (400 ns vs. 24 μs) |
similar (126 ms vs. 82 ms) |
similar (7 MB vs. 3 MB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (29 ms vs. 31 ms) |
3 times less (55 kB vs. 165 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (29 ms vs. 31 ms) |
3 times less (89 kB vs. 283 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (26 ms vs. 32 ms) |
5 times less (62 kB vs. 326 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (30 ms vs. 31 ms) |
3 times less (90 kB vs. 332 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (49 ms vs. 31 ms) |
2 times less (148 kB vs. 332 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (49 ms vs. 33 ms) |
2 times less (163 kB vs. 332 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (51 ms vs. 31 ms) |
similar (250 kB vs. 332 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (56 ms vs. 32 ms) |
similar (601 kB vs. 332 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (27 ms vs. 32 ms) |
5 times less (64 kB vs. 376 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (46 ms vs. 33 ms) |
2 times less (147 kB vs. 401 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (47 ms vs. 33 ms) |
2 times less (161 kB vs. 401 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (48 ms vs. 33 ms) |
similar (249 kB vs. 401 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (52 ms vs. 32 ms) |
similar (600 kB vs. 402 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 31 ms) |
4 times less (92 kB vs. 415 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (49 ms vs. 31 ms) |
3 times less (151 kB vs. 543 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (50 ms vs. 32 ms) |
5 times less (166 kB vs. 860 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (50 ms vs. 36 ms) |
11 times less (253 kB vs. 3 MB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (56 ms vs. 37 ms) |
similar (604 kB vs. 508 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 31 ms) |
4 times less (90 kB vs. 398 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (49 ms vs. 31 ms) |
3 times less (149 kB vs. 525 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (49 ms vs. 32 ms) |
5 times less (163 kB vs. 843 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (51 ms vs. 35 ms) |
11 times less (251 kB vs. 3 MB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (56 ms vs. 31 ms) |
similar (602 kB vs. 347 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (26 ms vs. 33 ms) |
4 times less (89 kB vs. 397 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (46 ms vs. 33 ms) |
3 times less (148 kB vs. 537 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (46 ms vs. 36 ms) |
5 times less (162 kB vs. 898 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (48 ms vs. 49 ms) |
14 times less (250 kB vs. 3 MB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (53 ms vs. 32 ms) |
similar (601 kB vs. 414 kB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
1 |
empty singleton Tuple |
similar (9 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (74 ms vs. 77 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (9 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (73 ms vs. 74 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (9 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (70 ms vs. 75 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (18 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (73 ms vs. 76 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (28 LLVM lines) |
similar (60 ns vs. 50 ns) |
similar (94 ms vs. 76 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (48 LLVM lines) |
similar (60 ns vs. 50 ns) |
similar (96 ms vs. 77 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (168 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (102 ms vs. 77 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (648 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (128 ms vs. 77 ms) |
similar (5 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (18 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (71 ms vs. 78 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (28 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (92 ms vs. 78 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (48 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (94 ms vs. 79 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (168 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (100 ms vs. 79 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (648 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (128 ms vs. 78 ms) |
2 times more (7 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (18 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (75 ms vs. 78 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (28 LLVM lines) |
similar (60 ns vs. 50 ns) |
similar (95 ms vs. 77 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (48 LLVM lines) |
7 times less (50 ns vs. 360 ns) |
similar (95 ms vs. 77 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (168 LLVM lines) |
18 times less (50 ns vs. 931 ns) |
similar (102 ms vs. 81 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
similar (648 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (128 ms vs. 78 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (18 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (75 ms vs. 77 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (28 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (94 ms vs. 77 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (48 LLVM lines) |
50 times less (50 ns vs. 3 μs) |
similar (95 ms vs. 78 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (168 LLVM lines) |
63 times less (50 ns vs. 3 μs) |
similar (110 ms vs. 82 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (648 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (130 ms vs. 79 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (18 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (71 ms vs. 78 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (28 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (91 ms vs. 80 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (48 LLVM lines vs. 560 B allocs) |
59 times less (50 ns vs. 3 μs) |
similar (92 ms vs. 82 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (168 LLVM lines vs. 2 kB allocs) |
73 times less (50 ns vs. 4 μs) |
similar (100 ms vs. 95 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
similar (648 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (127 ms vs. 82 ms) |
2 times more (7 MB vs. 3 MB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (54 ms vs. 76 ms) |
8 times less (66 kB vs. 544 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (52 ms vs. 74 ms) |
5 times less (100 kB vs. 582 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (49 ms vs. 54 ms) |
9 times less (73 kB vs. 726 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (53 ms vs. 74 ms) |
5 times less (103 kB vs. 585 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (71 ms vs. 79 ms) |
3 times less (159 kB vs. 593 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (71 ms vs. 75 ms) |
3 times less (174 kB vs. 606 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (73 ms vs. 74 ms) |
2 times less (261 kB vs. 703 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (75 ms vs. 80 ms) |
2 times less (612 kB vs. 1 MB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (50 ms vs. 55 ms) |
9 times less (80 kB vs. 732 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (68 ms vs. 54 ms) |
4 times less (171 kB vs. 775 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (68 ms vs. 55 ms) |
3 times less (203 kB vs. 806 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (70 ms vs. 55 ms) |
2 times less (399 kB vs. 1005 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (73 ms vs. 61 ms) |
similar (1 MB vs. 2 MB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (53 ms vs. 75 ms) |
5 times less (112 kB vs. 608 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (71 ms vs. 81 ms) |
3 times less (197 kB vs. 669 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (71 ms vs. 75 ms) |
3 times less (254 kB vs. 766 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (72 ms vs. 76 ms) |
2 times less (341 kB vs. 864 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 54 LLVM lines w/ Const) |
35 times less (40 ns vs. 1 μs) |
similar (75 ms vs. 83 ms) |
2 times less (690 kB vs. 2 MB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (53 ms vs. 74 ms) |
5 times less (117 kB vs. 613 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (71 ms vs. 74 ms) |
3 times less (202 kB vs. 678 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (71 ms vs. 75 ms) |
2 times less (259 kB vs. 773 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (72 ms vs. 75 ms) |
2 times less (346 kB vs. 866 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 54 LLVM lines w/ Const) |
34 times less (40 ns vs. 1 μs) |
similar (74 ms vs. 83 ms) |
2 times less (695 kB vs. 2 MB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (50 ms vs. 55 ms) |
6 times less (115 kB vs. 781 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (69 ms vs. 55 ms) |
4 times less (200 kB vs. 843 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (68 ms vs. 55 ms) |
3 times less (275 kB vs. 958 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (69 ms vs. 55 ms) |
2 times less (470 kB vs. 1 MB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
469 times less (50 ns vs. 23 μs) |
similar (72 ms vs. 64 ms) |
2 times less (1 MB vs. 2 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times less (30 ms vs. 61 ms) |
26 times less (78 kB vs. 2 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times less (29 ms vs. 59 ms) |
19 times less (108 kB vs. 2 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (29 ms vs. 45 ms) |
14 times less (224 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times less (29 ms vs. 60 ms) |
22 times less (110 kB vs. 2 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (55 ms vs. 61 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (56 ms vs. 61 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (57 ms vs. 63 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 35 LLVM lines) |
88 times less (50 ns vs. 4 μs) |
similar (63 ms vs. 67 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (30 ms vs. 47 ms) |
13 times less (244 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (56 ms vs. 48 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (12 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (57 ms vs. 50 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (36 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (61 ms vs. 56 ms) |
2 times less (3 MB vs. 7 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (132 LLVM lines vs. 70 kB allocs) |
152 times less (80 ns vs. 12 μs) |
similar (95 ms vs. 52 ms) |
similar (5 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times less (31 ms vs. 61 ms) |
25 times less (110 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (56 ms vs. 63 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (55 ms vs. 63 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (57 ms vs. 65 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 40 LLVM lines) |
110 times less (50 ns vs. 6 μs) |
similar (61 ms vs. 68 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times less (30 ms vs. 62 ms) |
26 times less (110 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (55 ms vs. 63 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (55 ms vs. 64 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (56 ms vs. 65 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 39 LLVM lines) |
137 times less (50 ns vs. 7 μs) |
similar (62 ms vs. 69 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (30 ms vs. 49 ms) |
13 times less (270 kB vs. 4 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (17 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (57 ms vs. 51 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (30 LLVM lines) |
similar (70 ns vs. 60 ns) |
similar (58 ms vs. 54 ms) |
2 times less (2 MB vs. 6 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (105 LLVM lines) |
similar (90 ns vs. 90 ns) |
similar (66 ms vs. 66 ms) |
3 times less (3 MB vs. 9 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (625 LLVM lines vs. 784 kB allocs) |
460 times less (360 ns vs. 166 μs) |
3 times more (187 ms vs. 53 ms) |
similar (5 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times less (30 ms vs. 66 ms) |
28 times less (92 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times less (29 ms vs. 64 ms) |
21 times less (122 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (30 ms vs. 51 ms) |
12 times less (258 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
2 times less (30 ms vs. 64 ms) |
22 times less (124 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (56 ms vs. 64 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (56 ms vs. 65 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (57 ms vs. 67 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 35 LLVM lines) |
90 times less (50 ns vs. 5 μs) |
similar (62 ms vs. 70 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (30 ms vs. 52 ms) |
12 times less (278 kB vs. 4 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (56 ms vs. 52 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (12 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (58 ms vs. 57 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (36 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (62 ms vs. 61 ms) |
2 times less (3 MB vs. 7 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (132 LLVM lines vs. 70 kB allocs) |
150 times less (80 ns vs. 12 μs) |
similar (95 ms vs. 55 ms) |
similar (5 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
2 times less (30 ms vs. 65 ms) |
25 times less (123 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (56 ms vs. 66 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (55 ms vs. 69 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (58 ms vs. 69 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 39 LLVM lines) |
110 times less (50 ns vs. 6 μs) |
similar (67 ms vs. 72 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times less (31 ms vs. 65 ms) |
25 times less (124 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (56 ms vs. 67 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (56 ms vs. 67 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (57 ms vs. 69 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 39 LLVM lines) |
133 times less (50 ns vs. 7 μs) |
similar (62 ms vs. 72 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (30 ms vs. 53 ms) |
13 times less (303 kB vs. 4 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (17 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (57 ms vs. 55 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (30 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (58 ms vs. 58 ms) |
2 times less (2 MB vs. 6 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (105 LLVM lines) |
similar (90 ns vs. 90 ns) |
similar (68 ms vs. 69 ms) |
3 times less (3 MB vs. 9 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (625 LLVM lines vs. 784 kB allocs) |
458 times less (351 ns vs. 161 μs) |
3 times more (189 ms vs. 57 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (47 ms vs. 85 ms) |
5 times less (382 kB vs. 2 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (47 ms vs. 85 ms) |
5 times less (417 kB vs. 2 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (10 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (40 ms vs. 59 ms) |
4 times less (685 kB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (47 ms vs. 89 ms) |
5 times less (435 kB vs. 2 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 50 ns) |
similar (92 ms vs. 96 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (92 ms vs. 111 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
2 times less (96 ms vs. 206 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (55 LLVM lines w/ Const vs. 68 kB allocs) |
115 times less (80 ns vs. 9 μs) |
2 times more (211 ms vs. 94 ms) |
2 times more (7 MB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (16 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (40 ms vs. 60 ms) |
4 times less (740 kB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (28 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (84 ms vs. 61 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (52 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (87 ms vs. 63 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (196 LLVM lines) |
similar (90 ns vs. 90 ns) |
similar (98 ms vs. 76 ms) |
similar (4 MB vs. 7 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (772 LLVM lines vs. 140 kB allocs) |
69 times less (240 ns vs. 17 μs) |
2 times more (176 ms vs. 64 ms) |
2 times more (9 MB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (48 ms vs. 90 ms) |
6 times less (443 kB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (91 ms vs. 98 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (92 ms vs. 113 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
2 times less (97 ms vs. 208 ms) |
similar (3 MB vs. 6 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (55 LLVM lines w/ Const vs. 70 kB allocs) |
258 times less (80 ns vs. 21 μs) |
similar (193 ms vs. 99 ms) |
similar (7 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (49 ms vs. 89 ms) |
6 times less (446 kB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (91 ms vs. 97 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (92 ms vs. 113 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
2 times less (97 ms vs. 210 ms) |
similar (3 MB vs. 6 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (55 LLVM lines w/ Const vs. 70 kB allocs) |
268 times less (80 ns vs. 21 μs) |
similar (194 ms vs. 99 ms) |
similar (7 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (15 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (41 ms vs. 61 ms) |
4 times less (788 kB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (25 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (86 ms vs. 63 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (46 LLVM lines) |
similar (70 ns vs. 70 ns) |
similar (91 ms vs. 65 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (169 LLVM lines) |
similar (100 ns vs. 100 ns) |
similar (110 ms vs. 82 ms) |
similar (4 MB vs. 8 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (881 LLVM lines vs. 855 kB allocs) |
556 times less (410 ns vs. 228 μs) |
4 times more (284 ms vs. 67 ms) |
similar (10 MB vs. 5 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (48 ms vs. 92 ms) |
5 times less (410 kB vs. 2 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (48 ms vs. 90 ms) |
5 times less (444 kB vs. 2 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (10 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (41 ms vs. 65 ms) |
4 times less (730 kB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (49 ms vs. 94 ms) |
5 times less (462 kB vs. 2 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (92 ms vs. 101 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (97 ms vs. 116 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
2 times less (98 ms vs. 212 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (55 LLVM lines w/ Const vs. 68 kB allocs) |
118 times less (80 ns vs. 9 μs) |
similar (196 ms vs. 101 ms) |
2 times more (7 MB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (16 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (42 ms vs. 64 ms) |
3 times less (785 kB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (28 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (85 ms vs. 64 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (52 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (88 ms vs. 68 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (196 LLVM lines) |
similar (81 ns vs. 90 ns) |
similar (100 ms vs. 80 ms) |
similar (4 MB vs. 7 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (772 LLVM lines vs. 140 kB allocs) |
57 times less (230 ns vs. 13 μs) |
2 times more (177 ms vs. 69 ms) |
2 times more (9 MB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (49 ms vs. 95 ms) |
6 times less (471 kB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (92 ms vs. 103 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 50 ns) |
similar (93 ms vs. 119 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
2 times less (102 ms vs. 216 ms) |
similar (3 MB vs. 6 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (55 LLVM lines w/ Const vs. 70 kB allocs) |
262 times less (80 ns vs. 21 μs) |
similar (195 ms vs. 104 ms) |
similar (7 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (50 ms vs. 95 ms) |
6 times less (474 kB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (92 ms vs. 104 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (95 ms vs. 118 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 50 ns) |
2 times less (98 ms vs. 215 ms) |
similar (3 MB vs. 6 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (55 LLVM lines w/ Const vs. 70 kB allocs) |
263 times less (80 ns vs. 21 μs) |
similar (196 ms vs. 106 ms) |
similar (7 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (15 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (42 ms vs. 66 ms) |
4 times less (833 kB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (25 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (87 ms vs. 68 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (46 LLVM lines) |
similar (70 ns vs. 80 ns) |
similar (92 ms vs. 70 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (169 LLVM lines) |
similar (100 ns vs. 90 ns) |
similar (111 ms vs. 86 ms) |
similar (4 MB vs. 8 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (881 LLVM lines vs. 855 kB allocs) |
530 times less (410 ns vs. 218 μs) |
3 times more (283 ms vs. 72 ms) |
similar (10 MB vs. 5 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 46 ms) |
3 times less (129 kB vs. 483 kB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 44 ms) |
3 times less (159 kB vs. 514 kB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 43 ms) |
2 times less (367 kB vs. 901 kB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 54 ms) |
6 times less (162 kB vs. 1 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (63 ms vs. 71 ms) |
6 times less (266 kB vs. 2 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (63 ms vs. 103 ms) |
9 times less (290 kB vs. 3 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
4 times less (64 ms vs. 304 ms) |
24 times less (432 kB vs. 10 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (31 ms vs. 52 ms) |
4 times less (394 kB vs. 2 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (21 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (64 ms vs. 55 ms) |
4 times less (566 kB vs. 2 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (65 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (68 ms vs. 65 ms) |
6 times less (677 kB vs. 4 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (857 LLVM lines) |
similar (261 ns vs. 240 ns) |
similar (292 ms vs. 471 ms) |
12 times less (1 MB vs. 16 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 54 ms) |
6 times less (162 kB vs. 1 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (62 ms vs. 71 ms) |
6 times less (267 kB vs. 2 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (62 ms vs. 104 ms) |
11 times less (290 kB vs. 3 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
4 times less (64 ms vs. 305 ms) |
25 times less (433 kB vs. 11 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (31 ms vs. 54 ms) |
6 times less (162 kB vs. 1 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (62 ms vs. 71 ms) |
6 times less (266 kB vs. 2 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (62 ms vs. 105 ms) |
11 times less (290 kB vs. 3 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
4 times less (64 ms vs. 309 ms) |
25 times less (433 kB vs. 11 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (13 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (31 ms vs. 53 ms) |
3 times less (420 kB vs. 2 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (29 LLVM lines) |
similar (70 ns vs. 60 ns) |
similar (65 ms vs. 59 ms) |
5 times less (567 kB vs. 3 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (86 LLVM lines) |
similar (80 ns vs. 80 ns) |
similar (74 ms vs. 76 ms) |
7 times less (680 kB vs. 5 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (2796 LLVM lines) |
similar (2 μs vs. 2 μs) |
similar (1 s vs. 840 ms) |
12 times less (1 MB vs. 17 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (30 ms vs. 38 ms) |
5 times less (143 kB vs. 819 kB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (30 ms vs. 37 ms) |
4 times less (173 kB vs. 850 kB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 42 ms) |
2 times less (401 kB vs. 1 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (30 ms vs. 46 ms) |
6 times less (176 kB vs. 1 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (63 ms vs. 64 ms) |
6 times less (279 kB vs. 2 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (63 ms vs. 96 ms) |
9 times less (303 kB vs. 3 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
4 times less (64 ms vs. 298 ms) |
23 times less (446 kB vs. 10 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (31 ms vs. 45 ms) |
3 times less (429 kB vs. 2 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (21 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (64 ms vs. 47 ms) |
4 times less (602 kB vs. 2 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (65 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (67 ms vs. 56 ms) |
6 times less (711 kB vs. 4 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (857 LLVM lines) |
similar (270 ns vs. 240 ns) |
similar (284 ms vs. 436 ms) |
11 times less (1 MB vs. 16 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 46 ms) |
6 times less (175 kB vs. 1 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (63 ms vs. 64 ms) |
6 times less (280 kB vs. 2 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (63 ms vs. 97 ms) |
11 times less (304 kB vs. 3 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
4 times less (64 ms vs. 297 ms) |
24 times less (447 kB vs. 11 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (31 ms vs. 46 ms) |
6 times less (176 kB vs. 1 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (62 ms vs. 63 ms) |
6 times less (280 kB vs. 2 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (63 ms vs. 97 ms) |
11 times less (304 kB vs. 3 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
4 times less (65 ms vs. 299 ms) |
24 times less (446 kB vs. 11 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (13 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (32 ms vs. 46 ms) |
3 times less (455 kB vs. 2 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (29 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (65 ms vs. 50 ms) |
4 times less (603 kB vs. 3 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (86 LLVM lines) |
similar (90 ns vs. 90 ns) |
similar (74 ms vs. 67 ms) |
7 times less (714 kB vs. 5 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (2795 LLVM lines) |
similar (2 μs vs. 2 μs) |
similar (1 s vs. 794 ms) |
12 times less (1 MB vs. 17 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
1 |
empty singleton Tuple |
similar (19 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (73 ms vs. 57 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
1 |
nonempty singleton Tuple |
similar (19 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (74 ms vs. 56 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (22 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (71 ms vs. 57 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (20 LLVM lines w/ Const) |
similar (60 ns vs. 50 ns) |
similar (74 ms vs. 56 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (20 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (93 ms vs. 56 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (20 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (94 ms vs. 56 ms) |
similar (5 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (20 LLVM lines w/ Const) |
similar (60 ns vs. 50 ns) |
similar (98 ms vs. 56 ms) |
similar (7 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (20 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
2 times more (119 ms vs. 57 ms) |
4 times more (15 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (22 LLVM lines w/ Const) |
similar (60 ns vs. 50 ns) |
similar (71 ms vs. 56 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (22 LLVM lines w/ Const) |
similar (50 ns vs. 60 ns) |
similar (90 ms vs. 55 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (22 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (93 ms vs. 57 ms) |
similar (5 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (22 LLVM lines w/ Const) |
similar (60 ns vs. 50 ns) |
similar (104 ms vs. 56 ms) |
2 times more (7 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (22 LLVM lines w/ Const) |
similar (60 ns vs. 50 ns) |
2 times more (119 ms vs. 56 ms) |
4 times more (15 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (25 LLVM lines w/ switch) |
similar (50 ns vs. 70 ns) |
similar (74 ms vs. 56 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (20 LLVM lines w/ switch) |
similar (50 ns vs. 70 ns) |
similar (92 ms vs. 56 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (22 LLVM lines w/ switch) |
similar (50 ns vs. 60 ns) |
similar (93 ms vs. 56 ms) |
similar (5 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (22 LLVM lines w/ switch) |
similar (50 ns vs. 70 ns) |
similar (98 ms vs. 57 ms) |
similar (7 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
similar (22 LLVM lines w/ switch) |
similar (50 ns vs. 60 ns) |
2 times more (122 ms vs. 56 ms) |
4 times more (15 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (25 LLVM lines w/ switch) |
similar (50 ns vs. 60 ns) |
similar (75 ms vs. 56 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (20 LLVM lines w/ switch) |
similar (50 ns vs. 60 ns) |
similar (93 ms vs. 57 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (22 LLVM lines w/ switch) |
similar (60 ns vs. 70 ns) |
similar (94 ms vs. 56 ms) |
similar (5 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (22 LLVM lines w/ switch) |
similar (50 ns vs. 70 ns) |
similar (100 ms vs. 56 ms) |
similar (7 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (22 LLVM lines w/ switch) |
similar (50 ns vs. 60 ns) |
2 times more (123 ms vs. 56 ms) |
4 times more (15 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
better (27 LLVM lines w/ switch vs. 48 B allocs) |
similar (60 ns vs. 90 ns) |
similar (74 ms vs. 57 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (22 LLVM lines w/ switch vs. 112 B allocs) |
similar (50 ns vs. 90 ns) |
similar (91 ms vs. 57 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (24 LLVM lines w/ switch vs. 256 B allocs) |
similar (50 ns vs. 90 ns) |
similar (92 ms vs. 56 ms) |
similar (5 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (24 LLVM lines w/ switch vs. 1 kB allocs) |
similar (70 ns vs. 100 ns) |
similar (97 ms vs. 56 ms) |
2 times more (7 MB vs. 3 MB) |
| unrolled_applyat(length, rand(1:7:length(itr)), itr) |
length(itr[rand(1:7:length(itr))]) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (24 LLVM lines w/ switch vs. 4 kB allocs) |
2 times less (110 ns vs. 240 ns) |
2 times more (121 ms vs. 56 ms) |
4 times more (15 MB vs. 3 MB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (32 ms vs. 29 ms) |
2 times more (132 kB vs. 49 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (32 ms vs. 29 ms) |
similar (162 kB vs. 164 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (26 ms vs. 26 ms) |
similar (138 kB vs. 194 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (32 ms vs. 33 ms) |
similar (166 kB vs. 283 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (52 ms vs. 33 ms) |
similar (229 kB vs. 283 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (52 ms vs. 33 ms) |
similar (254 kB vs. 283 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (54 ms vs. 33 ms) |
similar (406 kB vs. 283 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (61 ms vs. 33 ms) |
3 times more (1011 kB vs. 283 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (27 ms vs. 30 ms) |
2 times less (147 kB vs. 326 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (46 ms vs. 30 ms) |
similar (243 kB vs. 352 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (47 ms vs. 31 ms) |
similar (285 kB vs. 352 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (51 ms vs. 31 ms) |
similar (536 kB vs. 352 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (56 ms vs. 30 ms) |
4 times more (2 MB vs. 352 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (35 ms vs. 36 ms) |
similar (194 kB vs. 315 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (60 ms vs. 36 ms) |
similar (313 kB vs. 340 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (68 ms vs. 37 ms) |
similar (437 kB vs. 340 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (70 ms vs. 37 ms) |
similar (588 kB vs. 340 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
2 times more (78 ms vs. 37 ms) |
3 times more (1 MB vs. 340 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (36 ms vs. 36 ms) |
similar (194 kB vs. 315 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (60 ms vs. 38 ms) |
similar (312 kB vs. 340 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (69 ms vs. 36 ms) |
similar (437 kB vs. 340 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (71 ms vs. 37 ms) |
similar (588 kB vs. 340 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times more (78 ms vs. 38 ms) |
3 times more (1 MB vs. 340 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 64 B allocs) |
2 times less (40 ns vs. 90 ns) |
similar (27 ms vs. 32 ms) |
similar (199 kB vs. 382 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 400 B allocs) |
2 times less (50 ns vs. 140 ns) |
similar (46 ms vs. 33 ms) |
similar (325 kB vs. 408 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 2 kB allocs) |
5 times less (50 ns vs. 260 ns) |
similar (47 ms vs. 35 ms) |
similar (447 kB vs. 410 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 32 kB allocs) |
35 times less (50 ns vs. 2 μs) |
similar (48 ms vs. 33 ms) |
similar (699 kB vs. 440 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
468 times less (50 ns vs. 23 μs) |
similar (56 ms vs. 33 ms) |
similar (2 MB vs. 929 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (33 ms vs. 27 ms) |
4 times more (136 kB vs. 34 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (33 ms vs. 32 ms) |
similar (167 kB vs. 254 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 30 ms) |
similar (290 kB vs. 260 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (33 ms vs. 33 ms) |
similar (168 kB vs. 254 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (53 ms vs. 33 ms) |
similar (226 kB vs. 254 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (53 ms vs. 33 ms) |
similar (240 kB vs. 254 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (55 ms vs. 32 ms) |
similar (328 kB vs. 254 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (61 ms vs. 33 ms) |
2 times more (677 kB vs. 254 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (32 ms vs. 32 ms) |
similar (335 kB vs. 335 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (51 ms vs. 33 ms) |
similar (482 kB vs. 360 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (55 ms vs. 34 ms) |
similar (644 kB vs. 361 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (58 ms vs. 34 ms) |
4 times more (2 MB vs. 360 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (50 ns vs. 50 ns) |
2 times more (84 ms vs. 34 ms) |
15 times more (5 MB vs. 361 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (33 ms vs. 27 ms) |
similar (168 kB vs. 149 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (53 ms vs. 27 ms) |
similar (227 kB vs. 150 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (53 ms vs. 27 ms) |
similar (241 kB vs. 150 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (54 ms vs. 29 ms) |
2 times more (329 kB vs. 150 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times more (61 ms vs. 27 ms) |
4 times more (678 kB vs. 150 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (34 ms vs. 32 ms) |
similar (168 kB vs. 254 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (53 ms vs. 33 ms) |
similar (226 kB vs. 255 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (53 ms vs. 32 ms) |
similar (241 kB vs. 255 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (55 ms vs. 33 ms) |
similar (329 kB vs. 255 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (62 ms vs. 33 ms) |
2 times more (678 kB vs. 255 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 35 ms) |
similar (375 kB vs. 390 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (6 LLVM lines vs. 32 B allocs) |
similar (50 ns vs. 80 ns) |
similar (51 ms vs. 41 ms) |
similar (527 kB vs. 571 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (6 LLVM lines vs. 32 B allocs) |
similar (50 ns vs. 70 ns) |
similar (51 ms vs. 40 ms) |
similar (706 kB vs. 571 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (6 LLVM lines vs. 32 B allocs) |
similar (50 ns vs. 81 ns) |
similar (54 ms vs. 40 ms) |
similar (1 MB vs. 571 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (6 LLVM lines vs. 32 B allocs) |
similar (50 ns vs. 80 ns) |
similar (66 ms vs. 40 ms) |
5 times more (3 MB vs. 571 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (34 ms vs. 27 ms) |
4 times more (136 kB vs. 34 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (34 ms vs. 33 ms) |
similar (167 kB vs. 254 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (31 ms vs. 31 ms) |
similar (290 kB vs. 260 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (33 ms vs. 33 ms) |
similar (168 kB vs. 254 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (53 ms vs. 33 ms) |
similar (226 kB vs. 254 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (54 ms vs. 33 ms) |
similar (240 kB vs. 254 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (55 ms vs. 33 ms) |
similar (328 kB vs. 254 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (62 ms vs. 33 ms) |
2 times more (677 kB vs. 254 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (31 ms vs. 33 ms) |
similar (335 kB vs. 335 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (52 ms vs. 34 ms) |
similar (482 kB vs. 360 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (54 ms vs. 35 ms) |
similar (644 kB vs. 361 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (58 ms vs. 34 ms) |
4 times more (2 MB vs. 360 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (50 ns vs. 50 ns) |
2 times more (85 ms vs. 35 ms) |
15 times more (5 MB vs. 361 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (37 ms vs. 38 ms) |
2 times less (198 kB vs. 415 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (61 ms vs. 47 ms) |
3 times less (317 kB vs. 1 MB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (53 ms vs. 27 ms) |
similar (241 kB vs. 150 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (62 ms vs. 47 ms) |
2 times less (419 kB vs. 1 MB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (65 ms vs. 42 ms) |
similar (708 kB vs. 702 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (37 ms vs. 41 ms) |
2 times less (198 kB vs. 506 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (61 ms vs. 50 ms) |
4 times less (317 kB vs. 1 MB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (53 ms vs. 33 ms) |
similar (241 kB vs. 255 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (64 ms vs. 50 ms) |
3 times less (419 kB vs. 1 MB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (65 ms vs. 44 ms) |
similar (708 kB vs. 898 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
better (6 LLVM lines vs. 64 B allocs) |
similar (50 ns vs. 80 ns) |
similar (32 ms vs. 36 ms) |
similar (360 kB vs. 408 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (6 LLVM lines vs. 608 B allocs) |
4 times less (50 ns vs. 210 ns) |
similar (52 ms vs. 44 ms) |
2 times less (513 kB vs. 1 MB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (6 LLVM lines vs. 32 B allocs) |
similar (50 ns vs. 70 ns) |
similar (52 ms vs. 41 ms) |
similar (706 kB vs. 571 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (6 LLVM lines vs. 3 kB allocs) |
6 times less (50 ns vs. 331 ns) |
similar (57 ms vs. 43 ms) |
similar (1 MB vs. 1 MB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (6 LLVM lines vs. 4 kB allocs) |
5 times less (50 ns vs. 270 ns) |
similar (69 ms vs. 42 ms) |
4 times more (3 MB vs. 674 kB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
1 |
empty singleton Tuple |
better (optimized out vs. 384 B allocs) |
5 times less (40 ns vs. 220 ns) |
similar (69 ms vs. 89 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 384 B allocs) |
5 times less (41 ns vs. 230 ns) |
similar (69 ms vs. 88 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (8 LLVM lines vs. 480 B allocs) |
4 times less (60 ns vs. 261 ns) |
similar (51 ms vs. 86 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 384 B allocs) |
4 times less (50 ns vs. 230 ns) |
similar (74 ms vs. 89 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
4 |
identical nonempty singleton Tuples |
better (optimized out vs. 384 B allocs) |
4 times less (50 ns vs. 240 ns) |
similar (132 ms vs. 90 ms) |
similar (6 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 384 B allocs) |
6 times less (40 ns vs. 240 ns) |
similar (134 ms vs. 90 ms) |
similar (7 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 384 B allocs) |
5 times less (50 ns vs. 290 ns) |
similar (146 ms vs. 89 ms) |
2 times more (13 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 384 B allocs) |
12 times less (40 ns vs. 500 ns) |
2 times more (201 ms vs. 89 ms) |
7 times more (34 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 480 B allocs) |
4 times less (60 ns vs. 270 ns) |
similar (58 ms vs. 87 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 480 B allocs) |
5 times less (50 ns vs. 280 ns) |
similar (114 ms vs. 87 ms) |
similar (8 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 480 B allocs) |
4 times less (60 ns vs. 280 ns) |
similar (117 ms vs. 88 ms) |
similar (9 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 480 B allocs) |
6 times less (50 ns vs. 340 ns) |
similar (140 ms vs. 90 ms) |
4 times more (22 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 480 B allocs) |
9 times less (60 ns vs. 541 ns) |
3 times more (327 ms vs. 88 ms) |
26 times more (130 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
5 times less (50 ns vs. 270 ns) |
similar (76 ms vs. 102 ms) |
similar (4 MB vs. 4 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
7 times less (50 ns vs. 350 ns) |
similar (162 ms vs. 101 ms) |
similar (7 MB vs. 4 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
10 times less (50 ns vs. 500 ns) |
2 times more (220 ms vs. 100 ms) |
2 times more (9 MB vs. 4 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
20 times less (40 ns vs. 831 ns) |
2 times more (232 ms vs. 101 ms) |
2 times more (12 MB vs. 4 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
44 times less (50 ns vs. 2 μs) |
2 times more (281 ms vs. 102 ms) |
5 times more (24 MB vs. 4 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
2 |
distinct nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
5 times less (50 ns vs. 270 ns) |
similar (76 ms vs. 104 ms) |
similar (4 MB vs. 4 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
4 |
distinct nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
7 times less (50 ns vs. 391 ns) |
similar (162 ms vs. 121 ms) |
similar (7 MB vs. 6 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
8 |
distinct nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
27 times less (50 ns vs. 1 μs) |
similar (220 ms vs. 136 ms) |
similar (9 MB vs. 7 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
34 times less (50 ns vs. 2 μs) |
similar (232 ms vs. 137 ms) |
similar (12 MB vs. 7 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
61 times less (50 ns vs. 3 μs) |
2 times more (286 ms vs. 136 ms) |
3 times more (24 MB vs. 7 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
better (11 LLVM lines vs. 592 B allocs) |
6 times less (50 ns vs. 340 ns) |
similar (60 ms vs. 104 ms) |
similar (5 MB vs. 4 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (17 LLVM lines vs. 1 kB allocs) |
8 times less (60 ns vs. 520 ns) |
similar (117 ms vs. 119 ms) |
similar (9 MB vs. 6 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (26 LLVM lines vs. 3 kB allocs) |
29 times less (60 ns vs. 2 μs) |
similar (130 ms vs. 149 ms) |
2 times more (16 MB vs. 7 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (26 LLVM lines vs. 33 kB allocs) |
53 times less (70 ns vs. 4 μs) |
similar (157 ms vs. 146 ms) |
5 times more (34 MB vs. 7 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (26 LLVM lines vs. 522 kB allocs) |
441 times less (60 ns vs. 26 μs) |
2 times more (398 ms vs. 147 ms) |
23 times more (168 MB vs. 7 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
1 |
empty singleton Tuple |
better (optimized out vs. 256 B allocs) |
4 times less (50 ns vs. 200 ns) |
similar (69 ms vs. 113 ms) |
similar (4 MB vs. 7 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 256 B allocs) |
4 times less (50 ns vs. 200 ns) |
similar (69 ms vs. 119 ms) |
2 times less (4 MB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (8 LLVM lines vs. 480 B allocs) |
4 times less (60 ns vs. 250 ns) |
2 times less (51 ms vs. 124 ms) |
similar (4 MB vs. 7 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
4 times less (50 ns vs. 210 ns) |
similar (73 ms vs. 122 ms) |
similar (4 MB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
4 |
identical nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
4 times less (50 ns vs. 220 ns) |
similar (133 ms vs. 121 ms) |
similar (6 MB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
5 times less (40 ns vs. 220 ns) |
similar (133 ms vs. 122 ms) |
similar (6 MB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
6 times less (50 ns vs. 300 ns) |
similar (139 ms vs. 122 ms) |
similar (9 MB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
15 times less (40 ns vs. 610 ns) |
similar (173 ms vs. 122 ms) |
2 times more (20 MB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (21 LLVM lines vs. 480 B allocs) |
4 times less (60 ns vs. 260 ns) |
2 times less (63 ms vs. 129 ms) |
similar (6 MB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
better (111 LLVM lines vs. 480 B allocs) |
4 times less (60 ns vs. 270 ns) |
similar (130 ms vs. 129 ms) |
similar (13 MB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
fewer allocs (48 B allocs vs. 480 B allocs) |
similar (230 ns vs. 300 ns) |
similar (170 ms vs. 131 ms) |
3 times more (25 MB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
fewer allocs (48 B allocs vs. 480 B allocs) |
2 times more (901 ns vs. 430 ns) |
5 times more (696 ms vs. 131 ms) |
12 times more (96 MB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
fewer allocs (48 B allocs vs. 480 B allocs) |
8 times more (8 μs vs. 971 ns) |
78 times more (10 s vs. 129 ms) |
149 times more (1 GB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
5 times less (50 ns vs. 250 ns) |
2 times less (76 ms vs. 174 ms) |
2 times less (4 MB vs. 10 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 512 B allocs) |
8 times less (50 ns vs. 420 ns) |
similar (160 ms vs. 258 ms) |
2 times less (7 MB vs. 18 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 576 B allocs) |
22 times less (50 ns vs. 1 μs) |
similar (221 ms vs. 385 ms) |
3 times less (9 MB vs. 29 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 960 B allocs) |
67 times less (50 ns vs. 3 μs) |
similar (233 ms vs. 388 ms) |
2 times less (12 MB vs. 29 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
264 times less (50 ns vs. 13 μs) |
similar (283 ms vs. 384 ms) |
similar (24 MB vs. 29 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
2 |
distinct nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
5 times less (50 ns vs. 250 ns) |
2 times less (76 ms vs. 186 ms) |
2 times less (4 MB vs. 12 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
4 |
distinct nonempty singleton Tuples |
better (optimized out vs. 512 B allocs) |
9 times less (50 ns vs. 491 ns) |
similar (170 ms vs. 318 ms) |
3 times less (7 MB vs. 22 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
8 |
distinct nonempty singleton Tuples |
better (optimized out vs. 576 B allocs) |
49 times less (50 ns vs. 2 μs) |
2 times less (220 ms vs. 449 ms) |
3 times less (9 MB vs. 35 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (optimized out vs. 960 B allocs) |
108 times less (50 ns vs. 5 μs) |
similar (232 ms vs. 450 ms) |
2 times less (12 MB vs. 35 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
464 times less (40 ns vs. 19 μs) |
similar (285 ms vs. 452 ms) |
similar (24 MB vs. 35 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
better (11 LLVM lines vs. 640 B allocs) |
5 times less (60 ns vs. 350 ns) |
3 times less (59 ms vs. 187 ms) |
2 times less (5 MB vs. 11 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (17 LLVM lines vs. 1 kB allocs) |
11 times less (60 ns vs. 701 ns) |
2 times less (119 ms vs. 317 ms) |
2 times less (10 MB vs. 20 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (39 LLVM lines vs. 3 kB allocs) |
53 times less (60 ns vs. 3 μs) |
3 times less (141 ms vs. 506 ms) |
similar (18 MB vs. 33 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
fewer allocs (784 B allocs vs. 34 kB allocs) |
11 times less (801 ns vs. 10 μs) |
similar (424 ms vs. 503 ms) |
2 times more (87 MB vs. 33 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
fewer allocs (784 B allocs vs. 525 kB allocs) |
18 times less (3 μs vs. 62 μs) |
9 times more (5 s vs. 512 ms) |
27 times more (925 MB vs. 33 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times more (71 ms vs. 26 ms) |
262 times more (4 MB vs. 15 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times more (69 ms vs. 26 ms) |
202 times more (4 MB vs. 20 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (47 ms vs. 26 ms) |
232 times more (4 MB vs. 19 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
2 times more (74 ms vs. 31 ms) |
4 times more (4 MB vs. 1003 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
3 times more (133 ms vs. 35 ms) |
2 times more (6 MB vs. 3 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
2 times more (134 ms vs. 48 ms) |
similar (7 MB vs. 9 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 320 B allocs) |
2 times less (50 ns vs. 120 ns) |
2 times more (146 ms vs. 60 ms) |
6 times more (13 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 320 B allocs) |
2 times less (50 ns vs. 130 ns) |
3 times more (200 ms vs. 60 ms) |
16 times more (34 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (55 ms vs. 31 ms) |
5 times more (5 MB vs. 981 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
3 times more (109 ms vs. 35 ms) |
2 times more (8 MB vs. 3 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times more (113 ms vs. 47 ms) |
similar (9 MB vs. 9 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 320 B allocs) |
3 times less (40 ns vs. 130 ns) |
2 times more (132 ms vs. 53 ms) |
10 times more (22 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 320 B allocs) |
2 times less (50 ns vs. 130 ns) |
6 times more (320 ms vs. 51 ms) |
59 times more (130 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
2 times more (76 ms vs. 31 ms) |
4 times more (4 MB vs. 1003 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
4 times more (161 ms vs. 35 ms) |
2 times more (7 MB vs. 3 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
4 times more (221 ms vs. 47 ms) |
similar (9 MB vs. 9 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 320 B allocs) |
7 times less (40 ns vs. 280 ns) |
3 times more (231 ms vs. 61 ms) |
5 times more (12 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 320 B allocs) |
7 times less (40 ns vs. 280 ns) |
4 times more (284 ms vs. 62 ms) |
11 times more (24 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times more (77 ms vs. 33 ms) |
4 times more (4 MB vs. 1008 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
4 times more (168 ms vs. 35 ms) |
2 times more (7 MB vs. 3 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
4 times more (220 ms vs. 48 ms) |
similar (9 MB vs. 9 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (optimized out vs. 320 B allocs) |
6 times less (40 ns vs. 270 ns) |
3 times more (231 ms vs. 61 ms) |
5 times more (12 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 320 B allocs) |
5 times less (50 ns vs. 261 ns) |
4 times more (288 ms vs. 63 ms) |
11 times more (24 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (55 ms vs. 31 ms) |
5 times more (5 MB vs. 1007 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
3 times more (113 ms vs. 35 ms) |
2 times more (9 MB vs. 3 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times more (126 ms vs. 47 ms) |
similar (16 MB vs. 9 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 8 kB allocs) |
16 times less (40 ns vs. 641 ns) |
2 times more (151 ms vs. 53 ms) |
15 times more (33 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 29 kB allocs) |
32 times less (50 ns vs. 2 μs) |
7 times more (389 ms vs. 55 ms) |
74 times more (168 MB vs. 2 MB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (43 ms vs. 26 ms) |
15 times more (321 kB vs. 21 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (43 ms vs. 26 ms) |
13 times more (356 kB vs. 25 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (36 ms vs. 26 ms) |
14 times more (369 kB vs. 25 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (54 ms vs. 29 ms) |
4 times more (858 kB vs. 194 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (55 ms vs. 33 ms) |
3 times more (938 kB vs. 296 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
2 times more (88 ms vs. 33 ms) |
4 times more (1 MB vs. 297 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times more (97 ms vs. 33 ms) |
7 times more (2 MB vs. 299 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
4 times more (142 ms vs. 33 ms) |
20 times more (6 MB vs. 310 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (38 ms vs. 29 ms) |
5 times more (979 kB vs. 187 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (39 ms vs. 33 ms) |
2 times more (1 MB vs. 425 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
2 times more (70 ms vs. 34 ms) |
3 times more (1 MB vs. 434 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times more (74 ms vs. 34 ms) |
6 times more (3 MB vs. 494 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 4 kB allocs) |
122 times less (50 ns vs. 6 μs) |
2 times more (90 ms vs. 38 ms) |
21 times more (9 MB vs. 438 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (55 ms vs. 30 ms) |
4 times more (855 kB vs. 192 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (55 ms vs. 30 ms) |
5 times more (1 MB vs. 194 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
2 times more (87 ms vs. 30 ms) |
8 times more (2 MB vs. 195 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
3 times more (95 ms vs. 30 ms) |
13 times more (3 MB vs. 197 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
4 times more (135 ms vs. 30 ms) |
32 times more (7 MB vs. 208 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (55 ms vs. 29 ms) |
4 times more (860 kB vs. 196 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (56 ms vs. 30 ms) |
5 times more (1 MB vs. 198 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
2 times more (87 ms vs. 29 ms) |
8 times more (2 MB vs. 199 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
3 times more (95 ms vs. 30 ms) |
13 times more (3 MB vs. 202 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
4 times more (141 ms vs. 30 ms) |
32 times more (7 MB vs. 212 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (38 ms vs. 30 ms) |
3 times more (1006 kB vs. 260 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (39 ms vs. 30 ms) |
4 times more (1 MB vs. 287 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
2 times more (70 ms vs. 29 ms) |
6 times more (2 MB vs. 292 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
2 times more (74 ms vs. 30 ms) |
10 times more (4 MB vs. 331 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
3 times more (93 ms vs. 31 ms) |
35 times more (10 MB vs. 283 kB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (39 ms vs. 69 ms) |
5 times less (366 kB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (38 ms vs. 68 ms) |
5 times less (399 kB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 42 ms) |
5 times less (431 kB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (38 ms vs. 71 ms) |
5 times less (422 kB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (82 ms vs. 74 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (83 ms vs. 71 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (87 ms vs. 72 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (106 ms vs. 76 ms) |
2 times more (6 MB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (30 ms vs. 42 ms) |
5 times less (456 kB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (74 ms vs. 42 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (75 ms vs. 43 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (81 ms vs. 45 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (50 ns vs. 50 ns) |
2 times more (98 ms vs. 47 ms) |
2 times more (7 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (38 ms vs. 72 ms) |
5 times less (424 kB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (82 ms vs. 79 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (82 ms vs. 91 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (86 ms vs. 91 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
28 times less (50 ns vs. 1 μs) |
similar (105 ms vs. 80 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (38 ms vs. 72 ms) |
6 times less (428 kB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (84 ms vs. 80 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (82 ms vs. 92 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (87 ms vs. 92 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
27 times less (50 ns vs. 1 μs) |
similar (107 ms vs. 81 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 43 ms) |
5 times less (482 kB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (74 ms vs. 44 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (75 ms vs. 45 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (79 ms vs. 46 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
619 times less (40 ns vs. 25 μs) |
similar (103 ms vs. 54 ms) |
similar (7 MB vs. 4 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times less (38 ms vs. 77 ms) |
6 times less (366 kB vs. 2 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times less (38 ms vs. 76 ms) |
5 times less (399 kB vs. 2 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 50 ms) |
6 times less (431 kB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
2 times less (38 ms vs. 80 ms) |
5 times less (422 kB vs. 2 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (81 ms vs. 80 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (82 ms vs. 80 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (89 ms vs. 82 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (112 ms vs. 84 ms) |
2 times more (6 MB vs. 2 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 51 ms) |
6 times less (456 kB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (74 ms vs. 51 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (75 ms vs. 51 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (82 ms vs. 54 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (105 ms vs. 55 ms) |
2 times more (7 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times less (39 ms vs. 80 ms) |
6 times less (424 kB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (82 ms vs. 87 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (82 ms vs. 100 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (88 ms vs. 101 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 19 LLVM lines) |
27 times less (50 ns vs. 1 μs) |
similar (113 ms vs. 87 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times less (39 ms vs. 81 ms) |
6 times less (428 kB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (85 ms vs. 90 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (83 ms vs. 100 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (88 ms vs. 101 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
27 times less (50 ns vs. 1 μs) |
similar (112 ms vs. 89 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (31 ms vs. 51 ms) |
6 times less (482 kB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (74 ms vs. 53 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (76 ms vs. 54 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (81 ms vs. 55 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
461 times less (50 ns vs. 23 μs) |
similar (106 ms vs. 60 ms) |
similar (7 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
1 |
empty singleton Tuple |
better (optimized out vs. 80 B allocs) |
4 times less (40 ns vs. 160 ns) |
similar (38 ms vs. 69 ms) |
5 times less (518 kB vs. 3 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 80 B allocs) |
3 times less (50 ns vs. 160 ns) |
similar (39 ms vs. 70 ms) |
5 times less (551 kB vs. 3 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (optimized out vs. 80 B allocs) |
3 times less (50 ns vs. 170 ns) |
similar (31 ms vs. 60 ms) |
5 times less (583 kB vs. 3 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 112 B allocs) |
3 times less (50 ns vs. 190 ns) |
similar (39 ms vs. 72 ms) |
6 times less (587 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
4 |
identical nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 144 B allocs) |
6 times less (40 ns vs. 240 ns) |
similar (79 ms vs. 72 ms) |
4 times less (798 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 208 B allocs) |
7 times less (50 ns vs. 350 ns) |
similar (80 ms vs. 72 ms) |
3 times less (982 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 592 B allocs) |
20 times less (50 ns vs. 1 μs) |
similar (90 ms vs. 74 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (69 LLVM lines w/ Const vs. 2 kB allocs) |
47 times less (80 ns vs. 4 μs) |
5 times more (427 ms vs. 76 ms) |
2 times more (8 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 112 B allocs) |
4 times less (40 ns vs. 190 ns) |
similar (31 ms vs. 62 ms) |
6 times less (622 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 144 B allocs) |
4 times less (50 ns vs. 240 ns) |
similar (71 ms vs. 63 ms) |
4 times less (867 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 208 B allocs) |
7 times less (50 ns vs. 360 ns) |
similar (73 ms vs. 64 ms) |
3 times less (1 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 592 B allocs) |
25 times less (40 ns vs. 1 μs) |
similar (82 ms vs. 65 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (69 LLVM lines w/ Const vs. 2 kB allocs) |
47 times less (80 ns vs. 4 μs) |
6 times more (413 ms vs. 67 ms) |
2 times more (9 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 112 B allocs) |
4 times less (50 ns vs. 210 ns) |
similar (40 ms vs. 74 ms) |
6 times less (589 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 144 B allocs) |
5 times less (50 ns vs. 290 ns) |
similar (79 ms vs. 75 ms) |
4 times less (810 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 208 B allocs) |
9 times less (50 ns vs. 460 ns) |
similar (93 ms vs. 77 ms) |
3 times less (1006 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 592 B allocs) |
27 times less (50 ns vs. 1 μs) |
similar (89 ms vs. 74 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (69 LLVM lines w/ Const vs. 2 kB allocs) |
64 times less (80 ns vs. 5 μs) |
5 times more (421 ms vs. 76 ms) |
2 times more (8 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
2 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 112 B allocs) |
4 times less (50 ns vs. 210 ns) |
similar (40 ms vs. 74 ms) |
6 times less (594 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
4 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 144 B allocs) |
5 times less (50 ns vs. 280 ns) |
similar (81 ms vs. 75 ms) |
4 times less (814 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
8 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 208 B allocs) |
8 times less (50 ns vs. 440 ns) |
similar (99 ms vs. 77 ms) |
3 times less (1010 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 592 B allocs) |
27 times less (50 ns vs. 1 μs) |
similar (89 ms vs. 76 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (69 LLVM lines w/ Const vs. 2 kB allocs) |
64 times less (80 ns vs. 5 μs) |
5 times more (425 ms vs. 75 ms) |
2 times more (8 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 176 B allocs) |
5 times less (40 ns vs. 220 ns) |
2 times less (31 ms vs. 64 ms) |
6 times less (647 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 544 B allocs) |
6 times less (50 ns vs. 330 ns) |
similar (72 ms vs. 66 ms) |
4 times less (867 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 2 kB allocs) |
11 times less (50 ns vs. 580 ns) |
similar (73 ms vs. 70 ms) |
3 times less (1 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 32 kB allocs) |
65 times less (50 ns vs. 3 μs) |
similar (82 ms vs. 66 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (69 LLVM lines w/ Const vs. 523 kB allocs) |
348 times less (80 ns vs. 28 μs) |
6 times more (417 ms vs. 66 ms) |
similar (9 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
1 |
empty singleton Tuple |
better (optimized out vs. 80 B allocs) |
3 times less (50 ns vs. 160 ns) |
similar (39 ms vs. 73 ms) |
5 times less (518 kB vs. 3 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 80 B allocs) |
3 times less (50 ns vs. 160 ns) |
similar (39 ms vs. 73 ms) |
5 times less (551 kB vs. 3 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (optimized out vs. 80 B allocs) |
3 times less (50 ns vs. 160 ns) |
2 times less (31 ms vs. 64 ms) |
5 times less (583 kB vs. 3 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 112 B allocs) |
4 times less (40 ns vs. 180 ns) |
similar (39 ms vs. 76 ms) |
6 times less (587 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
4 |
identical nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 144 B allocs) |
4 times less (50 ns vs. 240 ns) |
similar (79 ms vs. 75 ms) |
4 times less (798 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 208 B allocs) |
7 times less (50 ns vs. 350 ns) |
similar (81 ms vs. 76 ms) |
3 times less (982 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 592 B allocs) |
20 times less (50 ns vs. 1 μs) |
similar (91 ms vs. 77 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (69 LLVM lines w/ Const vs. 2 kB allocs) |
54 times less (70 ns vs. 4 μs) |
5 times more (426 ms vs. 81 ms) |
2 times more (8 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 112 B allocs) |
3 times less (50 ns vs. 190 ns) |
2 times less (31 ms vs. 66 ms) |
6 times less (622 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 144 B allocs) |
4 times less (50 ns vs. 240 ns) |
similar (72 ms vs. 66 ms) |
4 times less (867 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 208 B allocs) |
8 times less (40 ns vs. 350 ns) |
similar (73 ms vs. 67 ms) |
3 times less (1 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 592 B allocs) |
25 times less (40 ns vs. 1 μs) |
similar (83 ms vs. 69 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (69 LLVM lines w/ Const vs. 2 kB allocs) |
47 times less (80 ns vs. 4 μs) |
6 times more (424 ms vs. 69 ms) |
2 times more (9 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 112 B allocs) |
4 times less (50 ns vs. 200 ns) |
similar (39 ms vs. 77 ms) |
6 times less (589 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 144 B allocs) |
5 times less (50 ns vs. 280 ns) |
similar (78 ms vs. 78 ms) |
4 times less (810 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 208 B allocs) |
9 times less (50 ns vs. 450 ns) |
similar (80 ms vs. 78 ms) |
3 times less (1006 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 592 B allocs) |
27 times less (50 ns vs. 1 μs) |
similar (90 ms vs. 78 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 2 kB allocs) |
63 times less (80 ns vs. 5 μs) |
5 times more (417 ms vs. 78 ms) |
2 times more (8 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
2 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 112 B allocs) |
4 times less (50 ns vs. 200 ns) |
similar (40 ms vs. 78 ms) |
6 times less (594 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
4 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 144 B allocs) |
5 times less (50 ns vs. 280 ns) |
similar (79 ms vs. 79 ms) |
4 times less (814 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
8 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 256 B allocs) |
9 times less (50 ns vs. 451 ns) |
similar (80 ms vs. 80 ms) |
3 times less (1010 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 1 kB allocs) |
38 times less (40 ns vs. 2 μs) |
similar (89 ms vs. 80 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (65 LLVM lines w/ Const vs. 4 kB allocs) |
70 times less (80 ns vs. 6 μs) |
5 times more (430 ms vs. 79 ms) |
2 times more (8 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 176 B allocs) |
4 times less (50 ns vs. 210 ns) |
2 times less (31 ms vs. 68 ms) |
6 times less (647 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 544 B allocs) |
6 times less (50 ns vs. 330 ns) |
similar (72 ms vs. 70 ms) |
4 times less (867 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 2 kB allocs) |
11 times less (50 ns vs. 591 ns) |
similar (76 ms vs. 74 ms) |
3 times less (1 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 33 kB allocs) |
62 times less (50 ns vs. 3 μs) |
similar (82 ms vs. 70 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (65 LLVM lines w/ Const vs. 525 kB allocs) |
369 times less (80 ns vs. 30 μs) |
5 times more (421 ms vs. 71 ms) |
similar (9 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times less (38 ms vs. 78 ms) |
7 times less (500 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
2 times less (38 ms vs. 77 ms) |
6 times less (535 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 51 ms) |
6 times less (565 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times less (39 ms vs. 78 ms) |
5 times less (683 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (83 ms vs. 78 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (84 ms vs. 78 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (91 ms vs. 80 ms) |
similar (5 MB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (40 ns vs. 50 ns) |
similar (121 ms vs. 78 ms) |
4 times more (15 MB vs. 3 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (31 ms vs. 50 ms) |
5 times less (718 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (75 ms vs. 51 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (77 ms vs. 52 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (84 ms vs. 55 ms) |
similar (6 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (50 ns vs. 50 ns) |
2 times more (112 ms vs. 53 ms) |
4 times more (16 MB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (40 ms vs. 79 ms) |
5 times less (736 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (83 ms vs. 80 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (85 ms vs. 81 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (92 ms vs. 83 ms) |
similar (6 MB vs. 6 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 25 LLVM lines) |
27 times less (50 ns vs. 1 μs) |
similar (122 ms vs. 84 ms) |
3 times more (15 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
2 times less (39 ms vs. 79 ms) |
5 times less (740 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (83 ms vs. 80 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (85 ms vs. 81 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (91 ms vs. 83 ms) |
similar (6 MB vs. 6 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 25 LLVM lines) |
33 times less (40 ns vs. 1 μs) |
similar (122 ms vs. 84 ms) |
3 times more (15 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (31 ms vs. 52 ms) |
5 times less (800 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (75 ms vs. 53 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (79 ms vs. 55 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (84 ms vs. 57 ms) |
similar (6 MB vs. 7 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
474 times less (50 ns vs. 24 μs) |
similar (115 ms vs. 60 ms) |
2 times more (16 MB vs. 6 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (39 ms vs. 74 ms) |
6 times less (353 kB vs. 2 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (38 ms vs. 73 ms) |
5 times less (385 kB vs. 2 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 47 ms) |
6 times less (417 kB vs. 2 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (38 ms vs. 76 ms) |
5 times less (411 kB vs. 2 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (81 ms vs. 77 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (85 ms vs. 76 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (88 ms vs. 77 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (106 ms vs. 80 ms) |
2 times more (6 MB vs. 2 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (30 ms vs. 47 ms) |
5 times less (445 kB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (74 ms vs. 47 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (77 ms vs. 49 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (79 ms vs. 49 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (100 ms vs. 51 ms) |
2 times more (7 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (39 ms vs. 77 ms) |
6 times less (413 kB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (81 ms vs. 84 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (82 ms vs. 97 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (87 ms vs. 98 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
28 times less (50 ns vs. 1 μs) |
similar (109 ms vs. 86 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (43 ms vs. 78 ms) |
6 times less (417 kB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (82 ms vs. 85 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (82 ms vs. 97 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (87 ms vs. 99 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
27 times less (50 ns vs. 1 μs) |
similar (108 ms vs. 87 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 48 ms) |
6 times less (471 kB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (74 ms vs. 49 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (75 ms vs. 51 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (80 ms vs. 52 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
477 times less (50 ns vs. 24 μs) |
similar (104 ms vs. 60 ms) |
similar (7 MB vs. 4 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (38 ms vs. 74 ms) |
6 times less (353 kB vs. 2 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (38 ms vs. 73 ms) |
5 times less (385 kB vs. 2 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 47 ms) |
6 times less (417 kB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (38 ms vs. 76 ms) |
5 times less (411 kB vs. 2 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (82 ms vs. 77 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (83 ms vs. 76 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (88 ms vs. 78 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (106 ms vs. 80 ms) |
2 times more (6 MB vs. 2 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 47 ms) |
6 times less (445 kB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (74 ms vs. 48 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (79 ms vs. 48 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (80 ms vs. 50 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (99 ms vs. 52 ms) |
2 times more (7 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (39 ms vs. 77 ms) |
6 times less (413 kB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (82 ms vs. 84 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (82 ms vs. 96 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (87 ms vs. 98 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
28 times less (50 ns vs. 1 μs) |
similar (108 ms vs. 85 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times less (38 ms vs. 78 ms) |
6 times less (417 kB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (82 ms vs. 85 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (83 ms vs. 97 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (87 ms vs. 99 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
27 times less (50 ns vs. 1 μs) |
similar (111 ms vs. 87 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 48 ms) |
6 times less (471 kB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (74 ms vs. 49 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (77 ms vs. 51 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (80 ms vs. 51 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
477 times less (50 ns vs. 24 μs) |
similar (102 ms vs. 58 ms) |
similar (7 MB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 50 ns) |
2 times less (38 ms vs. 82 ms) |
9 times less (366 kB vs. 3 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
2 times less (38 ms vs. 83 ms) |
8 times less (403 kB vs. 3 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 50 ns) |
similar (30 ms vs. 56 ms) |
8 times less (431 kB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 50 ns) |
2 times less (40 ms vs. 87 ms) |
6 times less (557 kB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (83 ms vs. 87 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (84 ms vs. 87 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (95 ms vs. 88 ms) |
similar (4 MB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 60 ns) |
similar (144 ms vs. 91 ms) |
2 times more (9 MB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (31 ms vs. 57 ms) |
6 times less (589 kB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (75 ms vs. 57 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (78 ms vs. 58 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (87 ms vs. 59 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 60 ns) |
2 times more (137 ms vs. 62 ms) |
2 times more (9 MB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 40 ns) |
2 times less (40 ms vs. 88 ms) |
7 times less (562 kB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (83 ms vs. 96 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 40 ns) |
similar (85 ms vs. 113 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (95 ms vs. 114 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 31 LLVM lines) |
36 times less (40 ns vs. 1 μs) |
similar (146 ms vs. 115 ms) |
similar (9 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
2 times less (40 ms vs. 89 ms) |
7 times less (567 kB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (83 ms vs. 96 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (85 ms vs. 113 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (96 ms vs. 114 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 31 LLVM lines) |
28 times less (50 ns vs. 1 μs) |
similar (146 ms vs. 97 ms) |
similar (9 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (31 ms vs. 59 ms) |
7 times less (622 kB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (75 ms vs. 59 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (78 ms vs. 65 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (88 ms vs. 61 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 521 kB allocs) |
465 times less (50 ns vs. 23 μs) |
similar (139 ms vs. 70 ms) |
similar (9 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (46 ms vs. 65 ms) |
9 times less (515 kB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 50 ns) |
similar (46 ms vs. 66 ms) |
7 times less (623 kB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (31 ms vs. 62 ms) |
6 times less (720 kB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 60 ns) |
similar (47 ms vs. 65 ms) |
6 times less (789 kB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (92 ms vs. 67 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 60 ns) |
similar (94 ms vs. 67 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 60 ns) |
similar (108 ms vs. 67 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
2 times more (190 ms vs. 68 ms) |
2 times more (11 MB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (32 ms vs. 63 ms) |
5 times less (897 kB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (80 ms vs. 83 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 60 ns) |
similar (79 ms vs. 65 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (92 ms vs. 67 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 60 ns) |
2 times more (178 ms vs. 65 ms) |
2 times more (12 MB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 26 LLVM lines) |
similar (50 ns vs. 70 ns) |
similar (51 ms vs. 69 ms) |
6 times less (852 kB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 42 LLVM lines) |
2 times less (50 ns vs. 100 ns) |
similar (103 ms vs. 69 ms) |
similar (3 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 86 LLVM lines) |
2 times less (50 ns vs. 140 ns) |
similar (117 ms vs. 69 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 32 LLVM lines) |
7 times less (50 ns vs. 390 ns) |
similar (130 ms vs. 71 ms) |
similar (5 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 32 LLVM lines) |
35 times less (40 ns vs. 1 μs) |
3 times more (216 ms vs. 71 ms) |
2 times more (11 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 26 LLVM lines) |
similar (50 ns vs. 70 ns) |
similar (51 ms vs. 69 ms) |
5 times less (932 kB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 78 LLVM lines) |
28 times less (50 ns vs. 1 μs) |
similar (103 ms vs. 70 ms) |
similar (3 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 146 LLVM lines) |
89 times less (50 ns vs. 4 μs) |
similar (116 ms vs. 70 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 55 LLVM lines) |
378 times less (50 ns vs. 19 μs) |
similar (130 ms vs. 72 ms) |
similar (5 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 55 LLVM lines) |
1586 times less (50 ns vs. 79 μs) |
3 times more (216 ms vs. 71 ms) |
similar (11 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 64 B allocs) |
similar (50 ns vs. 90 ns) |
2 times less (32 ms vs. 68 ms) |
5 times less (1 MB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 400 B allocs) |
9 times less (50 ns vs. 460 ns) |
similar (77 ms vs. 69 ms) |
similar (3 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 2 kB allocs) |
21 times less (50 ns vs. 1 μs) |
similar (81 ms vs. 70 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 32 kB allocs) |
105 times less (50 ns vs. 5 μs) |
similar (95 ms vs. 69 ms) |
similar (6 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 521 kB allocs) |
783 times less (50 ns vs. 39 μs) |
2 times more (184 ms vs. 72 ms) |
2 times more (13 MB vs. 6 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 40 ns) |
similar (46 ms vs. 62 ms) |
9 times less (515 kB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 50 ns) |
similar (46 ms vs. 61 ms) |
7 times less (623 kB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (31 ms vs. 59 ms) |
6 times less (720 kB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (47 ms vs. 61 ms) |
5 times less (792 kB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (92 ms vs. 63 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (94 ms vs. 63 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 60 ns) |
similar (108 ms vs. 64 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
3 times more (196 ms vs. 63 ms) |
2 times more (11 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (33 ms vs. 60 ms) |
5 times less (897 kB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (77 ms vs. 61 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 60 ns) |
similar (81 ms vs. 62 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
similar (96 ms vs. 62 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (50 ns vs. 50 ns) |
2 times more (182 ms vs. 62 ms) |
2 times more (12 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 26 LLVM lines) |
similar (50 ns vs. 70 ns) |
similar (51 ms vs. 65 ms) |
5 times less (852 kB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 42 LLVM lines) |
similar (50 ns vs. 90 ns) |
similar (103 ms vs. 65 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 86 LLVM lines) |
2 times less (50 ns vs. 140 ns) |
similar (116 ms vs. 66 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 32 LLVM lines) |
7 times less (50 ns vs. 390 ns) |
similar (130 ms vs. 66 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 32 LLVM lines) |
28 times less (50 ns vs. 1 μs) |
3 times more (219 ms vs. 67 ms) |
2 times more (11 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 26 LLVM lines) |
similar (50 ns vs. 70 ns) |
similar (51 ms vs. 65 ms) |
5 times less (935 kB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 78 LLVM lines) |
28 times less (50 ns vs. 1 μs) |
similar (104 ms vs. 67 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 146 LLVM lines) |
89 times less (50 ns vs. 4 μs) |
similar (117 ms vs. 66 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 55 LLVM lines) |
376 times less (50 ns vs. 19 μs) |
similar (133 ms vs. 67 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 55 LLVM lines) |
1981 times less (40 ns vs. 79 μs) |
3 times more (220 ms vs. 67 ms) |
2 times more (12 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 64 B allocs) |
similar (50 ns vs. 90 ns) |
similar (33 ms vs. 65 ms) |
4 times less (1 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 400 B allocs) |
11 times less (40 ns vs. 470 ns) |
similar (78 ms vs. 65 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 2 kB allocs) |
20 times less (50 ns vs. 1 μs) |
similar (83 ms vs. 68 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 32 kB allocs) |
108 times less (50 ns vs. 5 μs) |
similar (96 ms vs. 65 ms) |
similar (6 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 521 kB allocs) |
988 times less (40 ns vs. 40 μs) |
2 times more (188 ms vs. 68 ms) |
2 times more (13 MB vs. 6 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (39 ms vs. 69 ms) |
2 times less (421 kB vs. 1 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (38 ms vs. 68 ms) |
2 times less (453 kB vs. 1 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (31 ms vs. 41 ms) |
2 times less (769 kB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (39 ms vs. 73 ms) |
2 times less (682 kB vs. 1 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (83 ms vs. 73 ms) |
similar (3 MB vs. 1 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (84 ms vs. 72 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (93 ms vs. 73 ms) |
2 times more (4 MB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (132 ms vs. 77 ms) |
4 times more (9 MB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (32 ms vs. 42 ms) |
2 times less (1 MB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (76 ms vs. 42 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (77 ms vs. 43 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (82 ms vs. 46 ms) |
similar (6 MB vs. 5 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 60 ns) |
2 times more (107 ms vs. 43 ms) |
6 times more (16 MB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (41 ms vs. 73 ms) |
2 times less (687 kB vs. 1 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (87 ms vs. 83 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (90 ms vs. 104 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (103 ms vs. 133 ms) |
similar (6 MB vs. 4 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 44 LLVM lines) |
28 times less (50 ns vs. 1 μs) |
2 times more (168 ms vs. 83 ms) |
4 times more (12 MB vs. 3 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (41 ms vs. 74 ms) |
2 times less (767 kB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (87 ms vs. 83 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (89 ms vs. 103 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (104 ms vs. 137 ms) |
similar (6 MB vs. 5 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 43 LLVM lines) |
35 times less (40 ns vs. 1 μs) |
similar (164 ms vs. 82 ms) |
3 times more (12 MB vs. 3 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (32 ms vs. 42 ms) |
similar (1 MB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (77 ms vs. 45 ms) |
similar (4 MB vs. 4 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (82 ms vs. 58 ms) |
similar (5 MB vs. 6 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 51 ns) |
similar (86 ms vs. 57 ms) |
similar (8 MB vs. 11 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (8 LLVM lines vs. 521 kB allocs) |
405 times less (60 ns vs. 24 μs) |
2 times more (116 ms vs. 50 ms) |
4 times more (19 MB vs. 4 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (39 ms vs. 66 ms) |
2 times less (421 kB vs. 1 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (38 ms vs. 65 ms) |
2 times less (456 kB vs. 1 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (31 ms vs. 37 ms) |
2 times less (769 kB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (39 ms vs. 69 ms) |
2 times less (680 kB vs. 1 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (84 ms vs. 69 ms) |
similar (3 MB vs. 1 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (84 ms vs. 69 ms) |
similar (3 MB vs. 1 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (93 ms vs. 70 ms) |
2 times more (4 MB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (130 ms vs. 73 ms) |
4 times more (9 MB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (32 ms vs. 38 ms) |
2 times less (1 MB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (76 ms vs. 39 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (77 ms vs. 40 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (83 ms vs. 43 ms) |
similar (6 MB vs. 5 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 60 ns) |
2 times more (107 ms vs. 40 ms) |
6 times more (17 MB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (41 ms vs. 70 ms) |
2 times less (690 kB vs. 1 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (87 ms vs. 80 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (90 ms vs. 100 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (104 ms vs. 100 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 44 LLVM lines) |
28 times less (50 ns vs. 1 μs) |
2 times more (167 ms vs. 80 ms) |
4 times more (12 MB vs. 3 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (41 ms vs. 71 ms) |
2 times less (768 kB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (87 ms vs. 81 ms) |
similar (4 MB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (90 ms vs. 99 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (104 ms vs. 101 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 43 LLVM lines) |
28 times less (50 ns vs. 1 μs) |
2 times more (165 ms vs. 81 ms) |
4 times more (12 MB vs. 3 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (32 ms vs. 39 ms) |
similar (1 MB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (78 ms vs. 40 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (82 ms vs. 43 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (86 ms vs. 46 ms) |
similar (8 MB vs. 7 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (8 LLVM lines vs. 521 kB allocs) |
384 times less (60 ns vs. 23 μs) |
2 times more (114 ms vs. 46 ms) |
5 times more (19 MB vs. 4 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
3 times less (37 ms vs. 136 ms) |
20 times less (1 MB vs. 23 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
3 times less (36 ms vs. 132 ms) |
19 times less (1 MB vs. 23 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
3 times less (28 ms vs. 101 ms) |
19 times less (1 MB vs. 23 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (50 ns vs. 50 ns) |
3 times less (40 ms vs. 144 ms) |
16 times less (1 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
4 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (86 ms vs. 144 ms) |
6 times less (4 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (88 ms vs. 144 ms) |
5 times less (4 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (40 ns vs. 50 ns) |
similar (104 ms vs. 147 ms) |
2 times less (9 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (186 ms vs. 152 ms) |
similar (26 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (50 ns vs. 50 ns) |
3 times less (32 ms vs. 112 ms) |
16 times less (2 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (78 ms vs. 112 ms) |
6 times less (4 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (82 ms vs. 113 ms) |
5 times less (4 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (40 ns vs. 50 ns) |
similar (118 ms vs. 114 ms) |
2 times less (9 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (176 ms vs. 114 ms) |
similar (27 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 15 LLVM lines) |
similar (50 ns vs. 60 ns) |
3 times less (41 ms vs. 146 ms) |
16 times less (1 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 38 LLVM lines) |
similar (50 ns vs. 80 ns) |
similar (86 ms vs. 146 ms) |
6 times less (4 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 82 LLVM lines) |
3 times less (40 ns vs. 130 ns) |
similar (89 ms vs. 148 ms) |
5 times less (4 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
7 times less (50 ns vs. 380 ns) |
similar (104 ms vs. 148 ms) |
2 times less (9 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
35 times less (40 ns vs. 1 μs) |
similar (186 ms vs. 150 ms) |
similar (26 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
2 |
distinct nonempty singleton Tuples |
better (optimized out vs. 15 LLVM lines) |
similar (50 ns vs. 60 ns) |
3 times less (42 ms vs. 146 ms) |
16 times less (1 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
4 |
distinct nonempty singleton Tuples |
better (optimized out vs. 38 LLVM lines) |
2 times less (40 ns vs. 80 ns) |
similar (85 ms vs. 148 ms) |
6 times less (4 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
8 |
distinct nonempty singleton Tuples |
better (optimized out vs. 82 LLVM lines) |
2 times less (50 ns vs. 130 ns) |
similar (88 ms vs. 148 ms) |
5 times less (4 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
7 times less (50 ns vs. 371 ns) |
similar (105 ms vs. 149 ms) |
2 times less (9 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
27 times less (50 ns vs. 1 μs) |
similar (191 ms vs. 147 ms) |
similar (26 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 64 B allocs) |
similar (50 ns vs. 90 ns) |
3 times less (33 ms vs. 115 ms) |
16 times less (2 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 400 B allocs) |
3 times less (40 ns vs. 140 ns) |
similar (78 ms vs. 117 ms) |
6 times less (4 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 2 kB allocs) |
5 times less (50 ns vs. 260 ns) |
similar (81 ms vs. 123 ms) |
5 times less (5 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 32 kB allocs) |
47 times less (50 ns vs. 2 μs) |
similar (97 ms vs. 118 ms) |
2 times less (9 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
481 times less (50 ns vs. 24 μs) |
similar (185 ms vs. 120 ms) |
similar (27 MB vs. 26 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
3 times less (37 ms vs. 123 ms) |
19 times less (1 MB vs. 22 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
3 times less (37 ms vs. 125 ms) |
19 times less (1 MB vs. 22 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
3 times less (29 ms vs. 92 ms) |
19 times less (1 MB vs. 22 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (50 ns vs. 50 ns) |
2 times less (45 ms vs. 134 ms) |
16 times less (1 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
4 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (86 ms vs. 135 ms) |
6 times less (4 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (40 ns vs. 50 ns) |
similar (88 ms vs. 135 ms) |
5 times less (4 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (103 ms vs. 137 ms) |
2 times less (9 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (40 ns vs. 50 ns) |
similar (191 ms vs. 137 ms) |
similar (26 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (50 ns vs. 50 ns) |
3 times less (33 ms vs. 106 ms) |
16 times less (2 MB vs. 25 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (78 ms vs. 104 ms) |
6 times less (4 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (82 ms vs. 104 ms) |
5 times less (4 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (97 ms vs. 104 ms) |
2 times less (9 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (40 ns vs. 50 ns) |
similar (176 ms vs. 104 ms) |
similar (27 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 9 LLVM lines) |
similar (40 ns vs. 60 ns) |
3 times less (41 ms vs. 138 ms) |
16 times less (1 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 38 LLVM lines) |
similar (50 ns vs. 80 ns) |
similar (85 ms vs. 138 ms) |
6 times less (4 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 82 LLVM lines) |
2 times less (50 ns vs. 130 ns) |
similar (88 ms vs. 140 ms) |
5 times less (4 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
9 times less (40 ns vs. 380 ns) |
similar (104 ms vs. 137 ms) |
2 times less (9 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
28 times less (50 ns vs. 1 μs) |
similar (183 ms vs. 138 ms) |
similar (26 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
2 |
distinct nonempty singleton Tuples |
better (optimized out vs. 9 LLVM lines) |
similar (50 ns vs. 60 ns) |
3 times less (41 ms vs. 140 ms) |
16 times less (1 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
4 |
distinct nonempty singleton Tuples |
better (optimized out vs. 38 LLVM lines) |
similar (50 ns vs. 80 ns) |
similar (86 ms vs. 138 ms) |
6 times less (4 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
8 |
distinct nonempty singleton Tuples |
better (optimized out vs. 82 LLVM lines) |
3 times less (40 ns vs. 130 ns) |
similar (88 ms vs. 139 ms) |
5 times less (4 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
7 times less (50 ns vs. 370 ns) |
similar (105 ms vs. 140 ms) |
2 times less (9 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
34 times less (40 ns vs. 1 μs) |
similar (186 ms vs. 140 ms) |
similar (26 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 64 B allocs) |
2 times less (40 ns vs. 90 ns) |
3 times less (33 ms vs. 109 ms) |
15 times less (2 MB vs. 25 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 400 B allocs) |
2 times less (50 ns vs. 140 ns) |
similar (78 ms vs. 108 ms) |
6 times less (4 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 2 kB allocs) |
5 times less (50 ns vs. 260 ns) |
similar (81 ms vs. 115 ms) |
5 times less (5 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 32 kB allocs) |
46 times less (50 ns vs. 2 μs) |
similar (96 ms vs. 110 ms) |
2 times less (9 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
471 times less (50 ns vs. 24 μs) |
similar (180 ms vs. 112 ms) |
similar (27 MB vs. 25 MB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (33 ms vs. 32 ms) |
similar (198 kB vs. 181 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (36 ms vs. 34 ms) |
similar (239 kB vs. 246 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (33 ms vs. 33 ms) |
similar (213 kB vs. 235 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (36 ms vs. 36 ms) |
similar (242 kB vs. 407 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (55 ms vs. 37 ms) |
2 times less (307 kB vs. 707 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (55 ms vs. 38 ms) |
3 times less (328 kB vs. 1 MB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (57 ms vs. 31 ms) |
similar (456 kB vs. 269 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
2 times more (66 ms vs. 31 ms) |
3 times more (963 kB vs. 269 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (33 ms vs. 34 ms) |
similar (215 kB vs. 420 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (54 ms vs. 36 ms) |
3 times less (306 kB vs. 937 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (52 ms vs. 38 ms) |
6 times less (327 kB vs. 2 MB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (54 ms vs. 32 ms) |
similar (454 kB vs. 273 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (62 ms vs. 32 ms) |
3 times more (961 kB vs. 274 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (37 ms vs. 36 ms) |
similar (288 kB vs. 451 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (55 ms vs. 39 ms) |
2 times less (354 kB vs. 786 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (55 ms vs. 38 ms) |
3 times less (375 kB vs. 1 MB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 31 LLVM lines) |
similar (50 ns vs. 70 ns) |
similar (57 ms vs. 37 ms) |
similar (502 kB vs. 608 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 31 LLVM lines) |
similar (50 ns vs. 80 ns) |
similar (65 ms vs. 38 ms) |
similar (1009 kB vs. 608 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (37 ms vs. 36 ms) |
similar (242 kB vs. 407 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (55 ms vs. 37 ms) |
2 times less (308 kB vs. 713 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (58 ms vs. 38 ms) |
3 times less (329 kB vs. 1 MB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (58 ms vs. 31 ms) |
similar (457 kB vs. 270 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times more (66 ms vs. 31 ms) |
3 times more (964 kB vs. 270 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (33 ms vs. 34 ms) |
2 times less (241 kB vs. 506 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (52 ms vs. 37 ms) |
3 times less (307 kB vs. 1 MB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (52 ms vs. 40 ms) |
6 times less (328 kB vs. 2 MB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (54 ms vs. 32 ms) |
similar (455 kB vs. 275 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (63 ms vs. 32 ms) |
3 times more (962 kB vs. 278 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (43 ms vs. 40 ms) |
similar (358 kB vs. 344 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (37 ms vs. 42 ms) |
similar (302 kB vs. 399 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (30 ms vs. 38 ms) |
similar (342 kB vs. 471 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (37 ms vs. 44 ms) |
similar (308 kB vs. 562 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (56 ms vs. 57 ms) |
2 times less (378 kB vs. 936 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (56 ms vs. 58 ms) |
3 times less (408 kB vs. 2 MB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (58 ms vs. 43 ms) |
similar (593 kB vs. 691 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (67 ms vs. 41 ms) |
similar (1 MB vs. 691 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (31 ms vs. 41 ms) |
similar (353 kB vs. 670 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (49 ms vs. 53 ms) |
2 times less (461 kB vs. 1 MB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (50 ms vs. 56 ms) |
4 times less (517 kB vs. 2 MB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (52 ms vs. 43 ms) |
similar (853 kB vs. 696 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (61 ms vs. 42 ms) |
3 times more (2 MB vs. 697 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (44 ms vs. 38 ms) |
similar (397 kB vs. 467 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (61 ms vs. 61 ms) |
similar (477 kB vs. 930 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (62 ms vs. 40 ms) |
3 times less (478 kB vs. 1 MB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 30 LLVM lines) |
2 times less (50 ns vs. 100 ns) |
similar (64 ms vs. 43 ms) |
similar (625 kB vs. 710 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 30 LLVM lines) |
similar (50 ns vs. 70 ns) |
similar (73 ms vs. 44 ms) |
similar (1 MB vs. 710 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (38 ms vs. 41 ms) |
similar (312 kB vs. 527 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (55 ms vs. 42 ms) |
2 times less (391 kB vs. 906 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (56 ms vs. 43 ms) |
3 times less (436 kB vs. 2 MB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (optimized out vs. 30 LLVM lines) |
7 times less (50 ns vs. 370 ns) |
similar (58 ms vs. 43 ms) |
similar (620 kB vs. 710 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 30 LLVM lines) |
27 times less (50 ns vs. 1 μs) |
similar (68 ms vs. 44 ms) |
similar (1 MB vs. 710 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (31 ms vs. 40 ms) |
similar (383 kB vs. 724 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (49 ms vs. 42 ms) |
2 times less (474 kB vs. 1 MB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (51 ms vs. 52 ms) |
5 times less (543 kB vs. 3 MB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 33 kB allocs) |
47 times less (50 ns vs. 2 μs) |
similar (52 ms vs. 46 ms) |
similar (880 kB vs. 752 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 525 kB allocs) |
484 times less (50 ns vs. 24 μs) |
similar (62 ms vs. 47 ms) |
similar (2 MB vs. 1 MB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (50 ms vs. 46 ms) |
similar (272 kB vs. 201 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (50 ms vs. 49 ms) |
similar (307 kB vs. 267 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (48 ms vs. 47 ms) |
similar (316 kB vs. 256 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (51 ms vs. 50 ms) |
similar (328 kB vs. 428 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (71 ms vs. 51 ms) |
similar (434 kB vs. 728 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (74 ms vs. 52 ms) |
2 times less (539 kB vs. 1 MB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (90 ms vs. 52 ms) |
2 times more (1 MB vs. 397 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
3 times more (182 ms vs. 52 ms) |
9 times more (4 MB vs. 397 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (49 ms vs. 49 ms) |
similar (356 kB vs. 441 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (70 ms vs. 51 ms) |
similar (518 kB vs. 958 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (73 ms vs. 52 ms) |
2 times less (695 kB vs. 2 MB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (94 ms vs. 54 ms) |
4 times more (2 MB vs. 401 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 50 ns) |
3 times more (205 ms vs. 53 ms) |
14 times more (6 MB vs. 402 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (57 ms vs. 55 ms) |
similar (372 kB vs. 464 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (85 ms vs. 72 ms) |
similar (574 kB vs. 1022 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times more (101 ms vs. 50 ms) |
similar (818 kB vs. 1 MB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. type-unstable) |
2 times less (50 ns vs. 110 ns) |
similar (121 ms vs. 66 ms) |
2 times more (1 MB vs. 583 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. type-unstable) |
similar (50 ns vs. 90 ns) |
4 times more (234 ms vs. 58 ms) |
7 times more (4 MB vs. 501 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (57 ms vs. 55 ms) |
similar (376 kB vs. 469 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (85 ms vs. 73 ms) |
similar (578 kB vs. 1 MB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (100 ms vs. 52 ms) |
similar (822 kB vs. 1 MB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (optimized out vs. type-unstable) |
2 times less (50 ns vs. 100 ns) |
similar (120 ms vs. 66 ms) |
2 times more (1 MB vs. 587 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. type-unstable) |
similar (50 ns vs. 80 ns) |
3 times more (220 ms vs. 58 ms) |
7 times more (4 MB vs. 505 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (55 ms vs. 54 ms) |
similar (440 kB vs. 563 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (85 ms vs. 73 ms) |
2 times less (695 kB vs. 1 MB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 50 ns) |
similar (102 ms vs. 54 ms) |
2 times less (1 MB vs. 2 MB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (8 LLVM lines vs. 5 kB allocs) |
5 times less (60 ns vs. 330 ns) |
similar (131 ms vs. 69 ms) |
3 times more (2 MB vs. 560 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (8 LLVM lines vs. 12 kB allocs) |
11 times less (60 ns vs. 681 ns) |
4 times more (288 ms vs. 60 ms) |
12 times more (6 MB vs. 495 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (53 ms vs. 54 ms) |
similar (411 kB vs. 406 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (54 ms vs. 57 ms) |
similar (445 kB vs. 466 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (48 ms vs. 52 ms) |
similar (532 kB vs. 533 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (55 ms vs. 58 ms) |
similar (469 kB vs. 629 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (74 ms vs. 71 ms) |
similar (585 kB vs. 956 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
similar (77 ms vs. 71 ms) |
2 times less (706 kB vs. 2 MB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (93 ms vs. 58 ms) |
similar (1 MB vs. 761 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
3 times more (185 ms vs. 60 ms) |
5 times more (4 MB vs. 761 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (49 ms vs. 54 ms) |
similar (588 kB vs. 732 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (70 ms vs. 67 ms) |
similar (783 kB vs. 1 MB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (73 ms vs. 69 ms) |
2 times less (1011 kB vs. 2 MB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (95 ms vs. 61 ms) |
3 times more (2 MB vs. 765 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (50 ns vs. 50 ns) |
3 times more (209 ms vs. 61 ms) |
10 times more (8 MB vs. 765 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (60 ms vs. 52 ms) |
similar (513 kB vs. 534 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (87 ms vs. 53 ms) |
similar (718 kB vs. 858 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (60 ns vs. 40 ns) |
similar (103 ms vs. 55 ms) |
similar (971 kB vs. 1 MB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times more (123 ms vs. 59 ms) |
2 times more (2 MB vs. 825 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
3 times more (232 ms vs. 60 ms) |
5 times more (5 MB vs. 825 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (60 ms vs. 56 ms) |
similar (517 kB vs. 594 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (88 ms vs. 56 ms) |
similar (723 kB vs. 918 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (102 ms vs. 57 ms) |
similar (975 kB vs. 2 MB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
2 times more (122 ms vs. 59 ms) |
2 times more (2 MB vs. 825 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
3 times more (222 ms vs. 60 ms) |
5 times more (5 MB vs. 825 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (55 ms vs. 54 ms) |
similar (668 kB vs. 787 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (84 ms vs. 57 ms) |
similar (953 kB vs. 1 MB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (101 ms vs. 62 ms) |
2 times less (1 MB vs. 3 MB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 50 ns) |
2 times more (132 ms vs. 61 ms) |
3 times more (3 MB vs. 809 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 60 ns) |
4 times more (285 ms vs. 62 ms) |
10 times more (8 MB vs. 815 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (50 ms vs. 31 ms) |
5 times more (3 MB vs. 603 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
similar (58 ms vs. 31 ms) |
5 times more (3 MB vs. 641 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (44 ms vs. 36 ms) |
4 times more (4 MB vs. 828 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (61 ms vs. 31 ms) |
5 times more (3 MB vs. 704 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
4 times more (128 ms vs. 30 ms) |
7 times more (6 MB vs. 831 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
5 times more (183 ms vs. 31 ms) |
8 times more (8 MB vs. 936 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 128 B allocs) |
13 times less (50 ns vs. 650 ns) |
4 times more (524 ms vs. 116 ms) |
2 times more (19 MB vs. 7 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 128 B allocs) |
42 times less (50 ns vs. 2 μs) |
18 times more (2 s vs. 114 ms) |
10 times more (74 MB vs. 7 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (51 ms vs. 37 ms) |
4 times more (4 MB vs. 960 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
2 times more (91 ms vs. 36 ms) |
6 times more (8 MB vs. 1 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (12 LLVM lines) |
similar (60 ns vs. 50 ns) |
2 times more (103 ms vs. 37 ms) |
7 times more (12 MB vs. 2 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (36 LLVM lines vs. 1 kB allocs) |
22 times less (60 ns vs. 1 μs) |
similar (239 ms vs. 131 ms) |
7 times more (55 MB vs. 7 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (132 LLVM lines vs. 5 kB allocs) |
55 times less (90 ns vs. 5 μs) |
9 times more (1 s vs. 130 ms) |
80 times more (567 MB vs. 7 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times more (63 ms vs. 30 ms) |
4 times more (4 MB vs. 782 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
4 times more (130 ms vs. 31 ms) |
6 times more (6 MB vs. 1004 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
5 times more (186 ms vs. 31 ms) |
6 times more (8 MB vs. 1 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 880 B allocs) |
19 times less (50 ns vs. 971 ns) |
3 times more (528 ms vs. 139 ms) |
2 times more (19 MB vs. 8 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 3 kB allocs) |
80 times less (40 ns vs. 3 μs) |
14 times more (2 s vs. 140 ms) |
8 times more (71 MB vs. 8 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times more (83 ms vs. 31 ms) |
4 times more (4 MB vs. 789 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
4 times more (130 ms vs. 31 ms) |
6 times more (6 MB vs. 1011 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
5 times more (186 ms vs. 32 ms) |
6 times more (8 MB vs. 1 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (optimized out vs. 640 B allocs) |
88 times less (40 ns vs. 4 μs) |
3 times more (532 ms vs. 169 ms) |
2 times more (20 MB vs. 9 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
290 times less (50 ns vs. 15 μs) |
12 times more (2 s vs. 170 ms) |
8 times more (75 MB vs. 9 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (60 ns vs. 50 ns) |
similar (51 ms vs. 35 ms) |
4 times more (4 MB vs. 1 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (17 LLVM lines) |
similar (60 ns vs. 60 ns) |
2 times more (93 ms vs. 37 ms) |
5 times more (8 MB vs. 1 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (30 LLVM lines) |
similar (70 ns vs. 60 ns) |
2 times more (107 ms vs. 39 ms) |
6 times more (13 MB vs. 2 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (105 LLVM lines vs. 35 kB allocs) |
90 times less (80 ns vs. 7 μs) |
similar (241 ms vs. 188 ms) |
6 times more (56 MB vs. 9 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (625 LLVM lines vs. 533 kB allocs) |
159 times less (360 ns vs. 57 μs) |
7 times more (1 s vs. 189 ms) |
62 times more (568 MB vs. 9 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
2 times more (81 ms vs. 32 ms) |
6 times more (5 MB vs. 780 kB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 50 ns) |
2 times more (80 ms vs. 32 ms) |
6 times more (5 MB vs. 815 kB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (53 ms vs. 37 ms) |
4 times more (5 MB vs. 1006 kB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
3 times more (119 ms vs. 32 ms) |
7 times more (7 MB vs. 882 kB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
6 times more (194 ms vs. 31 ms) |
10 times more (10 MB vs. 1016 kB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
8 times more (271 ms vs. 32 ms) |
17 times more (20 MB vs. 1 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
15 times less (50 ns vs. 771 ns) |
5 times more (640 ms vs. 124 ms) |
4 times more (34 MB vs. 7 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
45 times less (50 ns vs. 2 μs) |
18 times more (2 s vs. 121 ms) |
13 times more (101 MB vs. 7 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (64 ms vs. 38 ms) |
6 times more (7 MB vs. 1 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
3 times more (115 ms vs. 37 ms) |
9 times more (13 MB vs. 1 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (12 LLVM lines) |
similar (50 ns vs. 60 ns) |
3 times more (144 ms vs. 38 ms) |
13 times more (25 MB vs. 2 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (36 LLVM lines vs. 2 kB allocs) |
26 times less (60 ns vs. 2 μs) |
similar (280 ms vs. 141 ms) |
9 times more (70 MB vs. 7 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (132 LLVM lines vs. 7 kB allocs) |
59 times less (90 ns vs. 5 μs) |
9 times more (1 s vs. 141 ms) |
77 times more (569 MB vs. 7 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
3 times more (116 ms vs. 31 ms) |
7 times more (7 MB vs. 970 kB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
6 times more (203 ms vs. 32 ms) |
15 times more (18 MB vs. 1 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
8 times more (278 ms vs. 32 ms) |
13 times more (21 MB vs. 2 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
31 times less (50 ns vs. 2 μs) |
4 times more (732 ms vs. 152 ms) |
4 times more (37 MB vs. 8 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 5 kB allocs) |
108 times less (50 ns vs. 5 μs) |
17 times more (3 s vs. 153 ms) |
13 times more (112 MB vs. 8 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
3 times more (116 ms vs. 31 ms) |
7 times more (7 MB vs. 975 kB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 40 ns) |
6 times more (206 ms vs. 33 ms) |
15 times more (18 MB vs. 1 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
8 times more (264 ms vs. 33 ms) |
12 times more (21 MB vs. 2 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (optimized out vs. 1 kB allocs) |
131 times less (50 ns vs. 7 μs) |
3 times more (648 ms vs. 185 ms) |
3 times more (35 MB vs. 9 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 4 kB allocs) |
549 times less (50 ns vs. 27 μs) |
11 times more (2 s vs. 191 ms) |
11 times more (102 MB vs. 9 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (64 ms vs. 36 ms) |
5 times more (7 MB vs. 1 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (17 LLVM lines) |
similar (60 ns vs. 60 ns) |
3 times more (133 ms vs. 38 ms) |
12 times more (20 MB vs. 2 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (30 LLVM lines) |
similar (60 ns vs. 70 ns) |
3 times more (147 ms vs. 40 ms) |
11 times more (26 MB vs. 2 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (105 LLVM lines vs. 69 kB allocs) |
193 times less (80 ns vs. 15 μs) |
similar (286 ms vs. 201 ms) |
7 times more (71 MB vs. 9 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (843 LLVM lines vs. 1 MB allocs) |
182 times less (611 ns vs. 111 μs) |
7 times more (1 s vs. 202 ms) |
57 times more (570 MB vs. 10 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (50 ms vs. 32 ms) |
2 times more (3 MB vs. 1 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 64 B allocs) |
2 times less (50 ns vs. 140 ns) |
similar (54 ms vs. 48 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (8 LLVM lines vs. 80 B allocs) |
3 times less (50 ns vs. 170 ns) |
similar (43 ms vs. 39 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
3 times less (50 ns vs. 150 ns) |
similar (57 ms vs. 51 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
4 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
3 times less (50 ns vs. 190 ns) |
2 times more (118 ms vs. 52 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
5 times less (50 ns vs. 250 ns) |
3 times more (174 ms vs. 51 ms) |
2 times more (8 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
12 times less (50 ns vs. 620 ns) |
9 times more (513 ms vs. 55 ms) |
5 times more (18 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
54 times less (40 ns vs. 2 μs) |
38 times more (2 s vs. 53 ms) |
22 times more (74 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 112 B allocs) |
3 times less (60 ns vs. 190 ns) |
similar (50 ms vs. 44 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 144 B allocs) |
4 times less (60 ns vs. 240 ns) |
similar (83 ms vs. 44 ms) |
2 times more (7 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (12 LLVM lines vs. 208 B allocs) |
5 times less (60 ns vs. 350 ns) |
2 times more (93 ms vs. 46 ms) |
3 times more (11 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (36 LLVM lines vs. 592 B allocs) |
17 times less (60 ns vs. 1 μs) |
4 times more (210 ms vs. 45 ms) |
14 times more (48 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (132 LLVM lines vs. 2 kB allocs) |
47 times less (80 ns vs. 4 μs) |
24 times more (1 s vs. 46 ms) |
143 times more (481 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 96 B allocs) |
7 times less (50 ns vs. 391 ns) |
similar (58 ms vs. 73 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 128 B allocs) |
6 times less (50 ns vs. 340 ns) |
similar (122 ms vs. 87 ms) |
similar (6 MB vs. 6 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 496 B allocs) |
16 times less (50 ns vs. 801 ns) |
2 times more (191 ms vs. 87 ms) |
similar (8 MB vs. 6 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
56 times less (50 ns vs. 3 μs) |
6 times more (526 ms vs. 83 ms) |
3 times more (20 MB vs. 6 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 8 kB allocs) |
232 times less (50 ns vs. 12 μs) |
27 times more (2 s vs. 83 ms) |
18 times more (104 MB vs. 6 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
2 |
distinct nonempty singleton Tuples |
better (optimized out vs. 192 B allocs) |
5 times less (50 ns vs. 290 ns) |
similar (59 ms vs. 88 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
4 |
distinct nonempty singleton Tuples |
better (optimized out vs. 496 B allocs) |
9 times less (50 ns vs. 460 ns) |
similar (121 ms vs. 87 ms) |
similar (6 MB vs. 7 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
8 |
distinct nonempty singleton Tuples |
better (optimized out vs. 496 B allocs) |
20 times less (50 ns vs. 1 μs) |
2 times more (176 ms vs. 86 ms) |
similar (8 MB vs. 7 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
72 times less (50 ns vs. 4 μs) |
6 times more (557 ms vs. 86 ms) |
3 times more (22 MB vs. 7 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 8 kB allocs) |
295 times less (50 ns vs. 15 μs) |
28 times more (2 s vs. 86 ms) |
18 times more (122 MB vs. 7 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
better (12 LLVM lines vs. 352 B allocs) |
6 times less (60 ns vs. 380 ns) |
similar (51 ms vs. 64 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (16 LLVM lines vs. 1 kB allocs) |
9 times less (60 ns vs. 591 ns) |
similar (87 ms vs. 59 ms) |
similar (8 MB vs. 4 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (36 LLVM lines vs. 3 kB allocs) |
21 times less (60 ns vs. 1 μs) |
similar (102 ms vs. 60 ms) |
3 times more (15 MB vs. 4 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (128 LLVM lines vs. 35 kB allocs) |
74 times less (80 ns vs. 6 μs) |
5 times more (349 ms vs. 60 ms) |
27 times more (118 MB vs. 4 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (516 LLVM lines vs. 533 kB allocs) |
141 times less (300 ns vs. 42 μs) |
64 times more (4 s vs. 60 ms) |
339 times more (2 GB vs. 5 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (50 ns vs. 50 ns) |
similar (62 ms vs. 55 ms) |
2 times more (3 MB vs. 1 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 64 B allocs) |
3 times less (50 ns vs. 150 ns) |
similar (66 ms vs. 86 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (8 LLVM lines vs. 144 B allocs) |
3 times less (60 ns vs. 180 ns) |
similar (44 ms vs. 57 ms) |
similar (4 MB vs. 4 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 96 B allocs) |
3 times less (50 ns vs. 180 ns) |
similar (70 ms vs. 104 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
4 |
identical nonempty singleton Tuples |
better (optimized out vs. 96 B allocs) |
4 times less (50 ns vs. 210 ns) |
similar (137 ms vs. 106 ms) |
similar (6 MB vs. 5 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 96 B allocs) |
5 times less (50 ns vs. 280 ns) |
similar (192 ms vs. 104 ms) |
similar (8 MB vs. 5 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 128 B allocs) |
13 times less (50 ns vs. 691 ns) |
5 times more (537 ms vs. 104 ms) |
3 times more (19 MB vs. 5 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 160 B allocs) |
46 times less (50 ns vs. 2 μs) |
19 times more (2 s vs. 105 ms) |
14 times more (75 MB vs. 5 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 192 B allocs) |
3 times less (60 ns vs. 220 ns) |
similar (52 ms vs. 66 ms) |
similar (4 MB vs. 4 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 208 B allocs) |
4 times less (60 ns vs. 280 ns) |
similar (92 ms vs. 69 ms) |
similar (8 MB vs. 4 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (12 LLVM lines vs. 240 B allocs) |
7 times less (50 ns vs. 390 ns) |
similar (103 ms vs. 69 ms) |
2 times more (12 MB vs. 5 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (36 LLVM lines vs. 800 B allocs) |
19 times less (60 ns vs. 1 μs) |
3 times more (236 ms vs. 69 ms) |
12 times more (54 MB vs. 4 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (132 LLVM lines vs. 3 kB allocs) |
44 times less (90 ns vs. 4 μs) |
18 times more (1 s vs. 68 ms) |
127 times more (552 MB vs. 4 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 144 B allocs) |
6 times less (50 ns vs. 310 ns) |
similar (74 ms vs. 123 ms) |
similar (4 MB vs. 7 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 1 kB allocs) |
74 times less (50 ns vs. 4 μs) |
2 times less (150 ms vs. 331 ms) |
4 times less (7 MB vs. 30 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 3 kB allocs) |
144 times less (50 ns vs. 7 μs) |
similar (215 ms vs. 394 ms) |
3 times less (9 MB vs. 32 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 11 kB allocs) |
439 times less (50 ns vs. 22 μs) |
similar (565 ms vs. 405 ms) |
similar (21 MB vs. 32 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 43 kB allocs) |
2102 times less (40 ns vs. 84 μs) |
5 times more (2 s vs. 407 ms) |
3 times more (106 MB vs. 32 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
2 |
distinct nonempty singleton Tuples |
better (optimized out vs. 240 B allocs) |
8 times less (50 ns vs. 400 ns) |
3 times less (75 ms vs. 244 ms) |
4 times less (4 MB vs. 17 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
4 |
distinct nonempty singleton Tuples |
better (optimized out vs. 1 kB allocs) |
38 times less (50 ns vs. 2 μs) |
2 times less (150 ms vs. 320 ms) |
3 times less (7 MB vs. 24 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
8 |
distinct nonempty singleton Tuples |
better (optimized out vs. 3 kB allocs) |
121 times less (50 ns vs. 6 μs) |
similar (217 ms vs. 389 ms) |
2 times less (9 MB vs. 26 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (optimized out vs. 13 kB allocs) |
503 times less (50 ns vs. 25 μs) |
similar (587 ms vs. 392 ms) |
similar (23 MB vs. 26 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 55 kB allocs) |
2314 times less (50 ns vs. 116 μs) |
6 times more (3 s vs. 399 ms) |
4 times more (124 MB vs. 26 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
better (13 LLVM lines vs. 352 B allocs) |
6 times less (60 ns vs. 410 ns) |
similar (53 ms vs. 89 ms) |
similar (5 MB vs. 6 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (32 LLVM lines vs. 3 kB allocs) |
32 times less (60 ns vs. 2 μs) |
similar (96 ms vs. 144 ms) |
similar (9 MB vs. 7 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (69 LLVM lines vs. 14 kB allocs) |
100 times less (60 ns vs. 6 μs) |
similar (117 ms vs. 234 ms) |
similar (18 MB vs. 9 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (276 LLVM lines vs. 175 kB allocs) |
434 times less (90 ns vs. 39 μs) |
similar (397 ms vs. 231 ms) |
14 times more (138 MB vs. 9 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (1111 LLVM lines vs. 3 MB allocs) |
826 times less (351 ns vs. 290 μs) |
18 times more (4 s vs. 231 ms) |
160 times more (2 GB vs. 12 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
1 |
empty singleton Tuple |
better (optimized out vs. 80 B allocs) |
2 times less (50 ns vs. 140 ns) |
similar (84 ms vs. 111 ms) |
2 times less (7 MB vs. 15 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 80 B allocs) |
2 times less (50 ns vs. 140 ns) |
similar (83 ms vs. 111 ms) |
2 times less (7 MB vs. 15 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (10 LLVM lines vs. 160 B allocs) |
2 times less (60 ns vs. 170 ns) |
similar (72 ms vs. 105 ms) |
2 times less (7 MB vs. 17 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 80 B allocs) |
3 times less (50 ns vs. 180 ns) |
similar (97 ms vs. 117 ms) |
2 times less (7 MB vs. 16 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
4 |
identical nonempty singleton Tuples |
better (optimized out vs. 80 B allocs) |
7 times less (50 ns vs. 380 ns) |
similar (104 ms vs. 117 ms) |
2 times less (8 MB vs. 16 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 80 B allocs) |
28 times less (40 ns vs. 1 μs) |
similar (131 ms vs. 117 ms) |
similar (10 MB vs. 16 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 8 kB allocs) |
346 times less (50 ns vs. 17 μs) |
7 times more (898 ms vs. 116 ms) |
2 times more (46 MB vs. 16 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (19 LLVM lines vs. 352 B allocs) |
5 times less (50 ns vs. 280 ns) |
similar (87 ms vs. 112 ms) |
2 times less (8 MB vs. 16 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
better (63 LLVM lines vs. 1 kB allocs) |
12 times less (60 ns vs. 731 ns) |
similar (101 ms vs. 112 ms) |
2 times less (8 MB vs. 16 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (246 LLVM lines vs. 4 kB allocs) |
25 times less (100 ns vs. 3 μs) |
similar (172 ms vs. 114 ms) |
similar (10 MB vs. 16 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (4026 LLVM lines vs. 72 kB allocs) |
38 times less (1 μs vs. 38 μs) |
80 times more (9 s vs. 113 ms) |
3 times more (54 MB vs. 16 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 112 B allocs) |
6 times less (50 ns vs. 320 ns) |
similar (99 ms vs. 148 ms) |
2 times less (7 MB vs. 21 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 208 B allocs) |
19 times less (50 ns vs. 991 ns) |
similar (108 ms vs. 145 ms) |
2 times less (8 MB vs. 21 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 592 B allocs) |
75 times less (50 ns vs. 4 μs) |
similar (146 ms vs. 145 ms) |
2 times less (10 MB vs. 21 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 16 kB allocs) |
1098 times less (50 ns vs. 55 μs) |
27 times more (4 s vs. 145 ms) |
2 times more (48 MB vs. 21 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
2 |
distinct nonempty singleton Tuples |
better (optimized out vs. 112 B allocs) |
6 times less (50 ns vs. 340 ns) |
similar (98 ms vs. 147 ms) |
2 times less (7 MB vs. 21 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
4 |
distinct nonempty singleton Tuples |
better (optimized out vs. 208 B allocs) |
53 times less (50 ns vs. 3 μs) |
similar (108 ms vs. 214 ms) |
2 times less (8 MB vs. 23 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
8 |
distinct nonempty singleton Tuples |
better (optimized out vs. 592 B allocs) |
265 times less (40 ns vs. 11 μs) |
2 times less (145 ms vs. 351 ms) |
2 times less (10 MB vs. 27 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (optimized out vs. 24 kB allocs) |
3228 times less (50 ns vs. 161 μs) |
10 times more (4 s vs. 350 ms) |
similar (48 MB vs. 27 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
better (25 LLVM lines vs. 592 B allocs) |
9 times less (60 ns vs. 560 ns) |
similar (89 ms vs. 150 ms) |
2 times less (8 MB vs. 21 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (91 LLVM lines vs. 4 kB allocs) |
57 times less (90 ns vs. 5 μs) |
2 times less (108 ms vs. 243 ms) |
2 times less (8 MB vs. 24 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (374 LLVM lines vs. 31 kB allocs) |
116 times less (310 ns vs. 36 μs) |
2 times less (196 ms vs. 459 ms) |
2 times less (10 MB vs. 28 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (8209 LLVM lines vs. 1 MB allocs) |
67 times less (8 μs vs. 559 μs) |
12 times more (6 s vs. 462 ms) |
similar (56 MB vs. 30 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
1 |
empty singleton Tuple |
better (optimized out vs. 80 B allocs) |
2 times less (50 ns vs. 140 ns) |
similar (87 ms vs. 129 ms) |
similar (9 MB vs. 17 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 80 B allocs) |
2 times less (50 ns vs. 130 ns) |
similar (87 ms vs. 130 ms) |
similar (9 MB vs. 17 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (12 LLVM lines vs. 160 B allocs) |
3 times less (60 ns vs. 180 ns) |
similar (76 ms vs. 121 ms) |
2 times less (9 MB vs. 19 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 80 B allocs) |
4 times less (50 ns vs. 240 ns) |
similar (107 ms vs. 155 ms) |
similar (9 MB vs. 18 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
4 |
identical nonempty singleton Tuples |
better (optimized out vs. 80 B allocs) |
22 times less (50 ns vs. 1 μs) |
similar (169 ms vs. 136 ms) |
similar (12 MB vs. 18 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 4 kB allocs) |
171 times less (50 ns vs. 9 μs) |
6 times more (836 ms vs. 136 ms) |
similar (36 MB vs. 18 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (32 LLVM lines vs. 736 B allocs) |
7 times less (60 ns vs. 450 ns) |
similar (101 ms vs. 137 ms) |
similar (9 MB vs. 18 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
better (298 LLVM lines vs. 5 kB allocs) |
25 times less (100 ns vs. 3 μs) |
similar (271 ms vs. 136 ms) |
similar (13 MB vs. 18 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (2716 LLVM lines vs. 44 kB allocs) |
26 times less (741 ns vs. 20 μs) |
37 times more (5 s vs. 138 ms) |
2 times more (41 MB vs. 19 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 144 B allocs) |
12 times less (50 ns vs. 610 ns) |
similar (109 ms vs. 160 ms) |
2 times less (9 MB vs. 23 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 592 B allocs) |
85 times less (50 ns vs. 4 μs) |
similar (188 ms vs. 163 ms) |
similar (12 MB vs. 24 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 8 kB allocs) |
690 times less (50 ns vs. 35 μs) |
10 times more (2 s vs. 158 ms) |
similar (37 MB vs. 24 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
2 |
distinct nonempty singleton Tuples |
better (optimized out vs. 144 B allocs) |
11 times less (50 ns vs. 590 ns) |
similar (109 ms vs. 161 ms) |
2 times less (9 MB vs. 24 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
4 |
distinct nonempty singleton Tuples |
better (optimized out vs. 592 B allocs) |
239 times less (50 ns vs. 12 μs) |
2 times less (187 ms vs. 424 ms) |
2 times less (12 MB vs. 32 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
8 |
distinct nonempty singleton Tuples |
better (optimized out vs. 8 kB allocs) |
2705 times less (50 ns vs. 135 μs) |
similar (2 s vs. 2 s) |
similar (37 MB vs. 72 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
better (59 LLVM lines vs. 1 kB allocs) |
18 times less (70 ns vs. 1 μs) |
similar (106 ms vs. 189 ms) |
2 times less (9 MB vs. 24 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (556 LLVM lines vs. 22 kB allocs) |
107 times less (350 ns vs. 38 μs) |
2 times less (262 ms vs. 573 ms) |
2 times less (13 MB vs. 34 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (5702 LLVM lines vs. 293 kB allocs) |
76 times less (6 μs vs. 436 μs) |
similar (4 s vs. 3 s) |
similar (42 MB vs. 73 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
1 |
empty singleton Tuple |
better (optimized out vs. 64 B allocs) |
3 times less (50 ns vs. 160 ns) |
similar (68 ms vs. 58 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 64 B allocs) |
3 times less (50 ns vs. 170 ns) |
similar (68 ms vs. 60 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (12 LLVM lines vs. 160 B allocs) |
4 times less (60 ns vs. 240 ns) |
similar (45 ms vs. 57 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
4 times less (50 ns vs. 210 ns) |
similar (80 ms vs. 58 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
4 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
6 times less (50 ns vs. 310 ns) |
similar (80 ms vs. 58 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
10 times less (50 ns vs. 510 ns) |
similar (80 ms vs. 57 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
41 times less (40 ns vs. 2 μs) |
similar (82 ms vs. 57 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
154 times less (40 ns vs. 6 μs) |
similar (89 ms vs. 57 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (11 LLVM lines vs. 272 B allocs) |
7 times less (50 ns vs. 350 ns) |
similar (58 ms vs. 60 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
better (36 LLVM lines vs. 464 B allocs) |
10 times less (60 ns vs. 610 ns) |
similar (60 ms vs. 60 ms) |
similar (6 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (37 LLVM lines vs. 848 B allocs) |
18 times less (60 ns vs. 1 μs) |
similar (66 ms vs. 63 ms) |
similar (7 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (229 LLVM lines vs. 3 kB allocs) |
76 times less (90 ns vs. 7 μs) |
similar (94 ms vs. 65 ms) |
2 times more (14 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (260 LLVM lines vs. 12 kB allocs) |
230 times less (220 ns vs. 51 μs) |
5 times more (360 ms vs. 63 ms) |
7 times more (43 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 112 B allocs) |
4 times less (50 ns vs. 230 ns) |
similar (81 ms vs. 62 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 160 B allocs) |
9 times less (40 ns vs. 390 ns) |
similar (79 ms vs. 63 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
13 times less (50 ns vs. 681 ns) |
similar (80 ms vs. 63 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 848 B allocs) |
47 times less (50 ns vs. 2 μs) |
similar (82 ms vs. 63 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 3 kB allocs) |
185 times less (50 ns vs. 9 μs) |
similar (90 ms vs. 63 ms) |
similar (5 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
2 |
distinct nonempty singleton Tuples |
better (optimized out vs. 112 B allocs) |
4 times less (50 ns vs. 230 ns) |
similar (81 ms vs. 63 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
4 |
distinct nonempty singleton Tuples |
better (optimized out vs. 160 B allocs) |
12 times less (50 ns vs. 620 ns) |
similar (80 ms vs. 79 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
8 |
distinct nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
53 times less (50 ns vs. 3 μs) |
similar (79 ms vs. 91 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (optimized out vs. 848 B allocs) |
200 times less (50 ns vs. 10 μs) |
similar (81 ms vs. 92 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 3 kB allocs) |
854 times less (50 ns vs. 43 μs) |
similar (91 ms vs. 93 ms) |
similar (5 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
better (19 LLVM lines vs. 528 B allocs) |
7 times less (60 ns vs. 460 ns) |
similar (59 ms vs. 72 ms) |
similar (5 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (33 LLVM lines vs. 2 kB allocs) |
17 times less (60 ns vs. 1 μs) |
similar (61 ms vs. 91 ms) |
similar (6 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (62 LLVM lines vs. 8 kB allocs) |
64 times less (80 ns vs. 5 μs) |
similar (70 ms vs. 121 ms) |
similar (7 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (233 LLVM lines vs. 103 kB allocs) |
150 times less (211 ns vs. 32 μs) |
similar (113 ms vs. 111 ms) |
2 times more (14 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (1611 LLVM lines vs. 2 MB allocs) |
337 times less (962 ns vs. 324 μs) |
7 times more (839 ms vs. 114 ms) |
5 times more (43 MB vs. 8 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
1 |
empty singleton Tuple |
better (optimized out vs. 320 B allocs) |
21 times less (50 ns vs. 1 μs) |
similar (79 ms vs. 119 ms) |
similar (11 MB vs. 11 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 320 B allocs) |
20 times less (50 ns vs. 1 μs) |
similar (77 ms vs. 118 ms) |
similar (11 MB vs. 12 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (8 LLVM lines vs. 400 B allocs) |
19 times less (60 ns vs. 1 μs) |
similar (87 ms vs. 123 ms) |
similar (12 MB vs. 12 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 320 B allocs) |
20 times less (50 ns vs. 1 μs) |
similar (78 ms vs. 121 ms) |
similar (11 MB vs. 11 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
4 |
identical nonempty singleton Tuples |
better (optimized out vs. 528 B allocs) |
27 times less (50 ns vs. 1 μs) |
similar (97 ms vs. 193 ms) |
similar (12 MB vs. 20 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 592 B allocs) |
30 times less (50 ns vs. 2 μs) |
similar (108 ms vs. 195 ms) |
similar (12 MB vs. 20 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 1 kB allocs) |
50 times less (50 ns vs. 3 μs) |
similar (179 ms vs. 200 ms) |
similar (16 MB vs. 20 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 3 kB allocs) |
127 times less (50 ns vs. 6 μs) |
2 times more (504 ms vs. 200 ms) |
similar (34 MB vs. 20 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 496 B allocs) |
23 times less (50 ns vs. 1 μs) |
similar (71 ms vs. 125 ms) |
similar (12 MB vs. 12 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 912 B allocs) |
26 times less (60 ns vs. 2 μs) |
2 times less (85 ms vs. 216 ms) |
similar (13 MB vs. 20 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (12 LLVM lines vs. 1 kB allocs) |
31 times less (60 ns vs. 2 μs) |
2 times less (92 ms vs. 219 ms) |
similar (14 MB vs. 20 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (36 LLVM lines vs. 4 kB allocs) |
59 times less (60 ns vs. 4 μs) |
similar (115 ms vs. 218 ms) |
similar (23 MB vs. 20 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (132 LLVM lines vs. 14 kB allocs) |
114 times less (90 ns vs. 10 μs) |
similar (357 ms vs. 243 ms) |
5 times more (99 MB vs. 20 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 368 B allocs) |
24 times less (50 ns vs. 1 μs) |
similar (79 ms vs. 134 ms) |
similar (11 MB vs. 10 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 560 B allocs) |
35 times less (40 ns vs. 1 μs) |
2 times less (98 ms vs. 205 ms) |
similar (12 MB vs. 21 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 752 B allocs) |
42 times less (40 ns vs. 2 μs) |
2 times less (106 ms vs. 271 ms) |
2 times less (12 MB vs. 29 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
329 times less (50 ns vs. 16 μs) |
2 times less (181 ms vs. 447 ms) |
2 times less (16 MB vs. 43 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 5 kB allocs) |
1820 times less (50 ns vs. 91 μs) |
similar (511 ms vs. 451 ms) |
similar (34 MB vs. 43 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
2 |
distinct nonempty singleton Tuples |
better (optimized out vs. 368 B allocs) |
25 times less (50 ns vs. 1 μs) |
similar (82 ms vs. 133 ms) |
similar (11 MB vs. 10 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
4 |
distinct nonempty singleton Tuples |
better (optimized out vs. 608 B allocs) |
36 times less (50 ns vs. 2 μs) |
2 times less (98 ms vs. 227 ms) |
similar (12 MB vs. 21 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
8 |
distinct nonempty singleton Tuples |
better (optimized out vs. 832 B allocs) |
67 times less (40 ns vs. 3 μs) |
2 times less (107 ms vs. 301 ms) |
2 times less (12 MB vs. 28 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
425 times less (50 ns vs. 21 μs) |
2 times less (183 ms vs. 467 ms) |
2 times less (16 MB vs. 43 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
2273 times less (50 ns vs. 114 μs) |
similar (517 ms vs. 462 ms) |
similar (34 MB vs. 43 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
better (11 LLVM lines vs. 624 B allocs) |
23 times less (60 ns vs. 1 μs) |
2 times less (72 ms vs. 144 ms) |
similar (12 MB vs. 11 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (17 LLVM lines vs. 2 kB allocs) |
34 times less (60 ns vs. 2 μs) |
2 times less (85 ms vs. 253 ms) |
similar (13 MB vs. 21 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (30 LLVM lines vs. 5 kB allocs) |
54 times less (60 ns vs. 3 μs) |
3 times less (92 ms vs. 340 ms) |
2 times less (14 MB vs. 28 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (105 LLVM lines vs. 44 kB allocs) |
215 times less (80 ns vs. 17 μs) |
4 times less (120 ms vs. 526 ms) |
similar (23 MB vs. 43 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (625 LLVM lines vs. 569 kB allocs) |
1095 times less (341 ns vs. 374 μs) |
similar (450 ms vs. 878 ms) |
2 times more (99 MB vs. 43 MB) |