unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (25 ms vs. 31 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 (49 ns vs. 49 ns) |
similar (24 ms vs. 25 ms) |
541 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. 49 ns) |
similar (28 ms vs. 24 ms) |
1392 times more (131 kB vs. 96 B) |
unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (24 ms vs. 25 ms) |
250 times more (51 kB vs. 208 B) |
unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 25 ms) |
233 times more (51 kB vs. 224 B) |
unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (24 ms vs. 25 ms) |
206 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 (40 ns vs. 40 ns) |
similar (24 ms vs. 25 ms) |
123 times more (54 kB vs. 448 B) |
unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (25 ms vs. 24 ms) |
52 times more (64 kB vs. 1 kB) |
unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (29 ms vs. 25 ms) |
615 times more (135 kB vs. 224 B) |
unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (29 ms vs. 25 ms) |
494 times more (139 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. 50 ns) |
similar (28 ms vs. 25 ms) |
372 times more (152 kB vs. 416 B) |
unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (39 LLVM lines) |
similar (69 ns vs. 60 ns) |
similar (31 ms vs. 24 ms) |
185 times more (214 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 (30 ms vs. 25 ms) |
33 times more (143 kB vs. 4 kB) |
unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (33 ms vs. 24 ms) |
464 times more (51 kB vs. 112 B) |
unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (24 ms vs. 25 ms) |
407 times more (51 kB vs. 128 B) |
unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (24 ms vs. 24 ms) |
329 times more (51 kB vs. 160 B) |
unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 25 ms) |
156 times more (54 kB vs. 352 B) |
unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 26 ms) |
56 times more (64 kB vs. 1 kB) |
unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (25 ms vs. 25 ms) |
250 times more (51 kB vs. 208 B) |
unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (25 ms vs. 25 ms) |
233 times more (51 kB vs. 224 B) |
unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (25 ms vs. 24 ms) |
206 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 (49 ns vs. 49 ns) |
similar (24 ms vs. 25 ms) |
123 times more (54 kB vs. 448 B) |
unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (24 ms vs. 25 ms) |
52 times more (64 kB vs. 1 kB) |
unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (13 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (28 ms vs. 24 ms) |
538 times more (135 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 (35 ms vs. 25 ms) |
356 times more (139 kB vs. 400 B) |
unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (32 LLVM lines) |
similar (60 ns vs. 69 ns) |
similar (30 ms vs. 24 ms) |
198 times more (152 kB vs. 784 B) |
unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (107 LLVM lines) |
similar (89 ns vs. 80 ns) |
similar (36 ms vs. 25 ms) |
80 times more (215 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 (29 ms vs. 24 ms) |
14 times more (155 kB vs. 11 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (52 ms vs. 35 ms) |
29 times more (3 MB vs. 108 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (55 ms vs. 32 ms) |
23 times more (3 MB vs. 138 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (10 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (45 ms vs. 36 ms) |
17 times more (3 MB vs. 208 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (63 ms vs. 32 ms) |
23 times more (3 MB vs. 138 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (64 ms vs. 33 ms) |
23 times more (3 MB vs. 138 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (63 ms vs. 32 ms) |
23 times more (3 MB vs. 138 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times more (64 ms vs. 32 ms) |
24 times more (3 MB vs. 140 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
189 times less (49 ns vs. 9 μs) |
2 times more (67 ms vs. 32 ms) |
25 times more (4 MB vs. 147 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (55 ms vs. 36 ms) |
17 times more (4 MB vs. 208 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. 49 ns) |
similar (58 ms vs. 38 ms) |
16 times more (4 MB vs. 233 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (37 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (57 ms vs. 37 ms) |
17 times more (4 MB vs. 234 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 (66 ms vs. 37 ms) |
25 times more (6 MB vs. 237 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) |
62 times less (221 ns vs. 14 μs) |
4 times more (179 ms vs. 36 ms) |
53 times more (13 MB vs. 251 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times more (64 ms vs. 32 ms) |
23 times more (3 MB vs. 138 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (62 ms vs. 32 ms) |
23 times more (3 MB vs. 139 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (62 ms vs. 32 ms) |
23 times more (3 MB vs. 140 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (63 ms vs. 32 ms) |
24 times more (3 MB vs. 141 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) |
429 times less (40 ns vs. 17 μs) |
2 times more (68 ms vs. 32 ms) |
25 times more (4 MB vs. 149 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times more (66 ms vs. 32 ms) |
23 times more (3 MB vs. 138 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (63 ms vs. 32 ms) |
23 times more (3 MB vs. 139 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (63 ms vs. 32 ms) |
23 times more (3 MB vs. 140 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times more (65 ms vs. 32 ms) |
24 times more (3 MB vs. 141 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
365 times less (49 ns vs. 18 μs) |
2 times more (68 ms vs. 32 ms) |
25 times more (4 MB vs. 149 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (15 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (55 ms vs. 36 ms) |
15 times more (4 MB vs. 234 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 (58 ms vs. 36 ms) |
16 times more (4 MB vs. 235 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (46 LLVM lines) |
similar (69 ns vs. 69 ns) |
similar (59 ms vs. 36 ms) |
17 times more (4 MB vs. 238 kB) |
unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (169 LLVM lines) |
similar (120 ns vs. 110 ns) |
2 times more (81 ms vs. 36 ms) |
21 times more (6 MB vs. 275 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) |
103 times less (621 ns vs. 64 μs) |
13 times more (471 ms vs. 36 ms) |
16 times more (13 MB vs. 792 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (52 ms vs. 32 ms) |
29 times more (3 MB vs. 108 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (53 ms vs. 33 ms) |
23 times more (3 MB vs. 138 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. 49 ns) |
similar (44 ms vs. 36 ms) |
17 times more (4 MB vs. 208 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (63 ms vs. 32 ms) |
23 times more (3 MB vs. 138 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (63 ms vs. 32 ms) |
23 times more (3 MB vs. 138 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (63 ms vs. 33 ms) |
24 times more (3 MB vs. 138 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (64 ms vs. 33 ms) |
24 times more (3 MB vs. 140 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
187 times less (49 ns vs. 9 μs) |
2 times more (67 ms vs. 32 ms) |
25 times more (4 MB vs. 147 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (55 ms vs. 36 ms) |
17 times more (4 MB vs. 208 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. 49 ns) |
similar (57 ms vs. 37 ms) |
16 times more (4 MB vs. 233 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. 50 ns) |
similar (58 ms vs. 38 ms) |
18 times more (4 MB vs. 234 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (180 LLVM lines) |
similar (80 ns vs. 80 ns) |
2 times more (75 ms vs. 37 ms) |
27 times more (6 MB vs. 237 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) |
62 times less (221 ns vs. 14 μs) |
4 times more (180 ms vs. 36 ms) |
59 times more (15 MB vs. 251 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (64 ms vs. 32 ms) |
23 times more (3 MB vs. 138 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times more (68 ms vs. 32 ms) |
23 times more (3 MB vs. 139 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (63 ms vs. 32 ms) |
23 times more (3 MB vs. 140 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (65 ms vs. 33 ms) |
24 times more (3 MB vs. 141 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) |
431 times less (40 ns vs. 17 μs) |
2 times more (66 ms vs. 32 ms) |
25 times more (4 MB vs. 149 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (63 ms vs. 32 ms) |
23 times more (3 MB vs. 138 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (62 ms vs. 32 ms) |
23 times more (3 MB vs. 139 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (63 ms vs. 33 ms) |
23 times more (3 MB vs. 140 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (64 ms vs. 32 ms) |
24 times more (3 MB vs. 141 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
366 times less (49 ns vs. 18 μs) |
2 times more (67 ms vs. 33 ms) |
25 times more (4 MB vs. 149 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. 49 ns) |
similar (61 ms vs. 37 ms) |
16 times more (4 MB vs. 234 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 (58 ms vs. 44 ms) |
16 times more (4 MB vs. 235 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (46 LLVM lines) |
similar (60 ns vs. 69 ns) |
similar (61 ms vs. 37 ms) |
17 times more (4 MB vs. 238 kB) |
unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (171 LLVM lines) |
similar (120 ns vs. 120 ns) |
2 times more (92 ms vs. 36 ms) |
23 times more (6 MB vs. 275 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) |
113 times less (581 ns vs. 66 μs) |
11 times more (437 ms vs. 37 ms) |
18 times more (15 MB vs. 792 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. 40 ns) |
similar (25 ms vs. 27 ms) |
351 times more (77 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. 49 ns) |
similar (26 ms vs. 27 ms) |
351 times more (77 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 (40 ns vs. 40 ns) |
similar (25 ms vs. 27 ms) |
522 times more (114 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 (49 ns vs. 40 ns) |
similar (29 ms vs. 27 ms) |
647 times more (202 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 (40 ns vs. 49 ns) |
similar (29 ms vs. 27 ms) |
651 times more (204 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 (40 ns vs. 40 ns) |
similar (44 ms vs. 27 ms) |
690 times more (227 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) |
8 times less (40 ns vs. 350 ns) |
similar (41 ms vs. 40 ms) |
2 times less (251 kB vs. 720 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) |
20 times less (49 ns vs. 1 μs) |
similar (42 ms vs. 40 ms) |
2 times less (350 kB vs. 720 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 (49 ns vs. 49 ns) |
similar (30 ms vs. 27 ms) |
1289 times more (342 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 (49 ns vs. 49 ns) |
similar (30 ms vs. 27 ms) |
1232 times more (385 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 (49 ns vs. 49 ns) |
similar (42 ms vs. 27 ms) |
1020 times more (510 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) |
15 times less (49 ns vs. 751 ns) |
similar (42 ms vs. 41 ms) |
similar (656 kB vs. 720 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) |
40 times less (60 ns vs. 2 μs) |
similar (49 ms vs. 40 ms) |
2 times more (1 MB vs. 723 kB) |
unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (29 ms vs. 27 ms) |
923 times more (202 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 (40 ns vs. 40 ns) |
similar (28 ms vs. 27 ms) |
654 times more (205 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 (40 ns vs. 40 ns) |
similar (40 ms vs. 27 ms) |
693 times more (228 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) |
13 times less (40 ns vs. 530 ns) |
similar (39 ms vs. 66 ms) |
9 times less (252 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 (49 ns vs. 2 μs) |
similar (40 ms vs. 65 ms) |
6 times less (350 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 (40 ns vs. 40 ns) |
similar (30 ms vs. 27 ms) |
647 times more (202 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. 40 ns) |
similar (29 ms vs. 27 ms) |
654 times more (204 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 (40 ns vs. 40 ns) |
similar (39 ms vs. 27 ms) |
692 times more (227 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) |
49 times less (40 ns vs. 2 μs) |
similar (40 ms vs. 66 ms) |
9 times less (252 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) |
192 times less (40 ns vs. 8 μs) |
similar (40 ms vs. 68 ms) |
7 times less (350 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 (50 ns vs. 49 ns) |
similar (29 ms vs. 28 ms) |
1384 times more (368 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 (49 ns vs. 49 ns) |
similar (30 ms vs. 27 ms) |
823 times more (386 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. 60 ns) |
similar (41 ms vs. 27 ms) |
584 times more (448 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 (69 ns vs. 3 μs) |
similar (44 ms vs. 81 ms) |
3 times less (658 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) |
272 times less (110 ns vs. 30 μs) |
similar (66 ms vs. 82 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. 49 ns) |
similar (35 ms vs. 26 ms) |
1903 times more (416 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 (49 ns vs. 49 ns) |
similar (36 ms vs. 26 ms) |
2037 times more (446 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 (49 ns vs. 60 ns) |
similar (33 ms vs. 27 ms) |
2320 times more (580 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. 40 ns) |
similar (36 ms vs. 26 ms) |
1426 times more (446 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 (40 ns vs. 40 ns) |
similar (36 ms vs. 26 ms) |
1476 times more (461 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 (40 ns vs. 40 ns) |
similar (47 ms vs. 26 ms) |
1579 times more (518 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 (49 ns vs. 360 ns) |
similar (53 ms vs. 39 ms) |
similar (706 kB vs. 720 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) |
25 times less (40 ns vs. 1 μs) |
similar (65 ms vs. 39 ms) |
2 times more (1 MB vs. 720 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. 50 ns) |
similar (33 ms vs. 31 ms) |
2183 times more (580 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 (49 ns vs. 49 ns) |
similar (34 ms vs. 27 ms) |
2025 times more (633 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 (44 ms vs. 26 ms) |
1560 times more (780 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. 761 ns) |
similar (50 ms vs. 39 ms) |
similar (1 MB vs. 720 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 (69 ns vs. 2 μs) |
similar (54 ms vs. 39 ms) |
3 times more (2 MB vs. 723 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 (49 ns vs. 40 ns) |
similar (36 ms vs. 26 ms) |
1429 times more (447 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 (40 ns vs. 40 ns) |
similar (36 ms vs. 26 ms) |
1482 times more (463 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 (40 ns vs. 40 ns) |
similar (49 ms vs. 26 ms) |
1585 times more (520 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) |
12 times less (40 ns vs. 511 ns) |
similar (50 ms vs. 65 ms) |
3 times less (707 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) |
39 times less (40 ns vs. 2 μs) |
similar (69 ms vs. 67 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 (36 ms vs. 27 ms) |
1429 times more (447 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 (49 ns vs. 40 ns) |
similar (36 ms vs. 27 ms) |
1481 times more (463 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 (40 ns vs. 40 ns) |
similar (47 ms vs. 27 ms) |
1584 times more (520 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) |
39 times less (49 ns vs. 2 μs) |
similar (51 ms vs. 65 ms) |
3 times less (707 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) |
154 times less (49 ns vs. 8 μs) |
similar (61 ms vs. 65 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 (50 ns vs. 49 ns) |
similar (33 ms vs. 26 ms) |
2040 times more (606 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. 49 ns) |
similar (34 ms vs. 26 ms) |
1194 times more (635 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 (60 ns vs. 60 ns) |
similar (46 ms vs. 26 ms) |
806 times more (718 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) |
45 times less (69 ns vs. 3 μs) |
similar (48 ms vs. 82 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) |
154 times less (190 ns vs. 29 μs) |
similar (72 ms vs. 81 ms) |
similar (2 MB vs. 2 MB) |
unrolled_map(length, itr) |
map(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (32 ms vs. 24 ms) |
18 times more (171 kB vs. 9 kB) |
unrolled_map(length, itr) |
map(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (32 ms vs. 24 ms) |
5 times more (205 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 (25 ms vs. 24 ms) |
18 times more (237 kB vs. 13 kB) |
unrolled_map(length, itr) |
map(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
similar (34 ms vs. 24 ms) |
4 times more (207 kB vs. 42 kB) |
unrolled_map(length, itr) |
map(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
2 times more (49 ms vs. 24 ms) |
2 times more (264 kB vs. 96 kB) |
unrolled_map(length, itr) |
map(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 40 ns) |
2 times more (49 ms vs. 24 ms) |
similar (285 kB vs. 300 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 (49 ns vs. 741 ns) |
similar (51 ms vs. 31 ms) |
similar (390 kB vs. 294 kB) |
unrolled_map(length, itr) |
map(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (69 LLVM lines w/ Const vs. 2 kB allocs) |
30 times less (80 ns vs. 2 μs) |
2 times more (75 ms vs. 33 ms) |
3 times more (1 MB vs. 297 kB) |
unrolled_map(length, itr) |
map(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 24 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 (49 ns vs. 49 ns) |
similar (42 ms vs. 24 ms) |
2 times more (334 kB vs. 157 kB) |
unrolled_map(length, itr) |
map(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
similar (41 ms vs. 25 ms) |
similar (436 kB vs. 586 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 (49 ns vs. 751 ns) |
similar (43 ms vs. 32 ms) |
similar (583 kB vs. 294 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) |
30 times less (80 ns vs. 2 μs) |
2 times more (64 ms vs. 32 ms) |
5 times more (2 MB vs. 296 kB) |
unrolled_map(length, itr) |
map(length, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (32 ms vs. 24 ms) |
4 times more (207 kB vs. 42 kB) |
unrolled_map(length, itr) |
map(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 40 ns) |
2 times more (48 ms vs. 24 ms) |
2 times more (274 kB vs. 106 kB) |
unrolled_map(length, itr) |
map(length, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 40 ns) |
similar (49 ms vs. 25 ms) |
similar (306 kB vs. 344 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 (49 ns vs. 1 μs) |
similar (50 ms vs. 33 ms) |
similar (414 kB vs. 318 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) |
50 times less (80 ns vs. 4 μs) |
similar (73 ms vs. 41 ms) |
3 times more (1 MB vs. 320 kB) |
unrolled_map(length, itr) |
map(length, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 40 ns) |
similar (34 ms vs. 25 ms) |
4 times more (212 kB vs. 47 kB) |
unrolled_map(length, itr) |
map(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 40 ns) |
2 times more (49 ms vs. 24 ms) |
2 times more (279 kB vs. 111 kB) |
unrolled_map(length, itr) |
map(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
2 times more (49 ms vs. 24 ms) |
similar (310 kB vs. 349 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 (49 ns vs. 1 μs) |
similar (50 ms vs. 33 ms) |
similar (420 kB vs. 322 kB) |
unrolled_map(length, itr) |
map(length, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (69 LLVM lines w/ Const vs. 2 kB allocs) |
49 times less (80 ns vs. 4 μs) |
2 times more (72 ms vs. 35 ms) |
3 times more (1 MB vs. 325 kB) |
unrolled_map(length, itr) |
map(length, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 49 ns) |
similar (25 ms vs. 24 ms) |
5 times more (269 kB vs. 46 kB) |
unrolled_map(length, itr) |
map(length, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (42 ms vs. 25 ms) |
2 times more (335 kB vs. 159 kB) |
unrolled_map(length, itr) |
map(length, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 49 ns) |
similar (43 ms vs. 26 ms) |
similar (385 kB vs. 622 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) |
59 times less (49 ns vs. 3 μs) |
similar (43 ms vs. 33 ms) |
similar (598 kB vs. 332 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) |
484 times less (80 ns vs. 39 μs) |
similar (66 ms vs. 35 ms) |
2 times more (2 MB vs. 827 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (27 ms vs. 28 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. 40 ns) |
similar (27 ms vs. 28 ms) |
3 times less (88 kB vs. 279 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (24 ms vs. 30 ms) |
5 times less (62 kB vs. 335 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (27 ms vs. 32 ms) |
4 times less (92 kB vs. 448 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (46 ms vs. 32 ms) |
2 times less (154 kB vs. 448 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (47 ms vs. 32 ms) |
2 times less (178 kB vs. 448 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (48 ms vs. 32 ms) |
similar (322 kB vs. 448 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (60 ms vs. 32 ms) |
2 times more (897 kB vs. 448 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (24 ms vs. 33 ms) |
7 times less (70 kB vs. 519 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (43 ms vs. 34 ms) |
3 times less (166 kB vs. 544 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (44 ms vs. 33 ms) |
2 times less (271 kB vs. 544 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (46 ms vs. 33 ms) |
similar (457 kB vs. 544 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (54 ms vs. 33 ms) |
2 times more (1 MB vs. 545 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (28 ms vs. 29 ms) |
4 times less (85 kB vs. 375 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (45 ms vs. 30 ms) |
3 times less (144 kB vs. 498 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (46 ms vs. 32 ms) |
5 times less (158 kB vs. 802 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (48 ms vs. 33 ms) |
10 times less (246 kB vs. 3 MB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times more (72 ms vs. 29 ms) |
similar (595 kB vs. 338 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (28 ms vs. 32 ms) |
5 times less (96 kB vs. 529 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (47 ms vs. 41 ms) |
5 times less (166 kB vs. 936 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (46 ms vs. 57 ms) |
8 times less (203 kB vs. 2 MB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (49 ms vs. 65 ms) |
10 times less (346 kB vs. 4 MB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (59 ms vs. 36 ms) |
similar (920 kB vs. 501 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (24 ms vs. 34 ms) |
5 times less (99 kB vs. 530 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (44 ms vs. 43 ms) |
5 times less (179 kB vs. 946 kB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (43 ms vs. 60 ms) |
7 times less (232 kB vs. 2 MB) |
unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (45 ms vs. 79 ms) |
9 times less (482 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) |
875 times less (40 ns vs. 35 μs) |
similar (55 ms vs. 37 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 (49 ns vs. 49 ns) |
similar (69 ms vs. 70 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 (49 ns vs. 60 ns) |
similar (69 ms vs. 70 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 (49 ns vs. 49 ns) |
similar (67 ms vs. 71 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. 49 ns) |
similar (70 ms vs. 72 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 (91 ms vs. 72 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. 80 ns) |
similar (92 ms vs. 81 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. 150 ns) |
similar (98 ms vs. 73 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 (410 ns vs. 450 ns) |
similar (130 ms vs. 72 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 (49 ns vs. 49 ns) |
similar (66 ms vs. 75 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. 74 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 (80 ns vs. 80 ns) |
similar (88 ms vs. 87 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. 150 ns) |
similar (94 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 |
128 |
identical nonempty non-singleton Tuples |
similar (648 LLVM lines) |
similar (430 ns vs. 450 ns) |
similar (124 ms vs. 75 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 (49 ns vs. 60 ns) |
similar (70 ms vs. 73 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 (90 ms vs. 85 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) |
27 times less (80 ns vs. 2 μs) |
similar (90 ms vs. 106 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) |
160 times less (140 ns vs. 22 μs) |
similar (99 ms vs. 114 ms) |
2 times less (3 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) |
3 times less (430 ns vs. 2 μs) |
similar (134 ms vs. 74 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 (49 ns vs. 60 ns) |
similar (70 ms vs. 72 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. 60 ns) |
similar (89 ms vs. 86 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) |
163 times less (80 ns vs. 13 μs) |
similar (90 ms vs. 106 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) |
560 times less (150 ns vs. 84 μs) |
similar (98 ms vs. 115 ms) |
2 times less (3 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 (410 ns vs. 2 μs) |
similar (128 ms vs. 74 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 (49 ns vs. 60 ns) |
similar (68 ms vs. 74 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 (88 ms vs. 86 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) |
200 times less (70 ns vs. 14 μs) |
similar (87 ms vs. 109 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) |
710 times less (140 ns vs. 100 μs) |
similar (97 ms vs. 131 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) |
88 times less (410 ns vs. 36 μs) |
similar (127 ms vs. 76 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. 49 ns) |
similar (28 ms vs. 28 ms) |
3 times less (55 kB vs. 164 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (28 ms vs. 29 ms) |
3 times less (88 kB vs. 281 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 29 ms) |
5 times less (62 kB vs. 324 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (27 ms vs. 29 ms) |
3 times less (90 kB vs. 330 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (46 ms vs. 29 ms) |
2 times less (147 kB vs. 330 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (48 ms vs. 29 ms) |
2 times less (162 kB vs. 330 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (49 ms vs. 28 ms) |
similar (249 kB vs. 330 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (55 ms vs. 29 ms) |
similar (600 kB vs. 330 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (24 ms vs. 29 ms) |
5 times less (63 kB vs. 374 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (43 ms vs. 30 ms) |
2 times less (146 kB vs. 399 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (43 ms vs. 30 ms) |
similar (225 kB vs. 399 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (45 ms vs. 30 ms) |
similar (248 kB vs. 399 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (51 ms vs. 29 ms) |
similar (599 kB vs. 400 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (28 ms vs. 29 ms) |
4 times less (92 kB vs. 413 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (47 ms vs. 29 ms) |
3 times less (150 kB vs. 540 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (46 ms vs. 29 ms) |
5 times less (165 kB vs. 856 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (47 ms vs. 34 ms) |
11 times less (252 kB vs. 3 MB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (55 ms vs. 34 ms) |
similar (603 kB vs. 506 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (28 ms vs. 28 ms) |
4 times less (90 kB vs. 396 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (46 ms vs. 29 ms) |
3 times less (148 kB vs. 523 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (46 ms vs. 31 ms) |
5 times less (162 kB vs. 839 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (48 ms vs. 33 ms) |
11 times less (250 kB vs. 3 MB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (55 ms vs. 29 ms) |
similar (601 kB vs. 345 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (24 ms vs. 30 ms) |
4 times less (88 kB vs. 395 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (43 ms vs. 31 ms) |
3 times less (147 kB vs. 535 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (43 ms vs. 33 ms) |
5 times less (161 kB vs. 894 kB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (46 ms vs. 48 ms) |
14 times less (249 kB vs. 3 MB) |
unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (51 ms vs. 30 ms) |
similar (600 kB vs. 412 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 (49 ns vs. 49 ns) |
similar (69 ms vs. 70 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 (49 ns vs. 49 ns) |
similar (70 ms vs. 70 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 (49 ns vs. 49 ns) |
similar (73 ms vs. 73 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 (49 ns vs. 49 ns) |
similar (69 ms vs. 71 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. 49 ns) |
similar (89 ms vs. 73 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 (49 ns vs. 49 ns) |
similar (92 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 (49 ns vs. 49 ns) |
similar (98 ms vs. 72 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 (49 ns vs. 49 ns) |
similar (131 ms vs. 74 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 (49 ns vs. 49 ns) |
similar (67 ms vs. 72 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 (49 ns vs. 49 ns) |
similar (91 ms vs. 75 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 (49 ns vs. 49 ns) |
similar (87 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 |
32 |
identical nonempty non-singleton Tuples |
similar (168 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (94 ms vs. 74 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 (49 ns vs. 49 ns) |
similar (125 ms vs. 74 ms) |
2 times more (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 empty & nonempty singleton Tuples |
similar (18 LLVM lines) |
similar (60 ns vs. 49 ns) |
similar (71 ms vs. 73 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 (49 ns vs. 49 ns) |
similar (91 ms vs. 73 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) |
6 times less (49 ns vs. 330 ns) |
similar (92 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) |
17 times less (49 ns vs. 872 ns) |
similar (98 ms vs. 78 ms) |
similar (3 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 (49 ns vs. 49 ns) |
similar (128 ms vs. 74 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 (49 ns vs. 49 ns) |
similar (70 ms vs. 72 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 (49 ns vs. 49 ns) |
similar (90 ms vs. 75 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) |
45 times less (49 ns vs. 2 μs) |
similar (91 ms vs. 75 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) |
56 times less (49 ns vs. 3 μs) |
similar (97 ms vs. 79 ms) |
similar (3 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 (60 ns vs. 49 ns) |
similar (136 ms vs. 75 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 (60 ns vs. 49 ns) |
similar (67 ms vs. 74 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. 49 ns) |
similar (88 ms vs. 75 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) |
47 times less (49 ns vs. 2 μs) |
similar (88 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 non-singleton Tuples |
better (168 LLVM lines vs. 2 kB allocs) |
66 times less (49 ns vs. 3 μs) |
similar (97 ms vs. 93 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 (49 ns vs. 49 ns) |
similar (126 ms vs. 76 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 (49 ms vs. 70 ms) |
8 times less (66 kB vs. 541 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 (49 ns vs. 49 ns) |
similar (49 ms vs. 70 ms) |
5 times less (99 kB vs. 578 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 (40 ns vs. 40 ns) |
similar (47 ms vs. 51 ms) |
9 times less (73 kB vs. 725 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 (49 ns vs. 40 ns) |
similar (50 ms vs. 70 ms) |
5 times less (102 kB vs. 580 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. 49 ns) |
similar (67 ms vs. 71 ms) |
3 times less (158 kB vs. 587 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 (40 ns vs. 40 ns) |
similar (69 ms vs. 70 ms) |
3 times less (172 kB vs. 604 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 (40 ns vs. 49 ns) |
similar (68 ms vs. 69 ms) |
2 times less (260 kB vs. 698 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 (40 ns vs. 49 ns) |
similar (72 ms vs. 74 ms) |
2 times less (610 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 (40 ns vs. 40 ns) |
similar (47 ms vs. 51 ms) |
9 times less (80 kB vs. 729 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 (40 ns vs. 49 ns) |
similar (64 ms vs. 52 ms) |
4 times less (169 kB vs. 773 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 (40 ns vs. 49 ns) |
similar (64 ms vs. 51 ms) |
3 times less (266 kB vs. 803 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 (49 ns vs. 49 ns) |
similar (65 ms vs. 55 ms) |
2 times less (395 kB vs. 999 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 (49 ns vs. 49 ns) |
similar (76 ms vs. 56 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 (49 ns vs. 49 ns) |
similar (51 ms vs. 69 ms) |
5 times less (111 kB vs. 604 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 (49 ns vs. 40 ns) |
similar (68 ms vs. 70 ms) |
3 times less (196 kB vs. 667 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 (49 ns vs. 49 ns) |
similar (69 ms vs. 71 ms) |
3 times less (252 kB vs. 763 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 (49 ns vs. 49 ns) |
similar (74 ms vs. 73 ms) |
2 times less (339 kB vs. 856 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) |
28 times less (49 ns vs. 1 μs) |
similar (72 ms vs. 78 ms) |
2 times less (688 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 (40 ns vs. 49 ns) |
similar (57 ms vs. 71 ms) |
5 times less (116 kB vs. 606 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 (40 ns vs. 49 ns) |
similar (68 ms vs. 70 ms) |
3 times less (200 kB vs. 669 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 (40 ns vs. 49 ns) |
similar (67 ms vs. 71 ms) |
2 times less (256 kB vs. 765 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 (40 ns vs. 49 ns) |
similar (68 ms vs. 70 ms) |
2 times less (344 kB vs. 860 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) |
35 times less (40 ns vs. 1 μs) |
similar (71 ms vs. 83 ms) |
2 times less (692 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 (49 ns vs. 40 ns) |
similar (47 ms vs. 52 ms) |
6 times less (114 kB vs. 778 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 (40 ns vs. 49 ns) |
similar (64 ms vs. 52 ms) |
4 times less (198 kB vs. 839 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 (40 ns vs. 49 ns) |
similar (63 ms vs. 52 ms) |
3 times less (272 kB vs. 954 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 (49 ns vs. 49 ns) |
similar (65 ms vs. 55 ms) |
2 times less (465 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) |
884 times less (40 ns vs. 35 μs) |
similar (70 ms vs. 61 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 (40 ns vs. 40 ns) |
2 times less (27 ms vs. 57 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 (40 ns vs. 40 ns) |
2 times less (27 ms vs. 55 ms) |
19 times less (107 kB vs. 2 MB) |
unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (28 ms vs. 43 ms) |
14 times less (222 kB vs. 3 MB) |
unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times less (27 ms vs. 56 ms) |
22 times less (109 kB vs. 2 MB) |
unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (52 ms vs. 58 ms) |
similar (2 MB vs. 3 MB) |
unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (52 ms vs. 57 ms) |
similar (2 MB vs. 3 MB) |
unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (54 ms vs. 59 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) |
101 times less (40 ns vs. 4 μs) |
similar (59 ms vs. 63 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 (49 ns vs. 50 ns) |
similar (27 ms vs. 44 ms) |
13 times less (242 kB vs. 3 MB) |
unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (53 ms vs. 46 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 (54 ms vs. 47 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 (58 ms vs. 57 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) |
127 times less (89 ns vs. 11 μs) |
2 times more (103 ms vs. 48 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 (40 ns vs. 49 ns) |
2 times less (28 ms vs. 57 ms) |
26 times less (109 kB vs. 3 MB) |
unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (51 ms vs. 58 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 (40 ns vs. 40 ns) |
similar (52 ms vs. 60 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. 40 ns) |
similar (55 ms vs. 62 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) |
153 times less (40 ns vs. 6 μs) |
similar (58 ms vs. 64 ms) |
similar (3 MB vs. 3 MB) |
unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times less (28 ms vs. 57 ms) |
26 times less (109 kB vs. 3 MB) |
unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (53 ms vs. 59 ms) |
similar (2 MB vs. 3 MB) |
unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (53 ms vs. 60 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 (40 ns vs. 49 ns) |
similar (54 ms vs. 68 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) |
185 times less (40 ns vs. 7 μs) |
similar (59 ms vs. 64 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 (49 ns vs. 49 ns) |
similar (28 ms vs. 46 ms) |
13 times less (267 kB vs. 4 MB) |
unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (17 LLVM lines) |
similar (50 ns vs. 49 ns) |
similar (59 ms vs. 48 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 (60 ns vs. 60 ns) |
similar (55 ms vs. 51 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 (80 ns vs. 89 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) |
306 times less (351 ns vs. 108 μs) |
3 times more (194 ms vs. 50 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 (49 ns vs. 40 ns) |
2 times less (27 ms vs. 61 ms) |
28 times less (91 kB vs. 3 MB) |
unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times less (27 ms vs. 64 ms) |
21 times less (121 kB vs. 3 MB) |
unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (28 ms vs. 48 ms) |
12 times less (256 kB vs. 3 MB) |
unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times less (28 ms vs. 60 ms) |
22 times less (122 kB vs. 3 MB) |
unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (53 ms vs. 60 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 (49 ns vs. 49 ns) |
similar (53 ms vs. 61 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 (40 ns vs. 49 ns) |
similar (54 ms vs. 64 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) |
101 times less (40 ns vs. 4 μs) |
similar (59 ms vs. 65 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 (49 ns vs. 49 ns) |
similar (28 ms vs. 49 ms) |
12 times less (276 kB vs. 3 MB) |
unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (54 ms vs. 49 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 (49 ns vs. 50 ns) |
similar (55 ms vs. 51 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 (50 ns vs. 50 ns) |
similar (58 ms vs. 58 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) |
129 times less (80 ns vs. 10 μs) |
similar (93 ms vs. 52 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 (40 ns vs. 40 ns) |
2 times less (29 ms vs. 61 ms) |
25 times less (122 kB vs. 3 MB) |
unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (52 ms vs. 63 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 (40 ns vs. 49 ns) |
similar (52 ms vs. 63 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 (49 ns vs. 40 ns) |
similar (54 ms vs. 66 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) |
160 times less (40 ns vs. 6 μs) |
similar (59 ms vs. 68 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 (40 ns vs. 49 ns) |
2 times less (28 ms vs. 62 ms) |
25 times less (122 kB vs. 3 MB) |
unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (51 ms vs. 63 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 (40 ns vs. 40 ns) |
similar (53 ms vs. 66 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 (40 ns vs. 40 ns) |
similar (53 ms vs. 65 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) |
191 times less (40 ns vs. 8 μs) |
similar (60 ms vs. 70 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. 49 ns) |
similar (28 ms vs. 50 ms) |
13 times less (301 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. 50 ns) |
similar (55 ms vs. 52 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 (57 ms vs. 56 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 (80 ns vs. 89 ns) |
similar (65 ms vs. 68 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) |
324 times less (350 ns vs. 114 μs) |
3 times more (186 ms vs. 53 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 (40 ns vs. 49 ns) |
similar (44 ms vs. 80 ms) |
5 times less (379 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 (49 ns vs. 49 ns) |
similar (45 ms vs. 80 ms) |
5 times less (413 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 (49 ns vs. 49 ns) |
similar (37 ms vs. 57 ms) |
4 times less (683 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 (40 ns vs. 40 ns) |
similar (44 ms vs. 84 ms) |
5 times less (431 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. 49 ns) |
similar (87 ms vs. 91 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 (49 ns vs. 49 ns) |
similar (87 ms vs. 108 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 (40 ns vs. 49 ns) |
2 times less (94 ms vs. 197 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) |
119 times less (80 ns vs. 10 μs) |
2 times more (190 ms vs. 89 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 (50 ns vs. 49 ns) |
similar (38 ms vs. 56 ms) |
4 times less (736 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 (79 ms vs. 58 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 (84 ms vs. 59 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 (70 ns vs. 80 ns) |
similar (97 ms vs. 72 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) |
61 times less (250 ns vs. 15 μs) |
2 times more (175 ms vs. 61 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 (40 ns vs. 49 ns) |
similar (45 ms vs. 84 ms) |
6 times less (437 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 (49 ns vs. 40 ns) |
similar (86 ms vs. 92 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 (40 ns vs. 40 ns) |
similar (87 ms vs. 108 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 (40 ns vs. 40 ns) |
2 times less (92 ms vs. 196 ms) |
similar (3 MB vs. 5 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) |
232 times less (89 ns vs. 21 μs) |
2 times more (197 ms vs. 94 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 (40 ns vs. 49 ns) |
similar (45 ms vs. 86 ms) |
6 times less (442 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 (49 ns vs. 40 ns) |
similar (87 ms vs. 92 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 (40 ns vs. 40 ns) |
similar (87 ms vs. 111 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 (40 ns vs. 40 ns) |
2 times less (91 ms vs. 197 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) |
346 times less (80 ns vs. 28 μs) |
similar (193 ms vs. 98 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 (60 ns vs. 60 ns) |
similar (39 ms vs. 58 ms) |
4 times less (784 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 (85 ms vs. 61 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 (60 ns vs. 60 ns) |
similar (89 ms vs. 64 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 (110 ns vs. 110 ns) |
similar (108 ms vs. 79 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) |
330 times less (421 ns vs. 139 μs) |
3 times more (283 ms vs. 82 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 (40 ns vs. 40 ns) |
similar (45 ms vs. 85 ms) |
5 times less (407 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 (40 ns vs. 40 ns) |
similar (45 ms vs. 85 ms) |
5 times less (441 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 (49 ns vs. 49 ns) |
similar (39 ms vs. 60 ms) |
4 times less (729 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 (49 ns vs. 49 ns) |
similar (46 ms vs. 90 ms) |
5 times less (458 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 (40 ns vs. 49 ns) |
similar (89 ms vs. 97 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 (40 ns vs. 40 ns) |
similar (88 ms vs. 109 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 (40 ns vs. 49 ns) |
2 times less (93 ms vs. 201 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) |
103 times less (89 ns vs. 9 μs) |
2 times more (192 ms vs. 95 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 (60 ns vs. 60 ns) |
similar (39 ms vs. 61 ms) |
3 times less (781 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 (50 ns vs. 60 ns) |
similar (86 ms vs. 62 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. 50 ns) |
similar (83 ms vs. 65 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 (89 ns vs. 70 ns) |
similar (94 ms vs. 78 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) |
62 times less (250 ns vs. 16 μs) |
2 times more (174 ms vs. 66 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 (40 ns vs. 40 ns) |
similar (46 ms vs. 88 ms) |
6 times less (465 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 (40 ns vs. 49 ns) |
similar (86 ms vs. 96 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 (49 ns vs. 40 ns) |
similar (88 ms vs. 110 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 (40 ns vs. 49 ns) |
2 times less (93 ms vs. 202 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) |
259 times less (81 ns vs. 21 μs) |
similar (194 ms vs. 100 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 (40 ns vs. 40 ns) |
similar (46 ms vs. 90 ms) |
6 times less (469 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 (40 ns vs. 40 ns) |
similar (86 ms vs. 98 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 (40 ns vs. 40 ns) |
similar (88 ms vs. 113 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 (49 ns vs. 40 ns) |
2 times less (94 ms vs. 202 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) |
342 times less (80 ns vs. 27 μs) |
2 times more (201 ms vs. 97 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 (60 ns vs. 60 ns) |
similar (40 ms vs. 62 ms) |
4 times less (829 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 (85 ms vs. 65 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 (69 ns vs. 60 ns) |
similar (87 ms vs. 67 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. 110 ns) |
similar (107 ms vs. 81 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) |
334 times less (411 ns vs. 137 μs) |
4 times more (281 ms vs. 68 ms) |
similar (10 MB vs. 5 MB) |
unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (27 ms vs. 41 ms) |
3 times less (128 kB vs. 481 kB) |
unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (27 ms vs. 41 ms) |
3 times less (158 kB vs. 511 kB) |
unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (28 ms vs. 41 ms) |
2 times less (364 kB vs. 896 kB) |
unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (27 ms vs. 50 ms) |
6 times less (160 kB vs. 1 MB) |
unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (60 ms vs. 66 ms) |
6 times less (264 kB vs. 2 MB) |
unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (63 ms vs. 96 ms) |
9 times less (288 kB vs. 3 MB) |
unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
4 times less (62 ms vs. 290 ms) |
24 times less (430 kB vs. 10 MB) |
unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (29 ms vs. 49 ms) |
4 times less (391 kB vs. 2 MB) |
unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (21 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (60 ms vs. 52 ms) |
4 times less (562 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 (64 ms vs. 61 ms) |
5 times less (737 kB vs. 4 MB) |
unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (857 LLVM lines) |
similar (240 ns vs. 330 ns) |
similar (301 ms vs. 461 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 (40 ns vs. 49 ns) |
similar (28 ms vs. 50 ms) |
6 times less (160 kB vs. 1 MB) |
unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (59 ms vs. 68 ms) |
6 times less (265 kB vs. 2 MB) |
unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (58 ms vs. 104 ms) |
11 times less (288 kB vs. 3 MB) |
unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
4 times less (61 ms vs. 287 ms) |
25 times less (431 kB vs. 11 MB) |
unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (28 ms vs. 50 ms) |
6 times less (160 kB vs. 1 MB) |
unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (58 ms vs. 67 ms) |
6 times less (264 kB vs. 2 MB) |
unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (58 ms vs. 100 ms) |
11 times less (288 kB vs. 3 MB) |
unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
4 times less (66 ms vs. 289 ms) |
25 times less (431 kB vs. 11 MB) |
unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (13 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (28 ms vs. 55 ms) |
3 times less (417 kB vs. 2 MB) |
unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (29 LLVM lines) |
similar (60 ns vs. 49 ns) |
similar (61 ms vs. 55 ms) |
5 times less (564 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 (72 ms vs. 74 ms) |
7 times less (676 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. 843 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. 40 ns) |
similar (29 ms vs. 35 ms) |
5 times less (142 kB vs. 816 kB) |
unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (28 ms vs. 35 ms) |
4 times less (171 kB vs. 847 kB) |
unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (50 ns vs. 49 ns) |
similar (29 ms vs. 39 ms) |
2 times less (398 kB vs. 1 MB) |
unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (28 ms vs. 43 ms) |
6 times less (174 kB vs. 1 MB) |
unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (59 ms vs. 60 ms) |
6 times less (277 kB vs. 2 MB) |
unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (58 ms vs. 89 ms) |
9 times less (301 kB vs. 3 MB) |
unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
4 times less (62 ms vs. 278 ms) |
23 times less (444 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 (49 ns vs. 49 ns) |
similar (29 ms vs. 44 ms) |
3 times less (426 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 (49 ns vs. 60 ns) |
similar (61 ms vs. 45 ms) |
4 times less (598 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 (69 ns vs. 69 ns) |
similar (63 ms vs. 53 ms) |
5 times less (771 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 (280 ns vs. 270 ns) |
similar (290 ms vs. 442 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 (49 ns vs. 49 ns) |
similar (29 ms vs. 43 ms) |
6 times less (174 kB vs. 1 MB) |
unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (61 ms vs. 61 ms) |
6 times less (278 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. 49 ns) |
similar (59 ms vs. 91 ms) |
11 times less (302 kB vs. 3 MB) |
unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
4 times less (60 ms vs. 280 ms) |
24 times less (445 kB vs. 11 MB) |
unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (28 ms vs. 44 ms) |
6 times less (174 kB vs. 1 MB) |
unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (58 ms vs. 59 ms) |
6 times less (278 kB vs. 2 MB) |
unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (59 ms vs. 93 ms) |
11 times less (302 kB vs. 3 MB) |
unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
4 times less (63 ms vs. 283 ms) |
24 times less (444 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. 49 ns) |
similar (30 ms vs. 42 ms) |
3 times less (452 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 (63 ms vs. 47 ms) |
4 times less (599 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 (89 ns vs. 80 ns) |
similar (69 ms vs. 65 ms) |
7 times less (710 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. 797 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 (49 ns vs. 49 ns) |
similar (70 ms vs. 53 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 (49 ns vs. 49 ns) |
similar (70 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 non-singleton Tuple |
similar (22 LLVM lines w/ Const) |
similar (49 ns vs. 50 ns) |
similar (67 ms vs. 53 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 (49 ns vs. 49 ns) |
similar (75 ms vs. 53 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 (49 ns vs. 49 ns) |
similar (89 ms vs. 54 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 (49 ns vs. 49 ns) |
similar (88 ms vs. 53 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 (49 ns vs. 49 ns) |
similar (94 ms vs. 53 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 (49 ns vs. 49 ns) |
2 times more (119 ms vs. 58 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 (49 ns vs. 49 ns) |
similar (69 ms vs. 54 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 (49 ns vs. 49 ns) |
similar (88 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 (49 ns vs. 49 ns) |
similar (87 ms vs. 53 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 (49 ns vs. 49 ns) |
similar (95 ms vs. 54 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. 49 ns) |
2 times more (118 ms vs. 53 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 (49 ns vs. 69 ns) |
similar (72 ms vs. 54 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 (49 ns vs. 69 ns) |
similar (88 ms vs. 54 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 (49 ns vs. 69 ns) |
similar (90 ms vs. 53 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. 60 ns) |
similar (94 ms vs. 52 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 (49 ns vs. 60 ns) |
2 times more (125 ms vs. 53 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 (49 ns vs. 60 ns) |
similar (72 ms vs. 53 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 (49 ns vs. 60 ns) |
similar (90 ms vs. 53 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 (49 ns vs. 69 ns) |
similar (89 ms vs. 53 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 (49 ns vs. 69 ns) |
similar (98 ms vs. 60 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 (49 ns vs. 60 ns) |
2 times more (123 ms vs. 54 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 (49 ns vs. 80 ns) |
similar (68 ms vs. 53 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 (49 ns vs. 89 ns) |
similar (92 ms vs. 54 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 (49 ns vs. 80 ns) |
similar (90 ms vs. 54 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 (69 ns vs. 100 ns) |
similar (93 ms vs. 54 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 (120 ns vs. 240 ns) |
2 times more (121 ms vs. 54 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 (49 ns vs. 40 ns) |
similar (30 ms vs. 27 ms) |
2 times more (131 kB vs. 48 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (30 ms vs. 27 ms) |
similar (161 kB vs. 163 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (26 ms vs. 24 ms) |
similar (137 kB vs. 193 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (41 ns vs. 49 ns) |
similar (30 ms vs. 30 ms) |
similar (165 kB vs. 282 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (48 ms vs. 30 ms) |
similar (227 kB vs. 282 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (49 ms vs. 31 ms) |
similar (253 kB vs. 282 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (51 ms vs. 30 ms) |
similar (404 kB vs. 282 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (59 ms vs. 30 ms) |
3 times more (1010 kB vs. 282 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (29 ms vs. 28 ms) |
2 times less (146 kB vs. 325 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (44 ms vs. 28 ms) |
similar (241 kB vs. 350 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (43 ms vs. 28 ms) |
similar (347 kB vs. 350 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (47 ms vs. 29 ms) |
similar (532 kB vs. 350 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (55 ms vs. 28 ms) |
4 times more (1 MB vs. 350 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (33 ms vs. 34 ms) |
similar (192 kB vs. 313 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (57 ms vs. 40 ms) |
similar (311 kB vs. 338 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (65 ms vs. 33 ms) |
similar (418 kB vs. 338 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (66 ms vs. 34 ms) |
similar (569 kB vs. 338 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times more (75 ms vs. 34 ms) |
3 times more (1 MB vs. 338 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (33 ms vs. 33 ms) |
similar (192 kB vs. 313 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (57 ms vs. 33 ms) |
similar (310 kB vs. 338 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (65 ms vs. 34 ms) |
similar (418 kB vs. 338 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (67 ms vs. 34 ms) |
similar (569 kB vs. 338 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times more (75 ms vs. 35 ms) |
3 times more (1 MB vs. 338 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. 80 ns) |
similar (24 ms vs. 29 ms) |
similar (197 kB vs. 379 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 400 B allocs) |
3 times less (40 ns vs. 130 ns) |
similar (43 ms vs. 30 ms) |
similar (322 kB vs. 406 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 (49 ns vs. 250 ns) |
similar (43 ms vs. 32 ms) |
similar (444 kB vs. 407 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 32 kB allocs) |
52 times less (40 ns vs. 2 μs) |
similar (47 ms vs. 36 ms) |
similar (693 kB vs. 437 kB) |
unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
697 times less (49 ns vs. 34 μs) |
similar (55 ms vs. 31 ms) |
similar (2 MB vs. 927 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (31 ms vs. 24 ms) |
4 times more (136 kB vs. 33 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (30 ms vs. 30 ms) |
similar (165 kB vs. 252 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (6 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (29 ms vs. 28 ms) |
similar (287 kB vs. 259 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (31 ms vs. 30 ms) |
similar (167 kB vs. 252 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (50 ms vs. 30 ms) |
similar (224 kB vs. 252 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (54 ms vs. 30 ms) |
similar (239 kB vs. 252 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (52 ms vs. 30 ms) |
similar (326 kB vs. 252 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (59 ms vs. 31 ms) |
2 times more (676 kB vs. 252 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (29 ms vs. 30 ms) |
similar (332 kB vs. 334 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (49 ms vs. 31 ms) |
similar (479 kB vs. 359 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (54 ms vs. 31 ms) |
similar (704 kB vs. 359 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (49 ns vs. 40 ns) |
similar (55 ms vs. 36 ms) |
4 times more (2 MB vs. 359 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (49 ns vs. 40 ns) |
2 times more (82 ms vs. 40 ms) |
15 times more (5 MB vs. 359 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (31 ms vs. 25 ms) |
similar (167 kB vs. 148 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (49 ms vs. 25 ms) |
similar (225 kB vs. 149 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (49 ms vs. 25 ms) |
similar (240 kB vs. 149 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times more (53 ms vs. 25 ms) |
2 times more (327 kB vs. 149 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times more (60 ms vs. 25 ms) |
4 times more (676 kB vs. 149 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (31 ms vs. 30 ms) |
similar (167 kB vs. 252 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (49 ms vs. 30 ms) |
similar (225 kB vs. 253 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (50 ms vs. 30 ms) |
similar (240 kB vs. 253 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (51 ms vs. 34 ms) |
similar (327 kB vs. 253 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (60 ms vs. 30 ms) |
2 times more (676 kB vs. 253 kB) |
unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (40 ns vs. 49 ns) |
similar (28 ms vs. 32 ms) |
similar (372 kB vs. 389 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 (49 ns vs. 69 ns) |
similar (48 ms vs. 38 ms) |
similar (523 kB vs. 567 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 (49 ns vs. 69 ns) |
similar (48 ms vs. 37 ms) |
similar (700 kB vs. 567 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 (49 ns vs. 80 ns) |
similar (52 ms vs. 37 ms) |
similar (1 MB vs. 567 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) |
2 times less (40 ns vs. 80 ns) |
similar (65 ms vs. 37 ms) |
5 times more (3 MB vs. 567 kB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (31 ms vs. 25 ms) |
4 times more (136 kB vs. 33 kB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (31 ms vs. 31 ms) |
similar (165 kB vs. 252 kB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (6 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (29 ms vs. 29 ms) |
similar (287 kB vs. 259 kB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (31 ms vs. 30 ms) |
similar (167 kB vs. 252 kB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (50 ms vs. 31 ms) |
similar (224 kB vs. 252 kB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (50 ms vs. 30 ms) |
similar (239 kB vs. 252 kB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (53 ms vs. 31 ms) |
similar (326 kB vs. 252 kB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times more (62 ms vs. 30 ms) |
2 times more (676 kB vs. 252 kB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (40 ns vs. 49 ns) |
similar (29 ms vs. 30 ms) |
similar (332 kB vs. 334 kB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (40 ns vs. 49 ns) |
similar (50 ms vs. 32 ms) |
similar (479 kB vs. 359 kB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (49 ns vs. 40 ns) |
similar (50 ms vs. 32 ms) |
similar (704 kB vs. 359 kB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (49 ns vs. 40 ns) |
similar (56 ms vs. 37 ms) |
4 times more (2 MB vs. 359 kB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (49 ns vs. 49 ns) |
2 times more (83 ms vs. 41 ms) |
15 times more (5 MB vs. 359 kB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (34 ms vs. 35 ms) |
2 times less (197 kB vs. 413 kB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (58 ms vs. 44 ms) |
3 times less (315 kB vs. 1 MB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (49 ms vs. 25 ms) |
similar (240 kB vs. 149 kB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (62 ms vs. 46 ms) |
2 times less (417 kB vs. 1 MB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (64 ms vs. 39 ms) |
similar (706 kB vs. 697 kB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (35 ms vs. 38 ms) |
similar (261 kB vs. 503 kB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (57 ms vs. 47 ms) |
4 times less (315 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. 40 ns) |
similar (52 ms vs. 31 ms) |
similar (240 kB vs. 253 kB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (60 ms vs. 47 ms) |
3 times less (417 kB vs. 1 MB) |
unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (63 ms vs. 42 ms) |
similar (770 kB vs. 892 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) |
2 times less (40 ns vs. 80 ns) |
similar (33 ms vs. 33 ms) |
similar (357 kB vs. 407 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 (49 ns vs. 220 ns) |
similar (49 ms vs. 42 ms) |
2 times less (509 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 (49 ns vs. 70 ns) |
similar (49 ms vs. 37 ms) |
similar (700 kB vs. 567 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) |
5 times less (49 ns vs. 260 ns) |
similar (54 ms vs. 46 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 (49 ns vs. 290 ns) |
similar (68 ms vs. 38 ms) |
4 times more (3 MB vs. 670 kB) |
unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
1 |
empty singleton Tuple |
better (optimized out vs. 384 B allocs) |
4 times less (49 ns vs. 230 ns) |
2 times less (31 ms vs. 85 ms) |
12 times less (382 kB vs. 5 MB) |
unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 384 B allocs) |
4 times less (49 ns vs. 230 ns) |
2 times less (31 ms vs. 86 ms) |
11 times less (415 kB 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) |
5 times less (49 ns vs. 280 ns) |
2 times less (32 ms vs. 83 ms) |
7 times less (642 kB vs. 5 MB) |
unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 384 B allocs) |
5 times less (40 ns vs. 230 ns) |
2 times less (41 ms vs. 88 ms) |
4 times less (1 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 (49 ns vs. 240 ns) |
similar (66 ms vs. 86 ms) |
similar (3 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) |
5 times less (49 ns vs. 260 ns) |
similar (64 ms vs. 85 ms) |
similar (3 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) |
7 times less (40 ns vs. 310 ns) |
similar (67 ms vs. 87 ms) |
similar (3 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) |
13 times less (40 ns vs. 521 ns) |
similar (73 ms vs. 91 ms) |
similar (4 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. 290 ns) |
2 times less (37 ms vs. 84 ms) |
3 times less (1 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 (49 ns vs. 290 ns) |
similar (63 ms vs. 86 ms) |
similar (3 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) |
5 times less (60 ns vs. 310 ns) |
similar (62 ms vs. 85 ms) |
similar (4 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) |
7 times less (49 ns vs. 350 ns) |
similar (64 ms vs. 84 ms) |
similar (5 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) |
11 times less (49 ns vs. 581 ns) |
similar (76 ms vs. 84 ms) |
similar (9 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 (49 ns vs. 270 ns) |
2 times less (44 ms vs. 102 ms) |
3 times less (1 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) |
8 times less (40 ns vs. 341 ns) |
similar (77 ms vs. 97 ms) |
similar (5 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) |
11 times less (40 ns vs. 461 ns) |
similar (154 ms vs. 103 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) |
19 times less (40 ns vs. 791 ns) |
similar (186 ms vs. 96 ms) |
2 times more (13 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) |
51 times less (40 ns vs. 2 μs) |
similar (189 ms vs. 98 ms) |
3 times more (14 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) |
6 times less (40 ns vs. 270 ns) |
2 times less (41 ms vs. 97 ms) |
3 times less (1 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) |
10 times less (40 ns vs. 410 ns) |
similar (79 ms vs. 112 ms) |
similar (5 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 (49 ns vs. 1 μs) |
similar (139 ms vs. 138 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) |
41 times less (40 ns vs. 2 μs) |
similar (187 ms vs. 131 ms) |
similar (13 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) |
74 times less (40 ns vs. 3 μs) |
similar (195 ms vs. 134 ms) |
2 times more (14 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 (60 ns vs. 360 ns) |
2 times less (37 ms vs. 98 ms) |
2 times less (2 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) |
10 times less (50 ns vs. 521 ns) |
similar (71 ms vs. 114 ms) |
similar (5 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) |
25 times less (69 ns vs. 2 μs) |
similar (105 ms vs. 140 ms) |
similar (11 MB vs. 6 MB) |
unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (26 LLVM lines vs. 33 kB allocs) |
59 times less (60 ns vs. 4 μs) |
similar (118 ms vs. 138 ms) |
2 times more (18 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) |
631 times less (60 ns vs. 38 μs) |
similar (143 ms vs. 143 ms) |
4 times more (29 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 (49 ns vs. 210 ns) |
4 times less (27 ms vs. 111 ms) |
35 times less (207 kB vs. 7 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 256 B allocs) |
4 times less (49 ns vs. 220 ns) |
4 times less (27 ms vs. 116 ms) |
32 times less (236 kB vs. 8 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (8 LLVM lines vs. 480 B allocs) |
5 times less (50 ns vs. 270 ns) |
4 times less (29 ms vs. 129 ms) |
16 times less (474 kB 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 (49 ns vs. 230 ns) |
3 times less (34 ms vs. 120 ms) |
20 times less (388 kB 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 (49 ns vs. 231 ns) |
similar (59 ms vs. 119 ms) |
3 times less (2 MB vs. 8 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
6 times less (40 ns vs. 240 ns) |
2 times less (58 ms vs. 119 ms) |
3 times less (2 MB vs. 8 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
7 times less (40 ns vs. 310 ns) |
2 times less (62 ms vs. 138 ms) |
3 times less (2 MB vs. 8 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
12 times less (49 ns vs. 621 ns) |
similar (65 ms vs. 119 ms) |
2 times less (3 MB vs. 8 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (25 LLVM lines vs. 480 B allocs) |
4 times less (60 ns vs. 271 ns) |
4 times less (30 ms vs. 128 ms) |
8 times less (929 kB vs. 8 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
better (120 LLVM lines vs. 480 B allocs) |
4 times less (60 ns vs. 290 ns) |
2 times less (62 ms vs. 127 ms) |
similar (4 MB vs. 8 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
fewer allocs (80 B allocs vs. 480 B allocs) |
similar (430 ns vs. 310 ns) |
similar (80 ms vs. 126 ms) |
similar (5 MB vs. 8 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
fewer allocs (464 B allocs vs. 480 B allocs) |
6 times more (3 μs vs. 430 ns) |
similar (157 ms vs. 130 ms) |
similar (6 MB vs. 8 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
worse (2 kB allocs vs. 480 B allocs) |
13 times more (13 μs vs. 942 ns) |
3 times more (475 ms vs. 130 ms) |
similar (12 MB vs. 8 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
6 times less (40 ns vs. 260 ns) |
5 times less (35 ms vs. 181 ms) |
25 times less (422 kB vs. 10 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 512 B allocs) |
11 times less (40 ns vs. 451 ns) |
3 times less (79 ms vs. 259 ms) |
6 times less (3 MB vs. 18 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 576 B allocs) |
27 times less (40 ns vs. 1 μs) |
2 times less (154 ms vs. 380 ms) |
7 times less (4 MB vs. 29 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 960 B allocs) |
66 times less (49 ns vs. 3 μs) |
2 times less (180 ms vs. 379 ms) |
6 times less (5 MB vs. 29 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
311 times less (40 ns vs. 12 μs) |
2 times less (186 ms vs. 384 ms) |
5 times less (5 MB vs. 29 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
2 |
distinct nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
7 times less (40 ns vs. 280 ns) |
5 times less (34 ms vs. 184 ms) |
23 times less (516 kB vs. 12 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
4 |
distinct nonempty singleton Tuples |
better (optimized out vs. 512 B allocs) |
10 times less (49 ns vs. 510 ns) |
3 times less (80 ms vs. 295 ms) |
8 times less (3 MB vs. 22 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
8 |
distinct nonempty singleton Tuples |
better (optimized out vs. 576 B allocs) |
53 times less (49 ns vs. 3 μs) |
2 times less (160 ms vs. 466 ms) |
8 times less (4 MB vs. 35 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (optimized out vs. 960 B allocs) |
153 times less (40 ns vs. 6 μs) |
2 times less (177 ms vs. 447 ms) |
7 times less (5 MB vs. 35 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
524 times less (40 ns vs. 21 μs) |
2 times less (184 ms vs. 447 ms) |
6 times less (5 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) |
6 times less (60 ns vs. 360 ns) |
5 times less (31 ms vs. 183 ms) |
12 times less (867 kB vs. 11 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (17 LLVM lines vs. 1 kB allocs) |
14 times less (49 ns vs. 701 ns) |
5 times less (56 ms vs. 316 ms) |
5 times less (4 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) |
52 times less (60 ns vs. 3 μs) |
5 times less (94 ms vs. 502 ms) |
5 times less (6 MB vs. 33 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
fewer allocs (1 kB allocs vs. 34 kB allocs) |
3 times less (3 μs vs. 8 μs) |
2 times less (204 ms vs. 493 ms) |
2 times less (12 MB vs. 33 MB) |
unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
fewer allocs (5 kB allocs vs. 525 kB allocs) |
4 times less (14 μs vs. 61 μs) |
similar (537 ms vs. 498 ms) |
similar (18 MB vs. 33 MB) |
unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (31 ms vs. 24 ms) |
26 times more (392 kB vs. 15 kB) |
unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (31 ms vs. 24 ms) |
22 times more (426 kB vs. 19 kB) |
unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (29 ms vs. 24 ms) |
33 times more (653 kB vs. 19 kB) |
unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (40 ms vs. 29 ms) |
similar (1 MB vs. 999 kB) |
unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (64 ms vs. 33 ms) |
similar (3 MB vs. 3 MB) |
unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (65 ms vs. 45 ms) |
2 times less (3 MB vs. 9 MB) |
unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 320 B allocs) |
3 times less (40 ns vs. 120 ns) |
similar (68 ms vs. 57 ms) |
similar (3 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 (49 ns vs. 120 ns) |
similar (73 ms vs. 57 ms) |
similar (4 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. 49 ns) |
similar (34 ms vs. 28 ms) |
similar (1 MB vs. 977 kB) |
unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (58 ms vs. 33 ms) |
similar (3 MB vs. 3 MB) |
unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (62 ms vs. 45 ms) |
2 times less (4 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) |
2 times less (49 ns vs. 120 ns) |
similar (61 ms vs. 50 ms) |
2 times more (5 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) |
3 times less (40 ns vs. 140 ns) |
similar (73 ms vs. 49 ms) |
4 times more (9 MB vs. 2 MB) |
unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (42 ms vs. 28 ms) |
similar (1 MB vs. 999 kB) |
unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times more (80 ms vs. 33 ms) |
similar (5 MB vs. 3 MB) |
unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
3 times more (134 ms vs. 44 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) |
5 times less (49 ns vs. 251 ns) |
3 times more (185 ms vs. 60 ms) |
6 times more (13 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) |
6 times less (40 ns vs. 240 ns) |
3 times more (192 ms vs. 58 ms) |
6 times more (14 MB vs. 2 MB) |
unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (47 ms vs. 29 ms) |
similar (1 MB vs. 1004 kB) |
unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times more (79 ms vs. 33 ms) |
similar (5 MB vs. 3 MB) |
unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
3 times more (141 ms vs. 46 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. 250 ns) |
3 times more (187 ms vs. 62 ms) |
6 times more (13 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 (49 ns vs. 250 ns) |
3 times more (192 ms vs. 59 ms) |
6 times more (14 MB vs. 2 MB) |
unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (33 ms vs. 28 ms) |
similar (2 MB vs. 1003 kB) |
unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (63 ms vs. 34 ms) |
similar (5 MB vs. 3 MB) |
unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times more (95 ms vs. 45 ms) |
similar (11 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) |
13 times less (40 ns vs. 541 ns) |
2 times more (110 ms vs. 51 ms) |
8 times more (18 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) |
30 times less (49 ns vs. 2 μs) |
2 times more (130 ms vs. 51 ms) |
13 times more (29 MB vs. 2 MB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (40 ms vs. 24 ms) |
15 times more (319 kB vs. 21 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (40 ms vs. 24 ms) |
13 times more (352 kB vs. 25 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (35 ms vs. 24 ms) |
14 times more (366 kB vs. 25 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (50 ms vs. 27 ms) |
4 times more (852 kB vs. 193 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (51 ms vs. 30 ms) |
3 times more (932 kB vs. 294 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times more (82 ms vs. 31 ms) |
4 times more (1 MB vs. 295 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
3 times more (92 ms vs. 30 ms) |
7 times more (2 MB vs. 297 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
4 times more (141 ms vs. 31 ms) |
20 times more (6 MB vs. 308 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (36 ms vs. 27 ms) |
5 times more (972 kB vs. 186 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (36 ms vs. 32 ms) |
2 times more (1 MB vs. 423 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times more (68 ms vs. 32 ms) |
3 times more (2 MB vs. 431 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times more (70 ms vs. 32 ms) |
6 times more (3 MB vs. 491 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 4 kB allocs) |
151 times less (40 ns vs. 6 μs) |
2 times more (90 ms vs. 35 ms) |
21 times more (9 MB vs. 435 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (50 ms vs. 27 ms) |
4 times more (849 kB vs. 190 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (52 ms vs. 31 ms) |
5 times more (1 MB vs. 192 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
3 times more (84 ms vs. 28 ms) |
8 times more (2 MB vs. 193 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
3 times more (90 ms vs. 27 ms) |
13 times more (3 MB vs. 196 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
4 times more (131 ms vs. 27 ms) |
33 times more (7 MB vs. 206 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (51 ms vs. 27 ms) |
4 times more (854 kB vs. 195 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (52 ms vs. 27 ms) |
5 times more (1 MB vs. 196 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times more (85 ms vs. 34 ms) |
8 times more (2 MB vs. 197 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
3 times more (90 ms vs. 28 ms) |
13 times more (3 MB vs. 200 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
4 times more (134 ms vs. 27 ms) |
32 times more (7 MB vs. 211 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (35 ms vs. 27 ms) |
3 times more (998 kB vs. 254 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (36 ms vs. 28 ms) |
4 times more (1 MB vs. 285 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times more (66 ms vs. 27 ms) |
6 times more (2 MB vs. 290 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times more (75 ms vs. 27 ms) |
10 times more (4 MB vs. 329 kB) |
unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
3 times more (88 ms vs. 27 ms) |
35 times more (10 MB vs. 281 kB) |
unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (35 ms vs. 64 ms) |
5 times less (361 kB vs. 2 MB) |
unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (35 ms vs. 63 ms) |
5 times less (395 kB vs. 2 MB) |
unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (27 ms vs. 39 ms) |
5 times less (427 kB vs. 2 MB) |
unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (36 ms vs. 66 ms) |
5 times less (418 kB vs. 2 MB) |
unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (82 ms vs. 67 ms) |
similar (2 MB vs. 2 MB) |
unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (78 ms vs. 66 ms) |
similar (2 MB vs. 2 MB) |
unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (82 ms vs. 67 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 (40 ns vs. 49 ns) |
similar (104 ms vs. 71 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. 40 ns) |
similar (28 ms vs. 39 ms) |
5 times less (454 kB vs. 2 MB) |
unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (70 ms vs. 40 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. 40 ns) |
similar (71 ms vs. 40 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 (49 ns vs. 40 ns) |
similar (75 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 (40 ns vs. 40 ns) |
2 times more (95 ms vs. 43 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 (40 ns vs. 40 ns) |
similar (36 ms vs. 68 ms) |
6 times less (418 kB vs. 2 MB) |
unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (76 ms vs. 74 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 (49 ns vs. 40 ns) |
similar (83 ms vs. 86 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 (40 ns vs. 49 ns) |
similar (83 ms vs. 87 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) |
34 times less (40 ns vs. 1 μs) |
similar (103 ms vs. 75 ms) |
similar (6 MB vs. 3 MB) |
unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (36 ms vs. 68 ms) |
6 times less (422 kB vs. 3 MB) |
unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (76 ms vs. 73 ms) |
similar (2 MB vs. 3 MB) |
unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (79 ms vs. 85 ms) |
similar (2 MB vs. 3 MB) |
unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (83 ms vs. 87 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) |
34 times less (40 ns vs. 1 μs) |
similar (102 ms vs. 75 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 (40 ns vs. 40 ns) |
similar (27 ms vs. 40 ms) |
5 times less (479 kB vs. 3 MB) |
unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (71 ms vs. 42 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 (40 ns vs. 40 ns) |
similar (71 ms vs. 42 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 (40 ns vs. 40 ns) |
similar (76 ms vs. 44 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) |
902 times less (40 ns vs. 36 μs) |
similar (98 ms vs. 50 ms) |
similar (7 MB vs. 4 MB) |
unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times less (35 ms vs. 72 ms) |
6 times less (361 kB vs. 2 MB) |
unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times less (35 ms vs. 72 ms) |
5 times less (395 kB vs. 2 MB) |
unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (27 ms vs. 47 ms) |
6 times less (427 kB vs. 3 MB) |
unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times less (35 ms vs. 76 ms) |
5 times less (418 kB vs. 2 MB) |
unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (78 ms vs. 83 ms) |
similar (2 MB vs. 2 MB) |
unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (77 ms vs. 75 ms) |
similar (2 MB vs. 3 MB) |
unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (85 ms vs. 75 ms) |
similar (3 MB vs. 3 MB) |
unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (112 ms vs. 80 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 (49 ns vs. 49 ns) |
similar (28 ms vs. 48 ms) |
6 times less (454 kB vs. 3 MB) |
unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (75 ms vs. 49 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. 49 ns) |
similar (72 ms vs. 48 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 (40 ns vs. 49 ns) |
similar (77 ms vs. 50 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 (49 ns vs. 49 ns) |
similar (102 ms vs. 52 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 (40 ns vs. 49 ns) |
2 times less (36 ms vs. 75 ms) |
6 times less (418 kB vs. 3 MB) |
unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (76 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 (40 ns vs. 49 ns) |
similar (81 ms vs. 95 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 (40 ns vs. 40 ns) |
similar (85 ms vs. 100 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. 17 LLVM lines) |
27 times less (49 ns vs. 1 μs) |
similar (109 ms vs. 84 ms) |
similar (6 MB vs. 3 MB) |
unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times less (36 ms vs. 75 ms) |
6 times less (422 kB vs. 3 MB) |
unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (76 ms vs. 87 ms) |
similar (2 MB vs. 3 MB) |
unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (81 ms vs. 95 ms) |
similar (2 MB vs. 4 MB) |
unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (87 ms vs. 95 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) |
28 times less (49 ns vs. 1 μs) |
similar (110 ms vs. 86 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 (40 ns vs. 40 ns) |
similar (28 ms vs. 48 ms) |
6 times less (479 kB vs. 3 MB) |
unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (71 ms vs. 50 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 (40 ns vs. 40 ns) |
similar (70 ms vs. 51 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 (40 ns vs. 40 ns) |
similar (80 ms vs. 52 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) |
740 times less (49 ns vs. 36 μs) |
similar (107 ms vs. 58 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. 180 ns) |
similar (35 ms vs. 65 ms) |
5 times less (512 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) |
4 times less (40 ns vs. 180 ns) |
similar (36 ms vs. 65 ms) |
5 times less (546 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 (49 ns vs. 180 ns) |
similar (28 ms vs. 56 ms) |
5 times less (577 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) |
5 times less (40 ns vs. 210 ns) |
similar (36 ms vs. 67 ms) |
6 times less (582 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. 260 ns) |
similar (75 ms vs. 68 ms) |
4 times less (792 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) |
9 times less (40 ns vs. 370 ns) |
similar (77 ms vs. 69 ms) |
3 times less (977 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) |
26 times less (40 ns vs. 1 μs) |
similar (84 ms vs. 71 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) |
6 times more (430 ms vs. 70 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) |
5 times less (40 ns vs. 210 ns) |
2 times less (29 ms vs. 59 ms) |
6 times less (618 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) |
5 times less (49 ns vs. 270 ns) |
similar (67 ms vs. 58 ms) |
4 times less (862 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) |
9 times less (40 ns vs. 370 ns) |
similar (69 ms vs. 60 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) |
21 times less (49 ns vs. 1 μs) |
similar (78 ms vs. 62 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) |
46 times less (80 ns vs. 4 μs) |
6 times more (424 ms vs. 62 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 (49 ns vs. 220 ns) |
similar (37 ms vs. 72 ms) |
6 times less (582 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) |
7 times less (40 ns vs. 300 ns) |
similar (74 ms vs. 69 ms) |
4 times less (802 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 (49 ns vs. 460 ns) |
similar (76 ms vs. 70 ms) |
3 times less (998 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) |
35 times less (40 ns vs. 1 μs) |
similar (86 ms vs. 71 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) |
63 times less (80 ns vs. 5 μs) |
6 times more (423 ms vs. 70 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 (49 ns vs. 220 ns) |
similar (36 ms vs. 72 ms) |
6 times less (587 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) |
7 times less (40 ns vs. 300 ns) |
similar (74 ms vs. 74 ms) |
4 times less (806 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) |
11 times less (40 ns vs. 460 ns) |
similar (84 ms vs. 75 ms) |
3 times less (1003 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) |
28 times less (49 ns vs. 1 μs) |
similar (86 ms vs. 72 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) |
63 times less (80 ns vs. 5 μs) |
5 times more (430 ms vs. 77 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) |
6 times less (40 ns vs. 240 ns) |
similar (38 ms vs. 61 ms) |
6 times less (643 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) |
8 times less (40 ns vs. 350 ns) |
similar (67 ms vs. 62 ms) |
4 times less (863 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) |
12 times less (49 ns vs. 601 ns) |
similar (68 ms vs. 66 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) |
79 times less (40 ns vs. 3 μs) |
similar (78 ms vs. 62 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) |
490 times less (80 ns vs. 39 μs) |
6 times more (423 ms vs. 63 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) |
4 times less (40 ns vs. 180 ns) |
similar (39 ms vs. 69 ms) |
5 times less (512 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) |
4 times less (40 ns vs. 180 ns) |
similar (36 ms vs. 70 ms) |
5 times less (546 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) |
4 times less (40 ns vs. 180 ns) |
2 times less (29 ms vs. 60 ms) |
5 times less (577 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 (49 ns vs. 200 ns) |
similar (37 ms vs. 71 ms) |
6 times less (582 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) |
5 times less (49 ns vs. 260 ns) |
similar (74 ms vs. 72 ms) |
4 times less (792 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 (49 ns vs. 370 ns) |
similar (78 ms vs. 73 ms) |
3 times less (977 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) |
22 times less (49 ns vs. 1 μs) |
similar (86 ms vs. 74 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) |
46 times less (80 ns vs. 4 μs) |
5 times more (425 ms vs. 73 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) |
4 times less (49 ns vs. 200 ns) |
2 times less (29 ms vs. 62 ms) |
6 times less (618 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) |
6 times less (40 ns vs. 271 ns) |
similar (70 ms vs. 64 ms) |
4 times less (862 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) |
7 times less (49 ns vs. 370 ns) |
similar (69 ms vs. 63 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) |
26 times less (40 ns vs. 1 μs) |
similar (78 ms vs. 63 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) |
46 times less (80 ns vs. 4 μs) |
6 times more (419 ms vs. 64 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) |
5 times less (40 ns vs. 220 ns) |
similar (36 ms vs. 72 ms) |
6 times less (582 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) |
7 times less (40 ns vs. 300 ns) |
similar (73 ms vs. 78 ms) |
4 times less (802 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 (49 ns vs. 461 ns) |
similar (77 ms vs. 73 ms) |
3 times less (998 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) |
35 times less (40 ns vs. 1 μs) |
similar (86 ms vs. 74 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) |
72 times less (70 ns vs. 5 μs) |
5 times more (422 ms vs. 74 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) |
5 times less (40 ns vs. 220 ns) |
similar (38 ms vs. 75 ms) |
6 times less (587 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) |
7 times less (40 ns vs. 300 ns) |
similar (77 ms vs. 75 ms) |
4 times less (806 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) |
11 times less (40 ns vs. 450 ns) |
similar (83 ms vs. 74 ms) |
3 times less (1003 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) |
37 times less (40 ns vs. 2 μs) |
similar (85 ms vs. 74 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) |
68 times less (80 ns vs. 6 μs) |
5 times more (426 ms vs. 75 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) |
5 times less (40 ns vs. 230 ns) |
2 times less (29 ms vs. 65 ms) |
6 times less (643 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) |
7 times less (49 ns vs. 360 ns) |
similar (67 ms vs. 66 ms) |
4 times less (863 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) |
15 times less (40 ns vs. 612 ns) |
similar (69 ms vs. 69 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) |
68 times less (49 ns vs. 3 μs) |
similar (80 ms vs. 65 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) |
439 times less (89 ns vs. 39 μs) |
6 times more (423 ms vs. 65 ms) |
similar (9 MB vs. 5 MB) |
unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times less (35 ms vs. 72 ms) |
7 times less (498 kB vs. 3 MB) |
unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times less (35 ms vs. 78 ms) |
6 times less (529 kB vs. 4 MB) |
unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (28 ms vs. 48 ms) |
6 times less (564 kB vs. 4 MB) |
unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times less (36 ms vs. 73 ms) |
5 times less (677 kB vs. 4 MB) |
unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (79 ms vs. 73 ms) |
similar (3 MB vs. 4 MB) |
unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (79 ms vs. 73 ms) |
similar (3 MB vs. 4 MB) |
unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (86 ms vs. 76 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. 49 ns) |
similar (122 ms vs. 75 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 (49 ns vs. 40 ns) |
similar (29 ms vs. 55 ms) |
5 times less (713 kB vs. 4 MB) |
unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (74 ms vs. 49 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 (49 ns vs. 40 ns) |
similar (75 ms vs. 49 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 (49 ns vs. 40 ns) |
similar (80 ms vs. 56 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 (49 ns vs. 40 ns) |
2 times more (116 ms vs. 50 ms) |
4 times more (15 MB vs. 4 MB) |
unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (37 ms vs. 74 ms) |
5 times less (728 kB vs. 4 MB) |
unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (79 ms vs. 75 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 (49 ns vs. 40 ns) |
similar (80 ms vs. 77 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 (49 ns vs. 40 ns) |
similar (117 ms vs. 80 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) |
28 times less (49 ns vs. 1 μs) |
similar (122 ms vs. 80 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. 40 ns) |
2 times less (38 ms vs. 80 ms) |
5 times less (733 kB vs. 4 MB) |
unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (77 ms vs. 75 ms) |
similar (3 MB vs. 5 MB) |
unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (81 ms vs. 77 ms) |
similar (3 MB vs. 5 MB) |
unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (87 ms vs. 79 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) |
27 times less (49 ns vs. 1 μs) |
similar (121 ms vs. 79 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 (49 ns vs. 40 ns) |
similar (29 ms vs. 49 ms) |
5 times less (796 kB vs. 4 MB) |
unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (71 ms vs. 50 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 (49 ns vs. 40 ns) |
similar (75 ms vs. 52 ms) |
similar (3 MB vs. 6 MB) |
unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (82 ms vs. 56 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) |
710 times less (49 ns vs. 35 μs) |
2 times more (113 ms vs. 54 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 (40 ns vs. 49 ns) |
2 times less (35 ms vs. 72 ms) |
6 times less (348 kB vs. 2 MB) |
unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (35 ms vs. 68 ms) |
5 times less (382 kB vs. 2 MB) |
unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (27 ms vs. 44 ms) |
6 times less (413 kB vs. 2 MB) |
unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times less (35 ms vs. 71 ms) |
5 times less (407 kB vs. 2 MB) |
unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (79 ms vs. 71 ms) |
similar (2 MB vs. 2 MB) |
unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (79 ms vs. 72 ms) |
similar (2 MB vs. 2 MB) |
unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (85 ms vs. 72 ms) |
similar (3 MB vs. 3 MB) |
unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (104 ms vs. 75 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 (49 ns vs. 40 ns) |
similar (28 ms vs. 44 ms) |
5 times less (443 kB vs. 3 MB) |
unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (41 ns vs. 40 ns) |
similar (71 ms vs. 45 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 (40 ns vs. 40 ns) |
similar (71 ms vs. 45 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 (49 ns vs. 49 ns) |
similar (76 ms vs. 46 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 (40 ns vs. 49 ns) |
similar (99 ms vs. 50 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 (40 ns vs. 40 ns) |
2 times less (36 ms vs. 72 ms) |
6 times less (407 kB vs. 3 MB) |
unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (76 ms vs. 79 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 (40 ns vs. 40 ns) |
similar (81 ms vs. 93 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 (40 ns vs. 40 ns) |
similar (82 ms vs. 91 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) |
34 times less (40 ns vs. 1 μs) |
similar (104 ms vs. 79 ms) |
similar (6 MB vs. 3 MB) |
unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times less (35 ms vs. 72 ms) |
6 times less (411 kB vs. 3 MB) |
unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (76 ms vs. 78 ms) |
similar (2 MB vs. 3 MB) |
unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (81 ms vs. 92 ms) |
similar (2 MB vs. 3 MB) |
unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (83 ms vs. 92 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) |
28 times less (49 ns vs. 1 μs) |
similar (103 ms vs. 79 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 (49 ns vs. 40 ns) |
similar (28 ms vs. 46 ms) |
6 times less (468 kB vs. 3 MB) |
unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (73 ms vs. 47 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 (49 ns vs. 40 ns) |
similar (70 ms vs. 49 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 (70 ns vs. 49 ns) |
similar (76 ms vs. 48 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) |
688 times less (49 ns vs. 34 μs) |
similar (99 ms vs. 54 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. 40 ns) |
2 times less (35 ms vs. 70 ms) |
6 times less (348 kB vs. 2 MB) |
unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times less (35 ms vs. 70 ms) |
6 times less (382 kB vs. 2 MB) |
unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (28 ms vs. 45 ms) |
6 times less (413 kB vs. 3 MB) |
unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 72 ms) |
5 times less (407 kB vs. 2 MB) |
unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (78 ms vs. 71 ms) |
similar (2 MB vs. 2 MB) |
unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (78 ms vs. 71 ms) |
similar (2 MB vs. 2 MB) |
unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (83 ms vs. 74 ms) |
similar (3 MB vs. 3 MB) |
unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (105 ms vs. 76 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 (40 ns vs. 40 ns) |
similar (28 ms vs. 44 ms) |
6 times less (443 kB vs. 3 MB) |
unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (69 ms vs. 47 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 (40 ns vs. 40 ns) |
similar (71 ms vs. 46 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 (40 ns vs. 49 ns) |
similar (76 ms vs. 47 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 (40 ns vs. 40 ns) |
2 times more (98 ms vs. 48 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. 49 ns) |
2 times less (36 ms vs. 73 ms) |
6 times less (407 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. 40 ns) |
similar (78 ms vs. 79 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 (40 ns vs. 49 ns) |
similar (80 ms vs. 93 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 (40 ns vs. 40 ns) |
similar (83 ms vs. 91 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) |
27 times less (49 ns vs. 1 μs) |
similar (104 ms vs. 83 ms) |
similar (6 MB vs. 3 MB) |
unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times less (36 ms vs. 72 ms) |
6 times less (411 kB vs. 3 MB) |
unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (78 ms vs. 79 ms) |
similar (2 MB vs. 3 MB) |
unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (78 ms vs. 93 ms) |
similar (2 MB vs. 3 MB) |
unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (83 ms vs. 93 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) |
34 times less (40 ns vs. 1 μs) |
similar (105 ms vs. 79 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 (49 ns vs. 40 ns) |
similar (28 ms vs. 46 ms) |
6 times less (468 kB vs. 3 MB) |
unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (71 ms vs. 47 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 (49 ns vs. 40 ns) |
similar (73 ms vs. 47 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 (49 ns vs. 49 ns) |
similar (76 ms vs. 49 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) |
729 times less (49 ns vs. 36 μs) |
similar (98 ms vs. 55 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 (49 ns vs. 40 ns) |
2 times less (35 ms vs. 82 ms) |
9 times less (363 kB vs. 3 MB) |
unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
2 times less (36 ms vs. 77 ms) |
8 times less (397 kB vs. 3 MB) |
unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
similar (29 ms vs. 53 ms) |
8 times less (429 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. 49 ns) |
2 times less (38 ms vs. 82 ms) |
6 times less (550 kB vs. 4 MB) |
unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 49 ns) |
similar (83 ms vs. 82 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 (49 ns vs. 40 ns) |
similar (80 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 (49 ns vs. 40 ns) |
similar (91 ms vs. 84 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 (40 ns vs. 49 ns) |
similar (145 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 (40 ns vs. 49 ns) |
similar (29 ms vs. 54 ms) |
6 times less (586 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 (40 ns vs. 49 ns) |
similar (72 ms vs. 54 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 (40 ns vs. 40 ns) |
similar (74 ms vs. 54 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 (49 ns vs. 40 ns) |
similar (84 ms vs. 55 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 (49 ns vs. 49 ns) |
2 times more (136 ms vs. 58 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 (40 ns vs. 40 ns) |
2 times less (37 ms vs. 82 ms) |
7 times less (557 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 (40 ns vs. 49 ns) |
similar (79 ms vs. 90 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 (49 ns vs. 49 ns) |
similar (85 ms vs. 107 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 (49 ns vs. 49 ns) |
similar (91 ms vs. 108 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) |
34 times less (40 ns vs. 1 μs) |
similar (146 ms vs. 91 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 (49 ns vs. 40 ns) |
2 times less (37 ms vs. 82 ms) |
7 times less (564 kB vs. 4 MB) |
unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 49 ns) |
similar (84 ms vs. 91 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 (40 ns vs. 40 ns) |
similar (81 ms vs. 108 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 (49 ns vs. 49 ns) |
similar (92 ms vs. 107 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) |
27 times less (49 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 (49 ns vs. 40 ns) |
similar (29 ms vs. 54 ms) |
7 times less (618 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 (49 ns vs. 40 ns) |
similar (71 ms vs. 56 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 (40 ns vs. 49 ns) |
similar (74 ms vs. 58 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 (40 ns vs. 49 ns) |
similar (86 ms vs. 58 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) |
862 times less (40 ns vs. 34 μs) |
2 times more (135 ms vs. 64 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 (40 ns vs. 40 ns) |
similar (43 ms vs. 62 ms) |
9 times less (511 kB vs. 5 MB) |
unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 40 ns) |
similar (43 ms vs. 62 ms) |
7 times less (618 kB vs. 5 MB) |
unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 49 ns) |
2 times less (29 ms vs. 60 ms) |
6 times less (716 kB vs. 5 MB) |
unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 49 ns) |
similar (45 ms vs. 63 ms) |
6 times less (783 kB vs. 5 MB) |
unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 60 ns) |
similar (90 ms vs. 64 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 (40 ns vs. 49 ns) |
similar (89 ms vs. 64 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 (49 ns vs. 49 ns) |
similar (103 ms vs. 66 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 (49 ns vs. 50 ns) |
2 times more (190 ms vs. 66 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 (49 ns vs. 49 ns) |
similar (30 ms vs. 59 ms) |
5 times less (891 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 (49 ns vs. 50 ns) |
similar (74 ms vs. 61 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 (49 ns vs. 49 ns) |
similar (76 ms vs. 63 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 (49 ns vs. 49 ns) |
similar (90 ms vs. 69 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 (49 ns vs. 49 ns) |
2 times more (179 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 (40 ns vs. 60 ns) |
similar (54 ms vs. 65 ms) |
6 times less (845 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 (40 ns vs. 89 ns) |
similar (97 ms vs. 66 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) |
3 times less (40 ns vs. 130 ns) |
similar (111 ms vs. 66 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) |
9 times less (40 ns vs. 390 ns) |
similar (126 ms vs. 66 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) |
34 times less (40 ns vs. 1 μs) |
3 times more (210 ms vs. 67 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 (40 ns vs. 60 ns) |
similar (48 ms vs. 68 ms) |
5 times less (925 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) |
43 times less (40 ns vs. 2 μs) |
similar (97 ms vs. 67 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) |
137 times less (40 ns vs. 5 μs) |
similar (111 ms vs. 69 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) |
470 times less (49 ns vs. 23 μs) |
similar (129 ms vs. 68 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) |
1960 times less (49 ns vs. 96 μs) |
3 times more (215 ms vs. 68 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 (49 ns vs. 90 ns) |
2 times less (30 ms vs. 65 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) |
12 times less (40 ns vs. 491 ns) |
similar (83 ms vs. 66 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) |
27 times less (40 ns vs. 1 μs) |
similar (78 ms vs. 67 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 (49 ns vs. 5 μs) |
similar (91 ms vs. 67 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) |
1384 times less (40 ns vs. 55 μs) |
2 times more (180 ms vs. 67 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 (40 ns vs. 40 ns) |
similar (43 ms vs. 57 ms) |
9 times less (511 kB vs. 4 MB) |
unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 49 ns) |
similar (43 ms vs. 58 ms) |
7 times less (618 kB vs. 5 MB) |
unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (29 ms vs. 56 ms) |
6 times less (718 kB vs. 5 MB) |
unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
similar (44 ms vs. 58 ms) |
5 times less (783 kB vs. 5 MB) |
unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 49 ns) |
similar (88 ms vs. 61 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 (40 ns vs. 49 ns) |
similar (89 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 (49 ns vs. 49 ns) |
similar (104 ms vs. 65 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 (49 ns vs. 49 ns) |
3 times more (195 ms vs. 62 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 (40 ns vs. 49 ns) |
similar (30 ms vs. 57 ms) |
5 times less (891 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 (40 ns vs. 49 ns) |
similar (74 ms vs. 59 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 (49 ns vs. 49 ns) |
similar (75 ms vs. 60 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 (49 ns vs. 49 ns) |
similar (91 ms vs. 61 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 (40 ns vs. 49 ns) |
3 times more (191 ms vs. 61 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 (40 ns vs. 69 ns) |
similar (47 ms vs. 62 ms) |
5 times less (847 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) |
2 times less (40 ns vs. 89 ns) |
similar (96 ms vs. 62 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) |
3 times less (40 ns vs. 130 ns) |
similar (111 ms vs. 63 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) |
9 times less (40 ns vs. 380 ns) |
2 times more (125 ms vs. 62 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) |
30 times less (49 ns vs. 2 μs) |
3 times more (216 ms vs. 62 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 (40 ns vs. 69 ns) |
similar (48 ms vs. 62 ms) |
5 times less (925 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) |
44 times less (40 ns vs. 2 μs) |
similar (99 ms vs. 64 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) |
112 times less (49 ns vs. 5 μs) |
similar (110 ms vs. 63 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) |
472 times less (49 ns vs. 23 μs) |
similar (126 ms vs. 63 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) |
2406 times less (40 ns vs. 96 μs) |
3 times more (217 ms vs. 64 ms) |
2 times more (11 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) |
2 times less (40 ns vs. 89 ns) |
2 times less (30 ms vs. 61 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) |
12 times less (40 ns vs. 510 ns) |
similar (74 ms vs. 64 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) |
29 times less (40 ns vs. 1 μs) |
similar (78 ms vs. 63 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) |
105 times less (49 ns vs. 5 μs) |
similar (92 ms vs. 63 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) |
1109 times less (49 ns vs. 54 μs) |
3 times more (187 ms vs. 62 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 (49 ns vs. 49 ns) |
similar (35 ms vs. 64 ms) |
2 times less (415 kB vs. 1 MB) |
unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (36 ms vs. 64 ms) |
2 times less (451 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. 49 ns) |
similar (30 ms vs. 39 ms) |
2 times less (765 kB vs. 2 MB) |
unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (37 ms vs. 67 ms) |
2 times less (674 kB vs. 1 MB) |
unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (79 ms vs. 68 ms) |
similar (3 MB vs. 1 MB) |
unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (81 ms vs. 69 ms) |
similar (3 MB vs. 1 MB) |
unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (90 ms vs. 68 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 (49 ns vs. 49 ns) |
similar (131 ms vs. 73 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 (49 ns vs. 49 ns) |
similar (29 ms vs. 40 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 (49 ns vs. 49 ns) |
similar (72 ms vs. 39 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. 49 ns) |
similar (74 ms vs. 40 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 (49 ns vs. 49 ns) |
similar (78 ms vs. 43 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 (49 ns vs. 49 ns) |
2 times more (103 ms vs. 41 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 (49 ns vs. 40 ns) |
similar (41 ms vs. 69 ms) |
2 times less (681 kB vs. 1 MB) |
unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (82 ms vs. 78 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 (49 ns vs. 40 ns) |
similar (85 ms vs. 97 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. 40 ns) |
similar (100 ms vs. 126 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 (49 ns vs. 1 μs) |
2 times more (164 ms vs. 78 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 (40 ns vs. 49 ns) |
similar (38 ms vs. 68 ms) |
2 times less (763 kB vs. 2 MB) |
unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (82 ms vs. 80 ms) |
similar (3 MB vs. 2 MB) |
unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (85 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 (40 ns vs. 49 ns) |
similar (100 ms vs. 126 ms) |
similar (6 MB vs. 4 MB) |
unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 43 LLVM lines) |
27 times less (49 ns vs. 1 μs) |
2 times more (160 ms vs. 77 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 (49 ns vs. 60 ns) |
similar (30 ms vs. 39 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 (49 ns vs. 60 ns) |
similar (74 ms vs. 43 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. 50 ns) |
similar (76 ms vs. 47 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 (49 ns vs. 49 ns) |
similar (87 ms vs. 55 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) |
590 times less (60 ns vs. 35 μs) |
2 times more (110 ms vs. 46 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 (40 ns vs. 40 ns) |
similar (36 ms vs. 61 ms) |
2 times less (415 kB vs. 1 MB) |
unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (36 ms vs. 60 ms) |
2 times less (449 kB vs. 1 MB) |
unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (29 ms vs. 35 ms) |
2 times less (765 kB vs. 2 MB) |
unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (37 ms vs. 65 ms) |
2 times less (675 kB vs. 1 MB) |
unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (78 ms vs. 65 ms) |
similar (3 MB vs. 1 MB) |
unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (81 ms vs. 65 ms) |
similar (3 MB vs. 1 MB) |
unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (88 ms vs. 65 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 (49 ns vs. 49 ns) |
similar (128 ms vs. 69 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 (49 ns vs. 49 ns) |
similar (30 ms vs. 37 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 (51 ns vs. 49 ns) |
similar (71 ms vs. 37 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 (49 ns vs. 49 ns) |
similar (73 ms vs. 37 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 (49 ns vs. 49 ns) |
similar (79 ms vs. 40 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 (49 ns vs. 49 ns) |
2 times more (112 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 (49 ns vs. 40 ns) |
similar (40 ms vs. 66 ms) |
2 times less (682 kB vs. 1 MB) |
unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (82 ms vs. 75 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 (40 ns vs. 40 ns) |
similar (85 ms vs. 96 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 (40 ns vs. 40 ns) |
similar (99 ms vs. 96 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 (49 ns vs. 1 μs) |
2 times more (166 ms vs. 73 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 (40 ns vs. 40 ns) |
similar (38 ms vs. 65 ms) |
2 times less (762 kB vs. 2 MB) |
unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (83 ms vs. 76 ms) |
similar (3 MB vs. 2 MB) |
unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (85 ms vs. 97 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. 49 ns) |
similar (100 ms vs. 96 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) |
33 times less (40 ns vs. 1 μs) |
2 times more (166 ms vs. 74 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 (49 ns vs. 49 ns) |
similar (30 ms vs. 36 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 (49 ns vs. 49 ns) |
similar (72 ms vs. 38 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 (49 ns vs. 49 ns) |
similar (76 ms vs. 41 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. 49 ns) |
similar (82 ms vs. 44 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) |
736 times less (49 ns vs. 36 μs) |
2 times more (111 ms vs. 44 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 (49 ns vs. 49 ns) |
3 times less (34 ms vs. 130 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 (40 ns vs. 49 ns) |
3 times less (34 ms vs. 133 ms) |
20 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 (49 ns vs. 49 ns) |
3 times less (27 ms vs. 100 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 (40 ns vs. 49 ns) |
3 times less (38 ms vs. 140 ms) |
16 times less (1 MB vs. 24 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 (49 ns vs. 49 ns) |
similar (80 ms vs. 139 ms) |
6 times less (4 MB vs. 24 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 (49 ns vs. 49 ns) |
similar (84 ms vs. 143 ms) |
5 times less (4 MB vs. 24 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. 49 ns) |
similar (99 ms vs. 140 ms) |
2 times less (9 MB vs. 24 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 (40 ns vs. 49 ns) |
similar (183 ms vs. 140 ms) |
similar (26 MB vs. 24 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 (40 ns vs. 49 ns) |
3 times less (31 ms vs. 113 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 (49 ns vs. 49 ns) |
similar (74 ms vs. 111 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 (49 ns vs. 49 ns) |
similar (77 ms vs. 113 ms) |
5 times less (5 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 (49 ns vs. 49 ns) |
similar (92 ms vs. 109 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 (40 ns vs. 49 ns) |
similar (175 ms vs. 111 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 (49 ns vs. 60 ns) |
3 times less (38 ms vs. 141 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) |
2 times less (40 ns vs. 80 ns) |
similar (80 ms vs. 149 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. 120 ns) |
similar (84 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 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
7 times less (49 ns vs. 380 ns) |
similar (100 ms vs. 144 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) |
34 times less (40 ns vs. 1 μs) |
similar (184 ms vs. 142 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 (40 ns vs. 60 ns) |
3 times less (39 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) |
similar (49 ns vs. 80 ns) |
similar (82 ms vs. 143 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 (49 ns vs. 130 ns) |
similar (90 ms vs. 146 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) |
9 times less (40 ns vs. 380 ns) |
similar (102 ms vs. 143 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) |
34 times less (40 ns vs. 1 μs) |
similar (186 ms vs. 144 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 (49 ns vs. 80 ns) |
3 times less (30 ms vs. 113 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 (49 ns vs. 150 ns) |
similar (74 ms vs. 114 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 (49 ns vs. 261 ns) |
similar (77 ms vs. 120 ms) |
5 times less (4 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) |
52 times less (40 ns vs. 2 μs) |
similar (91 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 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
869 times less (40 ns vs. 35 μs) |
similar (177 ms vs. 115 ms) |
similar (27 MB vs. 25 MB) |
unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
3 times less (34 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 (49 ns vs. 49 ns) |
3 times less (35 ms vs. 120 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 (49 ns vs. 40 ns) |
3 times less (27 ms vs. 93 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 (49 ns vs. 49 ns) |
3 times less (38 ms vs. 131 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 (49 ns vs. 49 ns) |
similar (83 ms vs. 133 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 (49 ns vs. 49 ns) |
similar (83 ms vs. 132 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 (49 ns vs. 49 ns) |
similar (104 ms vs. 133 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 (49 ns vs. 49 ns) |
similar (182 ms vs. 132 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 (49 ns vs. 49 ns) |
3 times less (30 ms vs. 106 ms) |
16 times less (2 MB vs. 24 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 (49 ns vs. 49 ns) |
similar (75 ms vs. 101 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 (49 ns vs. 49 ns) |
similar (76 ms vs. 101 ms) |
5 times less (5 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 (49 ns vs. 49 ns) |
similar (93 ms vs. 105 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. 49 ns) |
similar (176 ms vs. 102 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. 7 LLVM lines) |
similar (49 ns vs. 60 ns) |
3 times less (39 ms vs. 133 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 (49 ns vs. 80 ns) |
similar (80 ms vs. 136 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) |
3 times less (40 ns vs. 120 ns) |
similar (87 ms vs. 145 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) |
7 times less (49 ns vs. 380 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 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
34 times less (40 ns vs. 1 μs) |
similar (186 ms vs. 133 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. 7 LLVM lines) |
similar (49 ns vs. 60 ns) |
3 times less (39 ms vs. 133 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) |
2 times less (40 ns vs. 80 ns) |
similar (82 ms vs. 134 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. 120 ns) |
similar (86 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 |
distinct nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
9 times less (40 ns vs. 390 ns) |
similar (102 ms vs. 136 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) |
28 times less (49 ns vs. 1 μs) |
similar (183 ms vs. 135 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) |
similar (49 ns vs. 80 ns) |
3 times less (31 ms vs. 104 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 (49 ns vs. 140 ns) |
similar (77 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 (49 ns vs. 260 ns) |
similar (77 ms vs. 109 ms) |
5 times less (4 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) |
51 times less (40 ns vs. 2 μs) |
similar (95 ms vs. 108 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) |
889 times less (40 ns vs. 36 μs) |
similar (177 ms vs. 105 ms) |
similar (27 MB vs. 25 MB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (32 ms vs. 29 ms) |
similar (197 kB vs. 180 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (33 ms vs. 32 ms) |
similar (237 kB vs. 244 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (30 ms vs. 30 ms) |
similar (211 kB vs. 233 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (34 ms vs. 34 ms) |
similar (240 kB vs. 403 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (51 ms vs. 34 ms) |
2 times less (305 kB vs. 702 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (52 ms vs. 35 ms) |
3 times less (326 kB vs. 1 MB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (55 ms vs. 28 ms) |
similar (453 kB vs. 267 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times more (65 ms vs. 29 ms) |
3 times more (960 kB vs. 267 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (31 ms vs. 33 ms) |
similar (214 kB vs. 417 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (48 ms vs. 34 ms) |
3 times less (303 kB vs. 930 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (48 ms vs. 36 ms) |
5 times less (389 kB vs. 2 MB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (54 ms vs. 30 ms) |
similar (452 kB vs. 272 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times more (60 ms vs. 30 ms) |
3 times more (959 kB vs. 272 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (36 ms vs. 33 ms) |
similar (285 kB vs. 451 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (51 ms vs. 37 ms) |
2 times less (351 kB vs. 780 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (51 ms vs. 35 ms) |
3 times less (372 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 (49 ns vs. 80 ns) |
similar (54 ms vs. 34 ms) |
similar (500 kB vs. 605 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 31 LLVM lines) |
similar (49 ns vs. 80 ns) |
similar (64 ms vs. 35 ms) |
similar (1006 kB vs. 605 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (35 ms vs. 39 ms) |
similar (240 kB vs. 403 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (52 ms vs. 34 ms) |
2 times less (306 kB vs. 703 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (55 ms vs. 35 ms) |
4 times less (327 kB vs. 1 MB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (54 ms vs. 29 ms) |
similar (454 kB vs. 268 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times more (65 ms vs. 30 ms) |
3 times more (961 kB vs. 268 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (31 ms vs. 39 ms) |
2 times less (239 kB vs. 498 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (50 ms vs. 35 ms) |
3 times less (304 kB vs. 1 MB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (49 ms vs. 37 ms) |
6 times less (326 kB vs. 2 MB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (51 ms vs. 29 ms) |
similar (453 kB vs. 273 kB) |
unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times more (63 ms vs. 29 ms) |
3 times more (960 kB vs. 276 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (40 ms vs. 38 ms) |
similar (356 kB vs. 343 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (35 ms vs. 40 ms) |
similar (300 kB vs. 397 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (28 ms vs. 35 ms) |
similar (338 kB vs. 469 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (35 ms vs. 41 ms) |
similar (305 kB vs. 559 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (54 ms vs. 54 ms) |
2 times less (374 kB vs. 930 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (53 ms vs. 54 ms) |
3 times less (405 kB vs. 2 MB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (56 ms vs. 39 ms) |
similar (590 kB vs. 689 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (66 ms vs. 38 ms) |
similar (1 MB vs. 689 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (29 ms vs. 38 ms) |
similar (350 kB vs. 667 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (46 ms vs. 57 ms) |
2 times less (457 kB vs. 1 MB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (46 ms vs. 52 ms) |
4 times less (513 kB vs. 2 MB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (50 ms vs. 41 ms) |
similar (847 kB vs. 694 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (61 ms vs. 40 ms) |
3 times more (2 MB vs. 695 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (41 ms vs. 36 ms) |
similar (394 kB vs. 465 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (59 ms vs. 40 ms) |
similar (473 kB vs. 924 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (58 ms vs. 38 ms) |
3 times less (474 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) |
similar (49 ns vs. 89 ns) |
similar (61 ms vs. 42 ms) |
similar (621 kB vs. 708 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
128 |
distinct empty & nonempty singleton Tuples |
better (optimized out vs. 30 LLVM lines) |
similar (49 ns vs. 69 ns) |
similar (73 ms vs. 41 ms) |
similar (1 MB vs. 708 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (35 ms vs. 38 ms) |
similar (309 kB vs. 520 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (52 ms vs. 39 ms) |
2 times less (387 kB vs. 895 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (54 ms vs. 40 ms) |
3 times less (430 kB vs. 2 MB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (optimized out vs. 30 LLVM lines) |
9 times less (40 ns vs. 380 ns) |
similar (57 ms vs. 41 ms) |
similar (615 kB vs. 708 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 30 LLVM lines) |
34 times less (40 ns vs. 1 μs) |
similar (66 ms vs. 40 ms) |
similar (1 MB vs. 708 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (29 ms vs. 37 ms) |
similar (379 kB vs. 719 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (46 ms vs. 40 ms) |
2 times less (470 kB vs. 1 MB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (47 ms vs. 46 ms) |
5 times less (538 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) |
53 times less (40 ns vs. 2 μs) |
similar (49 ms vs. 42 ms) |
similar (872 kB vs. 750 kB) |
unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (optimized out vs. 525 kB allocs) |
851 times less (40 ns vs. 34 μs) |
similar (61 ms vs. 43 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 (40 ns vs. 49 ns) |
similar (47 ms vs. 43 ms) |
similar (271 kB vs. 200 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 (49 ns vs. 40 ns) |
similar (49 ms vs. 46 ms) |
similar (304 kB vs. 265 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 (49 ns vs. 49 ns) |
similar (45 ms vs. 44 ms) |
similar (313 kB vs. 254 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 (49 ns vs. 40 ns) |
similar (48 ms vs. 47 ms) |
similar (325 kB vs. 424 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 (49 ns vs. 40 ns) |
similar (67 ms vs. 47 ms) |
similar (431 kB vs. 723 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 (49 ns vs. 49 ns) |
similar (70 ms vs. 49 ms) |
2 times less (536 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 (40 ns vs. 49 ns) |
similar (86 ms vs. 50 ms) |
2 times more (1 MB vs. 395 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. 40 ns) |
3 times more (162 ms vs. 49 ms) |
9 times more (4 MB vs. 395 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 (49 ns vs. 49 ns) |
similar (49 ms vs. 46 ms) |
similar (354 kB vs. 437 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 (49 ns vs. 49 ns) |
similar (66 ms vs. 48 ms) |
similar (514 kB vs. 951 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 (50 ns vs. 49 ns) |
similar (69 ms vs. 49 ms) |
2 times less (755 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 (49 ns vs. 49 ns) |
similar (95 ms vs. 50 ms) |
4 times more (2 MB vs. 399 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 (49 ns vs. 49 ns) |
3 times more (181 ms vs. 50 ms) |
14 times more (6 MB vs. 400 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 (49 ns vs. 49 ns) |
similar (54 ms vs. 52 ms) |
similar (369 kB vs. 465 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 (49 ns vs. 40 ns) |
similar (79 ms vs. 67 ms) |
similar (570 kB vs. 1014 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 (49 ns vs. 49 ns) |
2 times more (95 ms vs. 46 ms) |
similar (813 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 (49 ns vs. 100 ns) |
similar (116 ms vs. 67 ms) |
2 times more (1 MB vs. 580 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) |
2 times less (40 ns vs. 80 ns) |
3 times more (206 ms vs. 54 ms) |
8 times more (4 MB vs. 498 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 (40 ns vs. 40 ns) |
similar (53 ms vs. 53 ms) |
similar (374 kB vs. 465 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 (49 ns vs. 40 ns) |
similar (80 ms vs. 68 ms) |
similar (574 kB vs. 1019 kB) |
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 (40 ns vs. 49 ns) |
similar (97 ms vs. 49 ms) |
similar (817 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 (40 ns vs. 100 ns) |
similar (116 ms vs. 63 ms) |
2 times more (1 MB vs. 584 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 (49 ns vs. 80 ns) |
3 times more (196 ms vs. 56 ms) |
7 times more (4 MB vs. 502 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 (49 ns vs. 49 ns) |
similar (52 ms vs. 50 ms) |
similar (436 kB vs. 555 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 (49 ns vs. 49 ns) |
similar (79 ms vs. 68 ms) |
2 times less (691 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 (49 ns vs. 49 ns) |
2 times more (104 ms vs. 51 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) |
4 times less (60 ns vs. 280 ns) |
similar (126 ms vs. 65 ms) |
3 times more (2 MB vs. 558 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) |
13 times less (49 ns vs. 661 ns) |
4 times more (248 ms vs. 55 ms) |
12 times more (6 MB vs. 492 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 (40 ns vs. 40 ns) |
similar (51 ms vs. 51 ms) |
similar (408 kB vs. 404 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. 49 ns) |
similar (56 ms vs. 54 ms) |
similar (441 kB vs. 463 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 (49 ns vs. 49 ns) |
similar (45 ms vs. 58 ms) |
similar (527 kB vs. 530 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 (40 ns vs. 40 ns) |
similar (51 ms vs. 54 ms) |
similar (465 kB vs. 625 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 (40 ns vs. 40 ns) |
similar (72 ms vs. 67 ms) |
similar (581 kB vs. 950 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 (49 ns vs. 40 ns) |
similar (73 ms vs. 67 ms) |
2 times less (702 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 (49 ns vs. 49 ns) |
similar (89 ms vs. 60 ms) |
similar (1 MB vs. 758 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 (40 ns vs. 40 ns) |
2 times more (161 ms vs. 59 ms) |
5 times more (4 MB vs. 758 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 (49 ns vs. 49 ns) |
similar (47 ms vs. 51 ms) |
similar (583 kB vs. 728 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 (49 ns vs. 49 ns) |
similar (67 ms vs. 69 ms) |
similar (778 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 (49 ns vs. 49 ns) |
similar (70 ms vs. 66 ms) |
2 times less (1005 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 (49 ns vs. 49 ns) |
similar (90 ms vs. 56 ms) |
3 times more (2 MB vs. 762 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 (49 ns vs. 49 ns) |
3 times more (188 ms vs. 57 ms) |
10 times more (8 MB vs. 763 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 (49 ns vs. 49 ns) |
similar (56 ms vs. 49 ms) |
similar (508 kB vs. 531 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 (49 ns vs. 40 ns) |
similar (82 ms vs. 49 ms) |
similar (714 kB vs. 852 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 (49 ns vs. 49 ns) |
similar (98 ms vs. 52 ms) |
similar (965 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 (40 ns vs. 40 ns) |
2 times more (117 ms vs. 56 ms) |
2 times more (2 MB vs. 822 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 (40 ns vs. 40 ns) |
3 times more (200 ms vs. 57 ms) |
5 times more (5 MB vs. 822 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 (40 ns vs. 40 ns) |
similar (57 ms vs. 52 ms) |
similar (513 kB vs. 586 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 (49 ns vs. 40 ns) |
similar (82 ms vs. 53 ms) |
similar (718 kB vs. 907 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 (97 ms vs. 55 ms) |
similar (969 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 (40 ns vs. 40 ns) |
2 times more (117 ms vs. 56 ms) |
2 times more (2 MB vs. 822 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. 49 ns) |
3 times more (200 ms vs. 56 ms) |
5 times more (5 MB vs. 822 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 (49 ns vs. 49 ns) |
similar (53 ms vs. 51 ms) |
similar (663 kB vs. 781 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 (60 ns vs. 49 ns) |
similar (79 ms vs. 53 ms) |
similar (947 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 (49 ns vs. 49 ns) |
similar (100 ms vs. 58 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 (60 ns vs. 50 ns) |
2 times more (128 ms vs. 58 ms) |
3 times more (3 MB vs. 806 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 (49 ns vs. 49 ns) |
4 times more (251 ms vs. 57 ms) |
10 times more (8 MB vs. 812 kB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (28 ms vs. 29 ms) |
3 times less (166 kB vs. 602 kB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (28 ms vs. 29 ms) |
2 times less (243 kB vs. 639 kB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (29 ms vs. 34 ms) |
similar (444 kB vs. 826 kB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (28 ms vs. 29 ms) |
2 times less (296 kB vs. 702 kB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (52 ms vs. 28 ms) |
2 times more (2 MB vs. 828 kB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (55 ms vs. 29 ms) |
2 times more (2 MB vs. 933 kB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 128 B allocs) |
12 times less (49 ns vs. 611 ns) |
similar (58 ms vs. 113 ms) |
similar (4 MB vs. 7 MB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 128 B allocs) |
47 times less (40 ns vs. 2 μs) |
similar (74 ms vs. 111 ms) |
similar (10 MB vs. 7 MB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (29 ms vs. 34 ms) |
similar (630 kB vs. 956 kB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 49 ns) |
similar (55 ms vs. 34 ms) |
2 times more (3 MB vs. 1 MB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (12 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (57 ms vs. 34 ms) |
2 times more (4 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) |
23 times less (60 ns vs. 1 μs) |
similar (70 ms vs. 134 ms) |
similar (10 MB vs. 7 MB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (1394 LLVM lines vs. 5 kB allocs) |
60 times more (290 μs vs. 5 μs) |
similar (172 ms vs. 147 ms) |
4 times more (29 MB vs. 7 MB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (28 ms vs. 28 ms) |
2 times less (296 kB vs. 779 kB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (53 ms vs. 28 ms) |
2 times more (2 MB vs. 998 kB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (53 ms vs. 29 ms) |
similar (3 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) |
23 times less (40 ns vs. 931 ns) |
2 times less (57 ms vs. 140 ms) |
2 times less (4 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) |
62 times less (49 ns vs. 3 μs) |
similar (73 ms vs. 145 ms) |
similar (9 MB vs. 8 MB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (28 ms vs. 28 ms) |
2 times less (343 kB vs. 786 kB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (53 ms vs. 28 ms) |
2 times more (2 MB vs. 1006 kB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (53 ms vs. 29 ms) |
similar (3 MB vs. 1 MB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
32 |
distinct nonempty singleton Tuples |
better (optimized out vs. 640 B allocs) |
93 times less (40 ns vs. 4 μs) |
2 times less (57 ms vs. 169 ms) |
2 times less (4 MB vs. 9 MB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
128 |
distinct nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
312 times less (49 ns vs. 15 μs) |
2 times less (75 ms vs. 169 ms) |
similar (10 MB vs. 9 MB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (49 ns vs. 50 ns) |
similar (29 ms vs. 33 ms) |
similar (702 kB vs. 1 MB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
similar (17 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (55 ms vs. 34 ms) |
2 times more (3 MB vs. 1 MB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
similar (30 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (60 ms vs. 38 ms) |
similar (4 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) |
68 times less (89 ns vs. 6 μs) |
2 times less (76 ms vs. 186 ms) |
similar (10 MB vs. 9 MB) |
unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (1381 LLVM lines vs. 533 kB allocs) |
5 times more (347 μs vs. 60 μs) |
similar (184 ms vs. 188 ms) |
3 times more (29 MB vs. 9 MB) |
unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (28 ms vs. 30 ms) |
4 times less (176 kB vs. 778 kB) |
unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (29 ms vs. 30 ms) |
3 times less (209 kB vs. 813 kB) |
unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (28 ms vs. 35 ms) |
2 times less (422 kB vs. 1003 kB) |
unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (35 ms vs. 30 ms) |
2 times less (348 kB vs. 879 kB) |
unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
4 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times more (76 ms vs. 29 ms) |
2 times more (2 MB vs. 1013 kB) |
unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
3 times more (106 ms vs. 29 ms) |
2 times more (3 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) |
14 times less (49 ns vs. 731 ns) |
2 times more (288 ms vs. 119 ms) |
similar (6 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) |
51 times less (40 ns vs. 2 μs) |
8 times more (1 s vs. 122 ms) |
2 times more (20 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 (49 ns vs. 49 ns) |
similar (29 ms vs. 36 ms) |
similar (719 kB 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 (49 ns vs. 49 ns) |
similar (55 ms vs. 34 ms) |
2 times more (3 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 (49 ns vs. 49 ns) |
similar (58 ms vs. 35 ms) |
2 times more (4 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 (83 ms vs. 145 ms) |
similar (14 MB vs. 7 MB) |
unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (1394 LLVM lines vs. 7 kB allocs) |
57 times more (295 μs vs. 5 μs) |
similar (204 ms vs. 156 ms) |
5 times more (42 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 (49 ns vs. 40 ns) |
similar (36 ms vs. 29 ms) |
2 times less (330 kB vs. 967 kB) |
unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
4 |
distinct empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times more (75 ms vs. 29 ms) |
2 times more (2 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 (49 ns vs. 40 ns) |
3 times more (107 ms vs. 31 ms) |
similar (3 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) |
39 times less (40 ns vs. 2 μs) |
similar (290 ms vs. 155 ms) |
similar (6 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) |
105 times less (49 ns vs. 5 μs) |
6 times more (1 s vs. 156 ms) |
2 times more (20 MB vs. 8 MB) |
unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
2 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (36 ms vs. 29 ms) |
2 times less (352 kB vs. 972 kB) |
unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
4 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times more (78 ms vs. 30 ms) |
2 times more (2 MB vs. 1 MB) |
unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
8 |
distinct nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
3 times more (106 ms vs. 31 ms) |
similar (3 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) |
144 times less (49 ns vs. 7 μs) |
similar (293 ms vs. 179 ms) |
similar (6 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) |
600 times less (49 ns vs. 29 μs) |
5 times more (1 s vs. 182 ms) |
2 times more (20 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 (50 ns vs. 49 ns) |
similar (30 ms vs. 35 ms) |
similar (749 kB 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. 49 ns) |
similar (56 ms vs. 35 ms) |
similar (3 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. 60 ns) |
similar (60 ms vs. 38 ms) |
similar (4 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) |
151 times less (80 ns vs. 12 μs) |
2 times less (84 ms vs. 199 ms) |
similar (14 MB vs. 9 MB) |
unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
128 |
distinct nonempty non-singleton Tuples |
better (1381 LLVM lines vs. 1 MB allocs) |
2 times more (344 μs vs. 120 μs) |
similar (248 ms vs. 199 ms) |
4 times more (43 MB vs. 10 MB) |
unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (46 ms vs. 30 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) |
3 times less (49 ns vs. 150 ns) |
similar (51 ms vs. 47 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 (49 ns vs. 190 ns) |
similar (41 ms vs. 38 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 (49 ns vs. 160 ns) |
similar (61 ms vs. 49 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) |
4 times less (40 ns vs. 190 ns) |
2 times more (112 ms vs. 49 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) |
6 times less (40 ns vs. 241 ns) |
3 times more (165 ms vs. 49 ms) |
2 times more (7 MB vs. 3 MB) |
unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
11 times less (49 ns vs. 571 ns) |
8 times more (494 ms vs. 57 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) |
46 times less (40 ns vs. 2 μs) |
39 times more (2 s vs. 49 ms) |
22 times more (73 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) |
4 times less (49 ns vs. 210 ns) |
similar (48 ms vs. 42 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) |
5 times less (49 ns vs. 261 ns) |
similar (79 ms vs. 42 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) |
7 times less (50 ns vs. 370 ns) |
2 times more (88 ms vs. 43 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) |
21 times less (50 ns vs. 1 μs) |
4 times more (205 ms vs. 48 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) |
21 times more (1 s vs. 53 ms) |
143 times more (479 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) |
11 times less (40 ns vs. 440 ns) |
similar (55 ms vs. 78 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) |
8 times less (40 ns vs. 340 ns) |
similar (114 ms vs. 81 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) |
19 times less (40 ns vs. 791 ns) |
similar (167 ms vs. 84 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) |
68 times less (40 ns vs. 3 μs) |
6 times more (501 ms vs. 80 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) |
279 times less (40 ns vs. 11 μs) |
26 times more (2 s vs. 81 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) |
7 times less (40 ns vs. 310 ns) |
similar (55 ms vs. 84 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 (49 ns vs. 451 ns) |
similar (113 ms vs. 83 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) |
24 times less (40 ns vs. 991 ns) |
2 times more (167 ms vs. 82 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 (49 ns vs. 4 μs) |
6 times more (516 ms vs. 84 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) |
376 times less (40 ns vs. 15 μs) |
27 times more (2 s vs. 83 ms) |
18 times more (121 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. 411 ns) |
similar (47 ms vs. 61 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) |
10 times less (60 ns vs. 602 ns) |
similar (82 ms vs. 56 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) |
22 times less (60 ns vs. 1 μs) |
similar (97 ms vs. 62 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) |
69 times less (80 ns vs. 6 μs) |
6 times more (348 ms vs. 56 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) |
125 times less (310 ns vs. 39 μs) |
62 times more (4 s vs. 59 ms) |
340 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 (40 ns vs. 49 ns) |
similar (58 ms vs. 52 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 (49 ns vs. 160 ns) |
similar (62 ms vs. 83 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) |
4 times less (50 ns vs. 200 ns) |
similar (42 ms vs. 53 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 (49 ns vs. 190 ns) |
similar (66 ms vs. 99 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 (49 ns vs. 220 ns) |
similar (134 ms vs. 103 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 (49 ns vs. 280 ns) |
similar (181 ms vs. 99 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) |
16 times less (40 ns vs. 661 ns) |
5 times more (512 ms vs. 100 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) |
51 times less (40 ns vs. 2 μs) |
19 times more (2 s vs. 101 ms) |
14 times more (74 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) |
4 times less (49 ns vs. 230 ns) |
similar (50 ms vs. 65 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) |
5 times less (49 ns vs. 290 ns) |
similar (87 ms vs. 70 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) |
6 times less (60 ns vs. 410 ns) |
similar (99 ms vs. 64 ms) |
2 times more (12 MB vs. 4 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) |
16 times less (69 ns vs. 1 μs) |
3 times more (236 ms vs. 67 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) |
49 times less (80 ns vs. 4 μs) |
20 times more (1 s vs. 65 ms) |
127 times more (550 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) |
8 times less (40 ns vs. 340 ns) |
similar (69 ms vs. 117 ms) |
2 times less (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) |
75 times less (49 ns vs. 4 μs) |
2 times less (153 ms vs. 329 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) |
165 times less (49 ns vs. 8 μs) |
similar (206 ms vs. 397 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) |
481 times less (49 ns vs. 24 μs) |
similar (548 ms vs. 410 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) |
1843 times less (49 ns vs. 90 μs) |
5 times more (2 s vs. 401 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 (49 ns vs. 431 ns) |
3 times less (75 ms vs. 249 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) |
39 times less (49 ns vs. 2 μs) |
2 times less (140 ms vs. 308 ms) |
2 times less (7 MB vs. 20 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) |
162 times less (40 ns vs. 7 μs) |
similar (208 ms vs. 397 ms) |
2 times less (9 MB vs. 21 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) |
698 times less (40 ns vs. 28 μs) |
similar (559 ms vs. 374 ms) |
similar (23 MB vs. 21 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) |
2857 times less (40 ns vs. 114 μs) |
6 times more (2 s vs. 378 ms) |
5 times more (123 MB vs. 22 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) |
8 times less (49 ns vs. 440 ns) |
similar (50 ms vs. 83 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) |
29 times less (60 ns vs. 2 μs) |
similar (90 ms vs. 143 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) |
99 times less (60 ns vs. 6 μs) |
similar (121 ms vs. 226 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) |
305 times less (100 ns vs. 31 μs) |
similar (396 ms vs. 221 ms) |
14 times more (137 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) |
1250 times less (391 ns vs. 489 μs) |
19 times more (4 s vs. 221 ms) |
161 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) |
3 times less (49 ns vs. 150 ns) |
similar (96 ms vs. 107 ms) |
similar (13 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) |
3 times less (49 ns vs. 150 ns) |
similar (96 ms vs. 106 ms) |
similar (14 MB vs. 15 MB) |
unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (49 LLVM lines vs. 160 B allocs) |
2 times more (490 ns vs. 180 ns) |
similar (76 ms vs. 99 ms) |
similar (14 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) |
5 times less (40 ns vs. 200 ns) |
similar (115 ms vs. 113 ms) |
similar (14 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) |
9 times less (40 ns vs. 380 ns) |
similar (108 ms vs. 113 ms) |
similar (14 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) |
26 times less (40 ns vs. 1 μs) |
similar (109 ms vs. 112 ms) |
similar (14 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) |
382 times less (40 ns vs. 15 μs) |
similar (127 ms vs. 113 ms) |
similar (16 MB vs. 16 MB) |
unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (122 LLVM lines vs. 352 B allocs) |
5 times more (2 μs vs. 310 ns) |
similar (97 ms vs. 113 ms) |
similar (15 MB vs. 16 MB) |
unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
better (422 LLVM lines vs. 1 kB allocs) |
9 times more (8 μs vs. 771 ns) |
similar (119 ms vs. 109 ms) |
similar (17 MB vs. 16 MB) |
unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (1622 LLVM lines vs. 4 kB allocs) |
12 times more (32 μs vs. 3 μs) |
4 times more (438 ms vs. 107 ms) |
similar (26 MB vs. 16 MB) |
unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (25622 LLVM lines vs. 72 kB allocs) |
23 times more (866 μs vs. 37 μs) |
1518 times more (178 s vs. 117 ms) |
11 times more (189 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 (49 ns vs. 310 ns) |
similar (111 ms vs. 141 ms) |
similar (14 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) |
20 times less (49 ns vs. 1 μs) |
similar (116 ms vs. 142 ms) |
similar (16 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) |
78 times less (49 ns vs. 4 μs) |
similar (116 ms vs. 139 ms) |
similar (18 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) |
1116 times less (49 ns vs. 55 μs) |
similar (139 ms vs. 144 ms) |
similar (20 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) |
7 times less (40 ns vs. 300 ns) |
similar (132 ms vs. 148 ms) |
similar (15 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) |
71 times less (40 ns vs. 3 μs) |
similar (115 ms vs. 204 ms) |
similar (16 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) |
312 times less (40 ns vs. 12 μs) |
2 times less (120 ms vs. 342 ms) |
similar (19 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) |
3810 times less (49 ns vs. 187 μs) |
2 times less (138 ms vs. 333 ms) |
similar (21 MB vs. 27 MB) |
unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
better (124 LLVM lines vs. 592 B allocs) |
3 times more (2 μs vs. 520 ns) |
similar (95 ms vs. 150 ms) |
similar (16 MB vs. 21 MB) |
unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (428 LLVM lines vs. 4 kB allocs) |
similar (7 μs vs. 4 μs) |
similar (131 ms vs. 232 ms) |
similar (19 MB vs. 24 MB) |
unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (1646 LLVM lines vs. 31 kB allocs) |
similar (35 μs vs. 32 μs) |
similar (298 ms vs. 437 ms) |
similar (30 MB vs. 28 MB) |
unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
32 |
distinct nonempty non-singleton Tuples |
better (27890 LLVM lines vs. 1 MB allocs) |
2 times more (999 μs vs. 488 μs) |
20 times more (9 s vs. 438 ms) |
6 times more (195 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) |
3 times less (49 ns vs. 150 ns) |
similar (110 ms vs. 140 ms) |
similar (15 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) |
3 times less (40 ns vs. 150 ns) |
similar (109 ms vs. 125 ms) |
similar (16 MB vs. 17 MB) |
unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (64 LLVM lines vs. 160 B allocs) |
3 times more (691 ns vs. 180 ns) |
similar (85 ms vs. 118 ms) |
similar (17 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 (49 ns vs. 240 ns) |
similar (121 ms vs. 132 ms) |
similar (16 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) |
27 times less (40 ns vs. 1 μs) |
similar (122 ms vs. 131 ms) |
similar (16 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) |
190 times less (40 ns vs. 8 μs) |
similar (133 ms vs. 131 ms) |
similar (17 MB vs. 18 MB) |
unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (327 LLVM lines vs. 736 B allocs) |
11 times more (5 μs vs. 450 ns) |
similar (121 ms vs. 138 ms) |
similar (19 MB vs. 18 MB) |
unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
4 |
identical nonempty non-singleton Tuples |
better (2455 LLVM lines vs. 5 kB allocs) |
18 times more (47 μs vs. 3 μs) |
6 times more (893 ms vs. 130 ms) |
similar (34 MB vs. 18 MB) |
unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (19479 LLVM lines vs. 44 kB allocs) |
21 times more (414 μs vs. 19 μs) |
736 times more (96 s vs. 130 ms) |
8 times more (159 MB vs. 18 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) |
15 times less (40 ns vs. 601 ns) |
similar (122 ms vs. 155 ms) |
similar (16 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) |
92 times less (49 ns vs. 5 μs) |
similar (125 ms vs. 155 ms) |
similar (18 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) |
1011 times less (40 ns vs. 40 μs) |
similar (139 ms vs. 156 ms) |
similar (21 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 (49 ns vs. 581 ns) |
similar (123 ms vs. 156 ms) |
similar (17 MB vs. 23 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) |
334 times less (40 ns vs. 13 μs) |
3 times less (128 ms vs. 404 ms) |
similar (18 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) |
4839 times less (40 ns vs. 194 μs) |
10 times less (153 ms vs. 2 s) |
3 times less (21 MB vs. 71 MB) |
unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
2 |
distinct nonempty non-singleton Tuples |
better (333 LLVM lines vs. 1 kB allocs) |
4 times more (6 μs vs. 1 μs) |
similar (122 ms vs. 186 ms) |
similar (20 MB vs. 23 MB) |
unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
4 |
distinct nonempty non-singleton Tuples |
better (2473 LLVM lines vs. 22 kB allocs) |
similar (46 μs vs. 42 μs) |
similar (375 ms vs. 551 ms) |
similar (36 MB vs. 33 MB) |
unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
8 |
distinct nonempty non-singleton Tuples |
better (20919 LLVM lines vs. 293 kB allocs) |
similar (479 μs vs. 448 μs) |
2 times more (6 s vs. 2 s) |
2 times more (164 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) |
4 times less (40 ns vs. 180 ns) |
similar (64 ms vs. 55 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) |
4 times less (40 ns vs. 170 ns) |
similar (64 ms vs. 55 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. 260 ns) |
similar (43 ms vs. 55 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 (49 ns vs. 210 ns) |
similar (75 ms vs. 54 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) |
7 times less (40 ns vs. 290 ns) |
similar (74 ms vs. 54 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) |
11 times less (40 ns vs. 450 ns) |
similar (75 ms vs. 59 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) |
37 times less (40 ns vs. 1 μs) |
similar (78 ms vs. 65 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) |
137 times less (40 ns vs. 5 μs) |
similar (101 ms vs. 62 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 (49 ns vs. 370 ns) |
similar (57 ms vs. 58 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. 611 ns) |
similar (58 ms vs. 59 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 (60 ms vs. 66 ms) |
similar (7 MB vs. 5 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) |
56 times less (89 ns vs. 5 μs) |
similar (91 ms vs. 85 ms) |
2 times more (14 MB vs. 5 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) |
200 times less (230 ns vs. 46 μs) |
4 times more (355 ms vs. 76 ms) |
7 times more (42 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) |
5 times less (49 ns vs. 260 ns) |
similar (76 ms vs. 59 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) |
10 times less (40 ns vs. 400 ns) |
similar (74 ms vs. 59 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) |
16 times less (40 ns vs. 661 ns) |
similar (74 ms vs. 61 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) |
57 times less (40 ns vs. 2 μs) |
similar (77 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) |
215 times less (40 ns vs. 9 μs) |
similar (86 ms vs. 67 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) |
6 times less (40 ns vs. 250 ns) |
similar (80 ms vs. 59 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) |
13 times less (49 ns vs. 651 ns) |
similar (75 ms vs. 77 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) |
70 times less (40 ns vs. 3 μs) |
similar (75 ms vs. 87 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) |
265 times less (40 ns vs. 11 μs) |
similar (78 ms vs. 87 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) |
1116 times less (40 ns vs. 45 μs) |
similar (86 ms vs. 90 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) |
8 times less (50 ns vs. 400 ns) |
similar (55 ms vs. 69 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) |
18 times less (60 ns vs. 1 μs) |
similar (59 ms vs. 86 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) |
62 times less (69 ns vs. 4 μs) |
similar (65 ms vs. 109 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) |
118 times less (230 ns vs. 27 μs) |
similar (111 ms vs. 106 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) |
342 times less (911 ns vs. 312 μs) |
7 times more (808 ms vs. 106 ms) |
5 times more (42 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 (49 ns vs. 1 μs) |
similar (75 ms vs. 114 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) |
31 times less (40 ns vs. 1 μs) |
similar (76 ms vs. 114 ms) |
similar (11 MB vs. 11 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) |
23 times less (49 ns vs. 1 μs) |
similar (70 ms vs. 124 ms) |
similar (12 MB vs. 11 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) |
22 times less (49 ns vs. 1 μs) |
similar (77 ms vs. 118 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) |
28 times less (49 ns vs. 1 μs) |
2 times less (97 ms vs. 199 ms) |
similar (12 MB vs. 19 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) |
39 times less (40 ns vs. 2 μs) |
similar (104 ms vs. 196 ms) |
similar (12 MB vs. 19 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) |
63 times less (40 ns vs. 3 μs) |
similar (178 ms vs. 206 ms) |
similar (16 MB vs. 19 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) |
167 times less (40 ns vs. 7 μs) |
2 times more (486 ms vs. 201 ms) |
similar (34 MB vs. 19 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) |
25 times less (49 ns vs. 1 μs) |
similar (72 ms vs. 126 ms) |
similar (12 MB vs. 11 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) |
25 times less (60 ns vs. 2 μs) |
2 times less (87 ms vs. 215 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) |
37 times less (49 ns vs. 2 μs) |
2 times less (87 ms vs. 216 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) |
2 times less (112 ms vs. 230 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) |
119 times less (89 ns vs. 11 μs) |
similar (358 ms vs. 273 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) |
31 times less (40 ns vs. 1 μs) |
similar (77 ms vs. 130 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) |
30 times less (49 ns vs. 1 μs) |
2 times less (93 ms vs. 207 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) |
45 times less (40 ns vs. 2 μs) |
2 times less (102 ms vs. 274 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 empty & nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
517 times less (40 ns vs. 21 μs) |
2 times less (175 ms vs. 457 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) |
2437 times less (49 ns vs. 119 μs) |
similar (495 ms vs. 455 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) |
31 times less (40 ns vs. 1 μs) |
similar (77 ms vs. 131 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) |
41 times less (40 ns vs. 2 μs) |
2 times less (94 ms vs. 229 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) |
66 times less (40 ns vs. 3 μs) |
2 times less (109 ms vs. 302 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) |
519 times less (49 ns vs. 25 μs) |
2 times less (175 ms vs. 465 ms) |
2 times less (16 MB vs. 42 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) |
3495 times less (40 ns vs. 140 μs) |
similar (496 ms vs. 454 ms) |
similar (34 MB vs. 42 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) |
28 times less (49 ns vs. 1 μs) |
similar (75 ms vs. 141 ms) |
similar (12 MB vs. 10 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) |
33 times less (60 ns vs. 2 μs) |
3 times less (82 ms vs. 249 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) |
53 times less (60 ns vs. 3 μs) |
3 times less (88 ms vs. 326 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) |
192 times less (89 ns vs. 17 μs) |
4 times less (121 ms vs. 513 ms) |
similar (23 MB vs. 42 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) |
317 times less (360 ns vs. 114 μs) |
similar (455 ms vs. 851 ms) |
2 times more (99 MB vs. 43 MB) |