| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (27 ms vs. 26 ms) |
Inf times more (58 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 (25 ms vs. 25 ms) |
668 times more (63 kB vs. 96 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (10 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (32 ms vs. 26 ms) |
1650 times more (155 kB vs. 96 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (28 ms vs. 27 ms) |
309 times more (63 kB vs. 208 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (29 ms vs. 28 ms) |
253 times more (63 kB vs. 256 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (27 ms vs. 29 ms) |
150 times more (66 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. 49 ns) |
2 times more (67 ms vs. 28 ms) |
692 times more (844 kB vs. 1 kB) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (60 ns vs. 50 ns) |
similar (33 ms vs. 28 ms) |
719 times more (157 kB vs. 224 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (15 LLVM lines) |
similar (49 ns vs. 50 ns) |
similar (31 ms vs. 27 ms) |
433 times more (176 kB vs. 416 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (39 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (33 ms vs. 26 ms) |
205 times more (237 kB vs. 1 kB) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (135 LLVM lines) |
60 times less (80 ns vs. 5 μs) |
3 times more (101 ms vs. 26 ms) |
1208 times more (5 MB vs. 4 kB) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (26 ms vs. 27 ms) |
573 times more (63 kB vs. 112 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (26 ms vs. 27 ms) |
405 times more (63 kB vs. 160 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (27 ms vs. 29 ms) |
191 times more (66 kB vs. 352 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
128 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times more (72 ms vs. 31 ms) |
748 times more (843 kB vs. 1 kB) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (25 ms vs. 26 ms) |
309 times more (63 kB vs. 208 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (25 ms vs. 26 ms) |
253 times more (63 kB vs. 256 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (25 ms vs. 25 ms) |
150 times more (66 kB vs. 448 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
128 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times more (61 ms vs. 26 ms) |
691 times more (842 kB vs. 1 kB) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (13 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (29 ms vs. 26 ms) |
629 times more (157 kB vs. 256 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (31 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (31 ms vs. 26 ms) |
268 times more (176 kB vs. 672 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (95 LLVM lines) |
similar (80 ns vs. 80 ns) |
similar (38 ms vs. 26 ms) |
79 times more (239 kB vs. 3 kB) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
128 |
nonempty non-singleton Tuples |
similar (559 LLVM lines) |
15 times less (361 ns vs. 6 μs) |
7 times more (186 ms vs. 26 ms) |
482 times more (5 MB 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 (41 ms vs. 37 ms) |
5 times more (613 kB vs. 109 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (41 ms vs. 34 ms) |
4 times more (643 kB vs. 139 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. 49 ns) |
similar (41 ms vs. 37 ms) |
4 times more (926 kB vs. 210 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (64 ms vs. 38 ms) |
5 times more (701 kB vs. 139 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (67 ms vs. 39 ms) |
5 times more (748 kB vs. 139 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (70 ms vs. 37 ms) |
6 times more (939 kB vs. 141 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
198 times less (49 ns vs. 10 μs) |
2 times more (77 ms vs. 37 ms) |
11 times more (2 MB vs. 148 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (60 ns vs. 50 ns) |
similar (67 ms vs. 38 ms) |
5 times more (1 MB vs. 210 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (37 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (64 ms vs. 44 ms) |
7 times more (2 MB vs. 236 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (181 LLVM lines) |
similar (80 ns vs. 80 ns) |
similar (78 ms vs. 40 ms) |
16 times more (4 MB vs. 239 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (641 LLVM lines vs. 17 kB allocs) |
54 times less (260 ns vs. 14 μs) |
5 times more (205 ms vs. 38 ms) |
51 times more (13 MB vs. 253 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (64 ms vs. 38 ms) |
5 times more (700 kB vs. 139 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (62 ms vs. 36 ms) |
5 times more (749 kB vs. 141 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (66 ms vs. 36 ms) |
6 times more (939 kB vs. 143 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
338 times less (49 ns vs. 17 μs) |
2 times more (73 ms vs. 36 ms) |
7 times more (2 MB vs. 214 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (59 ms vs. 33 ms) |
5 times more (700 kB vs. 139 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (58 ms vs. 33 ms) |
3 times more (749 kB vs. 205 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (60 ms vs. 34 ms) |
6 times more (939 kB vs. 142 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
425 times less (40 ns vs. 17 μs) |
2 times more (70 ms vs. 33 ms) |
11 times more (2 MB vs. 150 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (15 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (59 ms vs. 37 ms) |
4 times more (1 MB vs. 236 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (45 LLVM lines) |
similar (69 ns vs. 69 ns) |
similar (65 ms vs. 41 ms) |
6 times more (2 MB vs. 239 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (163 LLVM lines) |
similar (200 ns vs. 220 ns) |
2 times more (93 ms vs. 39 ms) |
13 times more (4 MB vs. 283 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (1053 LLVM lines vs. 560 kB allocs) |
114 times less (642 ns vs. 74 μs) |
12 times more (472 ms vs. 39 ms) |
16 times more (13 MB vs. 794 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (42 ms vs. 39 ms) |
5 times more (622 kB vs. 109 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (42 ms vs. 34 ms) |
4 times more (652 kB vs. 139 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (10 LLVM lines) |
similar (49 ns vs. 50 ns) |
similar (42 ms vs. 42 ms) |
4 times more (974 kB vs. 210 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (66 ms vs. 38 ms) |
5 times more (709 kB vs. 139 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (68 ms vs. 39 ms) |
5 times more (757 kB vs. 139 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 (73 ms vs. 39 ms) |
6 times more (948 kB vs. 141 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
199 times less (49 ns vs. 10 μs) |
2 times more (79 ms vs. 39 ms) |
11 times more (2 MB vs. 148 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (49 ns vs. 50 ns) |
similar (61 ms vs. 40 ms) |
5 times more (1 MB vs. 210 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (36 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (66 ms vs. 39 ms) |
7 times more (2 MB vs. 236 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (180 LLVM lines) |
similar (80 ns vs. 80 ns) |
2 times more (83 ms vs. 40 ms) |
18 times more (4 MB vs. 239 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (642 LLVM lines vs. 17 kB allocs) |
59 times less (240 ns vs. 14 μs) |
5 times more (207 ms vs. 41 ms) |
57 times more (14 MB vs. 253 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (65 ms vs. 37 ms) |
5 times more (709 kB vs. 139 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (63 ms vs. 37 ms) |
5 times more (758 kB vs. 141 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (64 ms vs. 37 ms) |
6 times more (948 kB vs. 143 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
410 times less (40 ns vs. 16 μs) |
2 times more (78 ms vs. 38 ms) |
7 times more (2 MB vs. 214 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (59 ms vs. 34 ms) |
5 times more (709 kB vs. 139 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (58 ms vs. 33 ms) |
3 times more (758 kB vs. 205 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (60 ms vs. 34 ms) |
6 times more (947 kB vs. 142 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
343 times less (49 ns vs. 17 μs) |
similar (68 ms vs. 35 ms) |
11 times more (2 MB vs. 150 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (15 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (60 ms vs. 38 ms) |
4 times more (1 MB vs. 236 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (47 LLVM lines) |
similar (69 ns vs. 69 ns) |
similar (66 ms vs. 38 ms) |
7 times more (2 MB vs. 239 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (169 LLVM lines) |
similar (200 ns vs. 200 ns) |
2 times more (100 ms vs. 39 ms) |
15 times more (4 MB vs. 283 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (1022 LLVM lines vs. 560 kB allocs) |
106 times less (641 ns vs. 68 μs) |
11 times more (449 ms vs. 39 ms) |
18 times more (14 MB vs. 794 kB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (30 ms vs. 29 ms) |
838 times more (183 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. 40 ns) |
similar (31 ms vs. 28 ms) |
859 times more (188 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. 49 ns) |
similar (31 ms vs. 30 ms) |
858 times more (188 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. 49 ns) |
similar (41 ms vs. 30 ms) |
990 times more (309 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 (49 ns vs. 40 ns) |
2 times more (63 ms vs. 31 ms) |
1127 times more (370 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) |
9 times less (40 ns vs. 380 ns) |
similar (65 ms vs. 48 ms) |
similar (418 kB vs. 723 kB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
26 times less (40 ns vs. 1 μs) |
similar (65 ms vs. 49 ms) |
similar (608 kB vs. 723 kB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (40 ms vs. 30 ms) |
1579 times more (419 kB vs. 272 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) |
2 times more (57 ms vs. 29 ms) |
1122 times more (561 kB vs. 512 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (20 LLVM lines vs. 592 B allocs) |
12 times less (60 ns vs. 771 ns) |
similar (58 ms vs. 44 ms) |
similar (834 kB vs. 724 kB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (68 LLVM lines vs. 2 kB allocs) |
36 times less (69 ns vs. 3 μs) |
similar (70 ms vs. 45 ms) |
2 times more (2 MB vs. 726 kB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (39 ms vs. 29 ms) |
1413 times more (309 kB vs. 224 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (59 ms vs. 30 ms) |
1129 times more (371 kB vs. 336 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 192 B allocs) |
13 times less (40 ns vs. 520 ns) |
similar (64 ms vs. 80 ms) |
5 times less (418 kB vs. 2 MB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 576 B allocs) |
33 times less (49 ns vs. 2 μs) |
similar (65 ms vs. 87 ms) |
4 times less (608 kB vs. 3 MB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (37 ms vs. 28 ms) |
989 times more (309 kB vs. 320 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (54 ms vs. 28 ms) |
1129 times more (370 kB vs. 336 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 192 B allocs) |
29 times less (49 ns vs. 1 μs) |
similar (55 ms vs. 65 ms) |
5 times less (418 kB vs. 2 MB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 576 B allocs) |
98 times less (40 ns vs. 4 μs) |
similar (58 ms vs. 69 ms) |
4 times less (608 kB vs. 2 MB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (37 ms vs. 28 ms) |
1674 times more (445 kB vs. 272 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (17 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (59 ms vs. 31 ms) |
817 times more (562 kB vs. 704 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
32 |
nonempty non-singleton Tuples |
better (53 LLVM lines vs. 20 kB allocs) |
40 times less (69 ns vs. 3 μs) |
similar (61 ms vs. 86 ms) |
2 times less (835 kB vs. 2 MB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
128 |
nonempty non-singleton Tuples |
better (181 LLVM lines vs. 268 kB allocs) |
244 times less (110 ns vs. 27 μs) |
similar (82 ms vs. 92 ms) |
similar (2 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. 40 ns) |
similar (39 ms vs. 28 ms) |
1340 times more (293 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 (38 ms vs. 28 ms) |
1478 times more (323 kB vs. 224 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (60 ns vs. 50 ns) |
similar (39 ms vs. 27 ms) |
1742 times more (436 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. 49 ns) |
similar (39 ms vs. 30 ms) |
1035 times more (323 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 (49 ns vs. 49 ns) |
2 times more (64 ms vs. 30 ms) |
1170 times more (384 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. 370 ns) |
similar (63 ms vs. 47 ms) |
similar (432 kB vs. 723 kB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
26 times less (40 ns vs. 1 μs) |
similar (66 ms vs. 47 ms) |
similar (622 kB vs. 723 kB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (60 ns vs. 49 ns) |
similar (40 ms vs. 28 ms) |
1640 times more (436 kB vs. 272 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 (49 ns vs. 60 ns) |
2 times more (59 ms vs. 28 ms) |
1160 times more (580 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. 751 ns) |
similar (58 ms vs. 43 ms) |
similar (866 kB vs. 724 kB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (69 LLVM lines vs. 2 kB allocs) |
36 times less (69 ns vs. 3 μs) |
similar (68 ms vs. 42 ms) |
2 times more (2 MB vs. 726 kB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (47 ms vs. 30 ms) |
1035 times more (323 kB vs. 320 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times more (57 ms vs. 28 ms) |
1172 times more (385 kB vs. 336 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 192 B allocs) |
10 times less (49 ns vs. 521 ns) |
similar (64 ms vs. 58 ms) |
4 times less (432 kB vs. 2 MB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 576 B allocs) |
32 times less (49 ns vs. 2 μs) |
similar (66 ms vs. 79 ms) |
3 times less (622 kB vs. 2 MB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (37 ms vs. 27 ms) |
1035 times more (323 kB vs. 320 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times more (56 ms vs. 27 ms) |
1172 times more (385 kB vs. 336 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 192 B allocs) |
17 times less (49 ns vs. 841 ns) |
similar (54 ms vs. 52 ms) |
4 times less (432 kB vs. 2 MB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 576 B allocs) |
64 times less (49 ns vs. 3 μs) |
similar (56 ms vs. 64 ms) |
3 times less (622 kB vs. 2 MB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (37 ms vs. 27 ms) |
1552 times more (461 kB vs. 304 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (19 LLVM lines) |
similar (60 ns vs. 60 ns) |
2 times more (62 ms vs. 27 ms) |
744 times more (582 kB vs. 800 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
32 |
nonempty non-singleton Tuples |
better (47 LLVM lines vs. 21 kB allocs) |
26 times less (80 ns vs. 2 μs) |
similar (62 ms vs. 61 ms) |
2 times less (868 kB vs. 2 MB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
128 |
nonempty non-singleton Tuples |
better (174 LLVM lines vs. 268 kB allocs) |
109 times less (250 ns vs. 27 μs) |
similar (84 ms vs. 83 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (38 ms vs. 34 ms) |
975 times more (305 kB vs. 320 B) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (38 ms vs. 32 ms) |
1071 times more (335 kB vs. 320 B) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (38 ms vs. 32 ms) |
1235 times more (463 kB vs. 384 B) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (40 ms vs. 34 ms) |
831 times more (338 kB vs. 416 B) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (64 ms vs. 36 ms) |
658 times more (411 kB vs. 640 B) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 128 B allocs) |
29 times less (49 ns vs. 1 μs) |
similar (64 ms vs. 54 ms) |
similar (507 kB vs. 723 kB) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 128 B allocs) |
116 times less (40 ns vs. 5 μs) |
similar (68 ms vs. 48 ms) |
similar (891 kB vs. 724 kB) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (10 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (46 ms vs. 34 ms) |
1091 times more (512 kB vs. 480 B) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (19 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (61 ms vs. 32 ms) |
777 times more (838 kB vs. 1 kB) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (43 LLVM lines vs. 2 kB allocs) |
45 times less (60 ns vs. 3 μs) |
similar (68 ms vs. 48 ms) |
2 times more (2 MB vs. 725 kB) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (139 LLVM lines vs. 7 kB allocs) |
121 times less (80 ns vs. 10 μs) |
2 times more (104 ms vs. 50 ms) |
8 times more (6 MB vs. 733 kB) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (43 ms vs. 35 ms) |
1080 times more (338 kB vs. 320 B) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (58 ms vs. 33 ms) |
613 times more (412 kB vs. 688 B) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 368 B allocs) |
42 times less (40 ns vs. 2 μs) |
similar (61 ms vs. 85 ms) |
5 times less (508 kB vs. 3 MB) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 1 kB allocs) |
119 times less (49 ns vs. 6 μs) |
similar (67 ms vs. 86 ms) |
2 times less (891 kB vs. 3 MB) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (39 ms vs. 32 ms) |
675 times more (338 kB vs. 512 B) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (57 ms vs. 32 ms) |
538 times more (412 kB vs. 784 B) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 368 B allocs) |
62 times less (49 ns vs. 3 μs) |
similar (58 ms vs. 73 ms) |
4 times less (508 kB vs. 2 MB) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 1 kB allocs) |
204 times less (49 ns vs. 10 μs) |
similar (61 ms vs. 74 ms) |
2 times less (891 kB vs. 2 MB) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (10 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (39 ms vs. 32 ms) |
1145 times more (537 kB vs. 480 B) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (28 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (59 ms vs. 33 ms) |
447 times more (840 kB vs. 2 kB) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (92 LLVM lines vs. 42 kB allocs) |
77 times less (89 ns vs. 7 μs) |
similar (70 ms vs. 93 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_setindex(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 2:end]...) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (553 LLVM lines vs. 541 kB allocs) |
170 times less (370 ns vs. 63 μs) |
similar (192 ms vs. 97 ms) |
2 times more (6 MB vs. 2 MB) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (41 ms vs. 34 ms) |
1076 times more (336 kB vs. 320 B) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (39 ms vs. 32 ms) |
901 times more (366 kB vs. 416 B) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (10 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (39 ms vs. 33 ms) |
1271 times more (556 kB vs. 448 B) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (39 ms vs. 34 ms) |
716 times more (369 kB vs. 528 B) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (67 ms vs. 35 ms) |
660 times more (444 kB vs. 688 B) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 128 B allocs) |
29 times less (49 ns vs. 1 μs) |
similar (68 ms vs. 54 ms) |
similar (540 kB vs. 724 kB) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 128 B allocs) |
117 times less (40 ns vs. 5 μs) |
similar (69 ms vs. 50 ms) |
similar (924 kB vs. 725 kB) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (43 ms vs. 34 ms) |
979 times more (612 kB vs. 640 B) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (15 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (60 ms vs. 34 ms) |
857 times more (1005 kB vs. 1 kB) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (39 LLVM lines vs. 2 kB allocs) |
46 times less (60 ns vs. 3 μs) |
similar (69 ms vs. 46 ms) |
3 times more (2 MB vs. 726 kB) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (135 LLVM lines vs. 7 kB allocs) |
121 times less (80 ns vs. 10 μs) |
2 times more (109 ms vs. 51 ms) |
10 times more (8 MB vs. 734 kB) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (44 ms vs. 36 ms) |
716 times more (369 kB vs. 528 B) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (59 ms vs. 34 ms) |
646 times more (445 kB vs. 704 B) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 384 B allocs) |
43 times less (40 ns vs. 2 μs) |
similar (66 ms vs. 90 ms) |
4 times less (540 kB vs. 3 MB) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 1 kB allocs) |
119 times less (49 ns vs. 6 μs) |
similar (67 ms vs. 85 ms) |
2 times less (923 kB vs. 3 MB) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (39 ms vs. 33 ms) |
606 times more (369 kB vs. 624 B) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (57 ms vs. 32 ms) |
568 times more (444 kB vs. 800 B) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 384 B allocs) |
78 times less (40 ns vs. 3 μs) |
similar (58 ms vs. 75 ms) |
4 times less (540 kB vs. 2 MB) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 1 kB allocs) |
251 times less (40 ns vs. 10 μs) |
similar (61 ms vs. 73 ms) |
2 times less (923 kB vs. 2 MB) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (13 LLVM lines) |
similar (60 ns vs. 49 ns) |
similar (39 ms vs. 32 ms) |
927 times more (638 kB vs. 704 B) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (31 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (62 ms vs. 32 ms) |
503 times more (1006 kB vs. 2 kB) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (95 LLVM lines vs. 44 kB allocs) |
75 times less (89 ns vs. 7 μs) |
similar (74 ms vs. 97 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_insert(itr, itr[1], Val(length(itr) ÷ 2 + 1)) |
(itr[1:length(itr) ÷ 2]..., itr[1], itr[length(itr) ÷ 2 + 1:end]...) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (558 LLVM lines vs. 546 kB allocs) |
168 times less (380 ns vs. 64 μs) |
2 times more (193 ms vs. 94 ms) |
3 times more (8 MB vs. 2 MB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (30 ms vs. 27 ms) |
6 times more (61 kB vs. 9 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (30 ms vs. 26 ms) |
2 times more (95 kB vs. 40 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (26 ms vs. 25 ms) |
5 times more (68 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. 40 ns) |
similar (32 ms vs. 27 ms) |
2 times more (98 kB vs. 43 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) |
similar (52 ms vs. 26 ms) |
similar (170 kB vs. 303 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 592 B allocs) |
19 times less (40 ns vs. 781 ns) |
similar (53 ms vs. 38 ms) |
similar (259 kB vs. 296 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (69 LLVM lines w/ Const vs. 2 kB allocs) |
38 times less (69 ns vs. 3 μs) |
2 times more (75 ms vs. 36 ms) |
2 times more (798 kB vs. 298 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 (27 ms vs. 28 ms) |
3 times more (75 kB vs. 20 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (45 ms vs. 27 ms) |
2 times less (199 kB vs. 591 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 592 B allocs) |
19 times less (40 ns vs. 782 ns) |
similar (45 ms vs. 33 ms) |
similar (394 kB vs. 295 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (69 LLVM lines w/ Const vs. 2 kB allocs) |
37 times less (70 ns vs. 3 μs) |
similar (70 ms vs. 36 ms) |
4 times more (1 MB vs. 298 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 40 ns) |
similar (34 ms vs. 28 ms) |
2 times more (98 kB vs. 43 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 40 ns) |
similar (49 ms vs. 27 ms) |
similar (180 kB vs. 330 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 592 B allocs) |
24 times less (49 ns vs. 1 μs) |
similar (52 ms vs. 37 ms) |
similar (287 kB vs. 320 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (71 LLVM lines w/ Const vs. 2 kB allocs) |
53 times less (80 ns vs. 4 μs) |
similar (71 ms vs. 37 ms) |
2 times more (825 kB vs. 322 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (30 ms vs. 25 ms) |
2 times more (103 kB vs. 47 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (47 ms vs. 26 ms) |
similar (184 kB vs. 318 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
32 |
nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 592 B allocs) |
30 times less (40 ns vs. 1 μs) |
similar (47 ms vs. 35 ms) |
similar (287 kB vs. 324 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (69 LLVM lines w/ Const vs. 2 kB allocs) |
53 times less (80 ns vs. 4 μs) |
similar (66 ms vs. 34 ms) |
2 times more (825 kB vs. 326 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (25 ms vs. 25 ms) |
2 times more (101 kB vs. 47 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (43 ms vs. 27 ms) |
2 times less (200 kB vs. 594 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 39 kB allocs) |
90 times less (40 ns vs. 4 μs) |
similar (46 ms vs. 37 ms) |
similar (409 kB vs. 339 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (69 LLVM lines w/ Const vs. 528 kB allocs) |
625 times less (70 ns vs. 44 μs) |
similar (65 ms vs. 37 ms) |
similar (1 MB vs. 829 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (30 ms vs. 33 ms) |
2 times less (54 kB vs. 159 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (29 ms vs. 32 ms) |
3 times less (88 kB vs. 281 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (26 ms vs. 33 ms) |
5 times less (62 kB vs. 337 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (32 ms vs. 36 ms) |
4 times less (92 kB vs. 450 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (54 ms vs. 39 ms) |
2 times less (175 kB vs. 450 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (57 ms vs. 37 ms) |
similar (300 kB vs. 450 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (68 ms vs. 41 ms) |
similar (799 kB vs. 450 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (31 ms vs. 37 ms) |
7 times less (70 kB vs. 521 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (46 ms vs. 35 ms) |
2 times less (205 kB vs. 546 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 (48 ms vs. 35 ms) |
similar (436 kB vs. 546 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 (57 ms vs. 37 ms) |
2 times more (1 MB vs. 547 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (31 ms vs. 34 ms) |
4 times less (86 kB vs. 377 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (51 ms vs. 33 ms) |
5 times less (156 kB vs. 805 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (56 ms vs. 40 ms) |
12 times less (224 kB vs. 3 MB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (62 ms vs. 31 ms) |
similar (497 kB vs. 340 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (30 ms vs. 34 ms) |
5 times less (97 kB vs. 532 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (48 ms vs. 55 ms) |
7 times less (188 kB vs. 1 MB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (52 ms vs. 96 ms) |
12 times less (327 kB vs. 4 MB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
128 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (59 ms vs. 36 ms) |
similar (825 kB vs. 504 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (25 ms vs. 36 ms) |
5 times less (100 kB vs. 532 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (46 ms vs. 60 ms) |
6 times less (218 kB vs. 1 MB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times less (49 ms vs. 121 ms) |
10 times less (462 kB vs. 5 MB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
1110 times less (40 ns vs. 44 μs) |
similar (57 ms vs. 40 ms) |
similar (1 MB vs. 1 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
1 |
empty singleton Tuple |
similar (9 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (74 ms vs. 74 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (9 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (74 ms vs. 79 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 (73 ms vs. 78 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 (49 ns vs. 49 ns) |
similar (83 ms vs. 77 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (48 LLVM lines) |
similar (70 ns vs. 69 ns) |
similar (109 ms vs. 90 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 (113 ms vs. 88 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 (430 ns vs. 450 ns) |
similar (147 ms vs. 89 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. 60 ns) |
similar (75 ms vs. 83 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 |
8 |
identical nonempty non-singleton Tuples |
similar (48 LLVM lines) |
similar (69 ns vs. 69 ns) |
similar (94 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 (103 ms vs. 83 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 (441 ns vs. 450 ns) |
similar (135 ms vs. 81 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 |
empty & nonempty singleton Tuples |
similar (18 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (86 ms vs. 85 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 |
empty & nonempty singleton Tuples |
better (48 LLVM lines vs. 96 B allocs) |
33 times less (69 ns vs. 2 μs) |
similar (103 ms vs. 115 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (168 LLVM lines vs. 496 B allocs) |
541 times less (140 ns vs. 76 μs) |
similar (113 ms vs. 183 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 |
empty & nonempty singleton Tuples |
similar (648 LLVM lines) |
4 times less (410 ns vs. 2 μs) |
similar (137 ms vs. 82 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 |
nonempty singleton Tuples |
similar (18 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (78 ms vs. 78 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
8 |
nonempty singleton Tuples |
better (48 LLVM lines vs. 112 B allocs) |
232 times less (70 ns vs. 16 μs) |
similar (99 ms vs. 111 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
32 |
nonempty singleton Tuples |
better (168 LLVM lines vs. 496 B allocs) |
559 times less (150 ns vs. 84 μs) |
similar (103 ms vs. 158 ms) |
2 times less (3 MB vs. 9 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
128 |
nonempty singleton Tuples |
similar (648 LLVM lines) |
3 times less (430 ns vs. 2 μs) |
similar (134 ms vs. 79 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (18 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (70 ms vs. 79 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
better (48 LLVM lines vs. 2 kB allocs) |
154 times less (80 ns vs. 12 μs) |
similar (95 ms vs. 111 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (168 LLVM lines vs. 45 kB allocs) |
647 times less (140 ns vs. 91 μs) |
similar (102 ms vs. 179 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 |
nonempty non-singleton Tuples |
better (648 LLVM lines vs. 521 kB allocs) |
116 times less (410 ns vs. 48 μs) |
similar (138 ms vs. 88 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. 40 ns) |
similar (29 ms vs. 31 ms) |
3 times less (54 kB vs. 165 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (29 ms vs. 30 ms) |
3 times less (88 kB vs. 283 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (25 ms vs. 33 ms) |
5 times less (62 kB vs. 326 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (30 ms vs. 32 ms) |
3 times less (90 kB vs. 332 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (56 ms vs. 33 ms) |
2 times less (159 kB vs. 332 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (55 ms vs. 34 ms) |
similar (227 kB vs. 332 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (61 ms vs. 34 ms) |
similar (500 kB vs. 332 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (27 ms vs. 33 ms) |
5 times less (64 kB vs. 376 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 (50 ms vs. 35 ms) |
2 times less (158 kB vs. 401 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (47 ms vs. 32 ms) |
similar (226 kB vs. 401 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (52 ms vs. 31 ms) |
similar (499 kB vs. 402 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (31 ms vs. 32 ms) |
4 times less (92 kB vs. 415 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (50 ms vs. 35 ms) |
5 times less (162 kB vs. 860 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (56 ms vs. 40 ms) |
12 times less (230 kB vs. 3 MB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (58 ms vs. 37 ms) |
similar (503 kB vs. 508 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (29 ms vs. 30 ms) |
4 times less (90 kB vs. 398 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (50 ms vs. 31 ms) |
5 times less (160 kB vs. 842 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (50 ms vs. 38 ms) |
12 times less (228 kB vs. 3 MB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (55 ms vs. 30 ms) |
similar (501 kB vs. 347 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (25 ms vs. 31 ms) |
4 times less (89 kB vs. 397 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (48 ms vs. 36 ms) |
5 times less (159 kB vs. 898 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (49 ms vs. 52 ms) |
15 times less (227 kB vs. 3 MB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (52 ms vs. 32 ms) |
similar (499 kB vs. 414 kB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
1 |
empty singleton Tuple |
similar (9 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (76 ms vs. 77 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (9 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (72 ms vs. 75 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (9 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (78 ms vs. 83 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 (76 ms vs. 83 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 |
8 |
identical nonempty singleton Tuples |
similar (48 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (109 ms vs. 107 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 (119 ms vs. 87 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. 60 ns) |
similar (146 ms vs. 85 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. 60 ns) |
similar (76 ms vs. 88 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 |
8 |
identical nonempty non-singleton Tuples |
similar (48 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (103 ms vs. 88 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. 60 ns) |
similar (99 ms vs. 83 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. 60 ns) |
similar (135 ms vs. 81 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 |
empty & nonempty singleton Tuples |
similar (18 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (81 ms vs. 87 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 |
empty & nonempty singleton Tuples |
similar (48 LLVM lines) |
7 times less (49 ns vs. 370 ns) |
similar (109 ms vs. 90 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 |
empty & nonempty singleton Tuples |
similar (168 LLVM lines) |
58 times less (49 ns vs. 3 μs) |
similar (114 ms vs. 92 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
similar (648 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (136 ms vs. 81 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 |
nonempty singleton Tuples |
similar (18 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (76 ms vs. 78 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (48 LLVM lines) |
47 times less (49 ns vs. 2 μs) |
similar (98 ms vs. 80 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (168 LLVM lines) |
59 times less (49 ns vs. 3 μs) |
similar (103 ms vs. 85 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 |
nonempty singleton Tuples |
similar (648 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (130 ms vs. 78 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (18 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (87 ms vs. 78 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
better (48 LLVM lines vs. 448 B allocs) |
48 times less (49 ns vs. 2 μs) |
similar (94 ms vs. 84 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (168 LLVM lines vs. 3 kB allocs) |
67 times less (49 ns vs. 3 μs) |
similar (107 ms vs. 107 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 |
nonempty non-singleton Tuples |
similar (648 LLVM lines) |
similar (60 ns vs. 49 ns) |
similar (131 ms vs. 83 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 (53 ms vs. 75 ms) |
8 times less (66 kB vs. 544 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (51 ms vs. 75 ms) |
5 times less (100 kB vs. 582 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (50 ms vs. 54 ms) |
9 times less (73 kB vs. 726 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (53 ms vs. 77 ms) |
5 times less (103 kB vs. 585 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (84 ms vs. 87 ms) |
3 times less (174 kB vs. 606 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (78 ms vs. 82 ms) |
2 times less (261 kB vs. 703 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (81 ms vs. 88 ms) |
2 times less (612 kB vs. 1 MB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (54 ms vs. 59 ms) |
9 times less (80 kB vs. 732 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (72 ms vs. 54 ms) |
3 times less (203 kB vs. 806 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (68 ms vs. 55 ms) |
2 times less (397 kB vs. 1005 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (73 ms vs. 60 ms) |
similar (1 MB vs. 2 MB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (56 ms vs. 101 ms) |
5 times less (112 kB vs. 608 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (80 ms vs. 84 ms) |
3 times less (212 kB vs. 684 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (77 ms vs. 83 ms) |
2 times less (356 kB vs. 891 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 54 LLVM lines w/ Const) |
35 times less (40 ns vs. 1 μs) |
similar (76 ms vs. 89 ms) |
2 times less (705 kB vs. 2 MB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (53 ms vs. 74 ms) |
5 times less (117 kB vs. 613 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (72 ms vs. 72 ms) |
3 times less (217 kB vs. 688 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (70 ms vs. 75 ms) |
2 times less (346 kB vs. 868 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 54 LLVM lines w/ Const) |
28 times less (49 ns vs. 1 μs) |
similar (78 ms vs. 85 ms) |
2 times less (695 kB vs. 2 MB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (48 ms vs. 53 ms) |
6 times less (115 kB vs. 781 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (67 ms vs. 56 ms) |
3 times less (232 kB vs. 875 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (73 ms vs. 57 ms) |
2 times less (468 kB vs. 1 MB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
1107 times less (40 ns vs. 44 μs) |
similar (73 ms vs. 65 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 (30 ms vs. 61 ms) |
21 times less (96 kB vs. 2 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times less (30 ms vs. 62 ms) |
16 times less (126 kB vs. 2 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (31 ms vs. 53 ms) |
10 times less (320 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times less (30 ms vs. 63 ms) |
19 times less (129 kB vs. 2 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (63 ms vs. 74 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (62 ms vs. 72 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) |
108 times less (40 ns vs. 4 μs) |
similar (72 ms vs. 77 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. 49 ns) |
similar (34 ms vs. 53 ms) |
9 times less (350 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (12 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (60 ms vs. 54 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 (68 ms vs. 61 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) |
168 times less (80 ns vs. 14 μs) |
similar (108 ms vs. 55 ms) |
2 times more (6 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times less (32 ms vs. 70 ms) |
21 times less (133 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (62 ms vs. 73 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (66 ms vs. 79 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 40 LLVM lines) |
140 times less (49 ns vs. 7 μs) |
similar (69 ms vs. 70 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times less (29 ms vs. 60 ms) |
21 times less (133 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (55 ms vs. 65 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (60 ms vs. 70 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 39 LLVM lines) |
139 times less (49 ns vs. 7 μs) |
similar (69 ms vs. 72 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (29 ms vs. 49 ms) |
9 times less (397 kB vs. 4 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (29 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (63 ms vs. 61 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (93 LLVM lines) |
similar (89 ns vs. 89 ns) |
similar (71 ms vs. 75 ms) |
2 times less (3 MB vs. 9 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (556 LLVM lines vs. 792 kB allocs) |
304 times less (360 ns vs. 110 μs) |
3 times more (189 ms vs. 54 ms) |
similar (6 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (33 ms vs. 65 ms) |
25 times less (104 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times less (30 ms vs. 64 ms) |
19 times less (134 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (31 ms vs. 55 ms) |
10 times less (325 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. 49 ns) |
2 times less (31 ms vs. 71 ms) |
20 times less (136 kB 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 (61 ms vs. 79 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 (49 ns vs. 49 ns) |
similar (63 ms vs. 78 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) |
106 times less (40 ns vs. 4 μs) |
similar (73 ms vs. 77 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 (33 ms vs. 55 ms) |
10 times less (354 kB vs. 4 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (12 LLVM lines) |
similar (50 ns vs. 49 ns) |
similar (61 ms vs. 57 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (36 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (65 ms vs. 67 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) |
158 times less (80 ns vs. 13 μs) |
similar (108 ms vs. 59 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times less (32 ms vs. 72 ms) |
22 times less (141 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (61 ms vs. 75 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (66 ms vs. 81 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 39 LLVM lines) |
138 times less (49 ns vs. 7 μs) |
similar (69 ms vs. 78 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times less (30 ms vs. 65 ms) |
22 times less (141 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (56 ms vs. 68 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (59 ms vs. 72 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 39 LLVM lines) |
141 times less (49 ns vs. 7 μs) |
similar (66 ms vs. 74 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (50 ns vs. 49 ns) |
similar (30 ms vs. 53 ms) |
9 times less (401 kB vs. 4 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (29 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (65 ms vs. 64 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (93 LLVM lines) |
similar (80 ns vs. 80 ns) |
similar (73 ms vs. 78 ms) |
2 times less (3 MB vs. 9 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (556 LLVM lines vs. 792 kB allocs) |
302 times less (361 ns vs. 109 μs) |
3 times more (200 ms vs. 62 ms) |
similar (6 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 (49 ns vs. 40 ns) |
2 times less (40 ms vs. 85 ms) |
19 times less (113 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. 40 ns) |
2 times less (39 ms vs. 82 ms) |
15 times less (148 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 (60 ns vs. 49 ns) |
similar (40 ms vs. 64 ms) |
9 times less (301 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) |
2 times less (41 ms vs. 100 ms) |
15 times less (150 kB 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 (40 ns vs. 49 ns) |
similar (80 ms vs. 127 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. 40 ns) |
3 times less (78 ms vs. 255 ms) |
2 times less (2 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) |
153 times less (80 ns vs. 12 μs) |
similar (100 ms vs. 106 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (16 LLVM lines) |
similar (60 ns vs. 49 ns) |
similar (41 ms vs. 68 ms) |
9 times less (330 kB 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 (69 ms vs. 65 ms) |
similar (2 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 (80 ns vs. 70 ns) |
similar (80 ms vs. 83 ms) |
2 times less (3 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) |
77 times less (270 ns vs. 21 μs) |
2 times more (183 ms vs. 69 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
2 times less (43 ms vs. 94 ms) |
17 times less (156 kB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 40 ns) |
similar (74 ms vs. 127 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 40 ns) |
3 times less (76 ms vs. 246 ms) |
2 times less (2 MB vs. 6 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (57 LLVM lines w/ Const vs. 70 kB allocs) |
267 times less (80 ns vs. 21 μs) |
similar (101 ms vs. 107 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
2 times less (41 ms vs. 91 ms) |
17 times less (161 kB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (67 ms vs. 114 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
3 times less (69 ms vs. 212 ms) |
2 times less (2 MB vs. 6 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (55 LLVM lines w/ Const vs. 70 kB allocs) |
257 times less (80 ns vs. 21 μs) |
similar (93 ms vs. 98 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (15 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (44 ms vs. 61 ms) |
8 times less (381 kB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (45 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (75 ms vs. 72 ms) |
similar (2 MB vs. 5 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (169 LLVM lines) |
similar (100 ns vs. 100 ns) |
similar (85 ms vs. 87 ms) |
2 times less (3 MB vs. 8 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (876 LLVM lines vs. 864 kB allocs) |
294 times less (431 ns vs. 127 μs) |
4 times more (303 ms vs. 72 ms) |
similar (6 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) |
2 times less (40 ms vs. 89 ms) |
21 times less (112 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 (49 ns vs. 49 ns) |
2 times less (39 ms vs. 92 ms) |
16 times less (146 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 (42 ms vs. 69 ms) |
9 times less (312 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. 40 ns) |
2 times less (40 ms vs. 98 ms) |
16 times less (149 kB vs. 2 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 (49 ns vs. 40 ns) |
similar (70 ms vs. 136 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 (49 ns vs. 40 ns) |
3 times less (74 ms vs. 233 ms) |
2 times less (2 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) |
148 times less (80 ns vs. 12 μs) |
similar (97 ms vs. 111 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 |
2 |
identical nonempty non-singleton Tuples |
similar (16 LLVM lines) |
similar (60 ns vs. 50 ns) |
similar (43 ms vs. 73 ms) |
9 times less (342 kB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (52 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (71 ms vs. 72 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 |
identical nonempty non-singleton Tuples |
similar (196 LLVM lines) |
similar (80 ns vs. 80 ns) |
similar (78 ms vs. 87 ms) |
2 times less (3 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) |
80 times less (260 ns vs. 21 μs) |
2 times more (183 ms vs. 73 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 40 ns) |
2 times less (41 ms vs. 102 ms) |
18 times less (155 kB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
similar (71 ms vs. 130 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 |
empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
3 times less (73 ms vs. 234 ms) |
2 times less (2 MB vs. 6 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (57 LLVM lines w/ Const vs. 70 kB allocs) |
239 times less (89 ns vs. 21 μs) |
similar (108 ms vs. 110 ms) |
similar (4 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
2 |
nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
2 times less (39 ms vs. 95 ms) |
18 times less (160 kB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
8 |
nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 40 ns) |
similar (66 ms vs. 116 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 |
nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
3 times less (68 ms vs. 212 ms) |
2 times less (2 MB vs. 6 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
128 |
nonempty singleton Tuples |
better (55 LLVM lines w/ Const vs. 70 kB allocs) |
265 times less (80 ns vs. 21 μs) |
similar (89 ms vs. 102 ms) |
similar (4 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (15 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (40 ms vs. 66 ms) |
8 times less (393 kB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (45 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (75 ms vs. 76 ms) |
similar (2 MB vs. 5 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (169 LLVM lines) |
similar (100 ns vs. 100 ns) |
similar (87 ms vs. 93 ms) |
2 times less (3 MB vs. 8 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (876 LLVM lines vs. 864 kB allocs) |
303 times less (431 ns vs. 131 μs) |
4 times more (295 ms vs. 72 ms) |
similar (6 MB vs. 5 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (30 ms vs. 44 ms) |
4 times less (97 kB vs. 483 kB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (29 ms vs. 44 ms) |
4 times less (127 kB vs. 514 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 (33 ms vs. 48 ms) |
2 times less (325 kB vs. 901 kB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (29 ms vs. 58 ms) |
8 times less (130 kB vs. 1 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (72 ms vs. 134 ms) |
11 times less (258 kB vs. 3 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
4 times less (71 ms vs. 337 ms) |
26 times less (400 kB vs. 10 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (60 ns vs. 49 ns) |
similar (31 ms vs. 54 ms) |
4 times less (351 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 (67 ms vs. 66 ms) |
6 times less (618 kB vs. 4 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (857 LLVM lines) |
similar (261 ns vs. 330 ns) |
similar (312 ms vs. 481 ms) |
13 times less (1 MB vs. 16 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (33 ms vs. 59 ms) |
8 times less (130 kB vs. 1 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (66 ms vs. 110 ms) |
11 times less (258 kB vs. 3 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
4 times less (70 ms vs. 336 ms) |
27 times less (401 kB vs. 11 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (29 ms vs. 52 ms) |
8 times less (130 kB vs. 1 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (60 ms vs. 102 ms) |
11 times less (258 kB vs. 3 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
4 times less (69 ms vs. 315 ms) |
27 times less (401 kB vs. 11 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (13 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (30 ms vs. 52 ms) |
4 times less (377 kB vs. 2 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (85 LLVM lines) |
similar (69 ns vs. 80 ns) |
similar (75 ms vs. 79 ms) |
7 times less (620 kB vs. 5 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (2973 LLVM lines) |
similar (2 μs vs. 2 μs) |
similar (1 s vs. 979 ms) |
14 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 (30 ms vs. 36 ms) |
7 times less (105 kB vs. 819 kB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (31 ms vs. 36 ms) |
6 times less (135 kB vs. 850 kB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (33 ms vs. 45 ms) |
3 times less (331 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 (29 ms vs. 50 ms) |
8 times less (137 kB vs. 1 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 (71 ms vs. 109 ms) |
11 times less (265 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 (72 ms vs. 341 ms) |
25 times less (408 kB vs. 10 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (60 ns vs. 49 ns) |
similar (31 ms vs. 46 ms) |
4 times less (357 kB vs. 2 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (65 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (69 ms vs. 58 ms) |
6 times less (623 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 (260 ns vs. 240 ns) |
similar (296 ms vs. 458 ms) |
13 times less (1 MB vs. 16 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (32 ms vs. 50 ms) |
8 times less (137 kB vs. 1 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (68 ms vs. 103 ms) |
11 times less (266 kB vs. 3 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
4 times less (71 ms vs. 350 ms) |
26 times less (409 kB vs. 11 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (29 ms vs. 47 ms) |
8 times less (137 kB vs. 1 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (61 ms vs. 95 ms) |
11 times less (266 kB vs. 3 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
4 times less (66 ms vs. 300 ms) |
26 times less (408 kB vs. 11 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (13 LLVM lines) |
similar (60 ns vs. 50 ns) |
similar (30 ms vs. 44 ms) |
4 times less (382 kB vs. 2 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (85 LLVM lines) |
similar (69 ns vs. 69 ns) |
similar (72 ms vs. 70 ms) |
7 times less (625 kB vs. 5 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (2972 LLVM lines) |
similar (2 μs vs. 2 μs) |
similar (1 s vs. 967 ms) |
14 times less (1 MB vs. 17 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
1 |
empty singleton Tuple |
similar (17 LLVM lines w/ Const) |
similar (49 ns vs. 60 ns) |
similar (75 ms vs. 50 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
1 |
nonempty singleton Tuple |
similar (17 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
similar (74 ms vs. 47 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (20 LLVM lines w/ Const) |
similar (49 ns vs. 60 ns) |
similar (82 ms vs. 47 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (18 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
similar (81 ms vs. 50 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (18 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
2 times more (106 ms vs. 52 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (18 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
2 times more (117 ms vs. 55 ms) |
2 times more (5 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (18 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
2 times more (145 ms vs. 53 ms) |
6 times more (13 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (20 LLVM lines w/ Const) |
similar (49 ns vs. 60 ns) |
similar (78 ms vs. 51 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (20 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
similar (95 ms vs. 49 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (20 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
2 times more (101 ms vs. 48 ms) |
2 times more (5 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (20 LLVM lines w/ Const) |
similar (60 ns vs. 49 ns) |
2 times more (134 ms vs. 49 ms) |
7 times more (14 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
2 |
empty & nonempty singleton Tuples |
better (18 LLVM lines w/ Const vs. 11 LLVM lines) |
similar (49 ns vs. 69 ns) |
similar (82 ms vs. 52 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
8 |
empty & nonempty singleton Tuples |
better (18 LLVM lines w/ Const vs. 18 LLVM lines) |
similar (49 ns vs. 60 ns) |
2 times more (103 ms vs. 50 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (18 LLVM lines w/ Const vs. 18 LLVM lines) |
similar (49 ns vs. 69 ns) |
2 times more (118 ms vs. 53 ms) |
2 times more (5 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (18 LLVM lines w/ Const vs. 18 LLVM lines) |
similar (49 ns vs. 60 ns) |
2 times more (139 ms vs. 57 ms) |
6 times more (13 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
2 |
nonempty singleton Tuples |
better (18 LLVM lines w/ Const vs. 11 LLVM lines) |
similar (49 ns vs. 69 ns) |
similar (74 ms vs. 47 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
8 |
nonempty singleton Tuples |
better (18 LLVM lines w/ Const vs. 18 LLVM lines) |
similar (49 ns vs. 60 ns) |
2 times more (100 ms vs. 47 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
32 |
nonempty singleton Tuples |
better (18 LLVM lines w/ Const vs. 18 LLVM lines) |
similar (49 ns vs. 69 ns) |
2 times more (112 ms vs. 50 ms) |
2 times more (5 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
128 |
nonempty singleton Tuples |
better (18 LLVM lines w/ Const vs. 18 LLVM lines) |
similar (49 ns vs. 69 ns) |
2 times more (132 ms vs. 47 ms) |
6 times more (13 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
2 |
nonempty non-singleton Tuples |
better (20 LLVM lines w/ Const vs. 48 B allocs) |
similar (49 ns vs. 80 ns) |
similar (73 ms vs. 49 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
8 |
nonempty non-singleton Tuples |
better (20 LLVM lines w/ Const vs. 240 B allocs) |
similar (49 ns vs. 89 ns) |
similar (97 ms vs. 49 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
32 |
nonempty non-singleton Tuples |
better (20 LLVM lines w/ Const vs. 1 kB allocs) |
similar (60 ns vs. 100 ns) |
2 times more (108 ms vs. 49 ms) |
2 times more (5 MB vs. 2 MB) |
| unrolled_applyat((x->length(x) <= 7), rand(1:length(itr)), itr) |
length(itr[rand(1:length(itr))]) <= 7 |
Tuple |
128 |
nonempty non-singleton Tuples |
better (20 LLVM lines w/ Const vs. 4 kB allocs) |
2 times less (120 ns vs. 241 ns) |
2 times more (133 ms vs. 48 ms) |
7 times more (14 MB vs. 2 MB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (31 ms vs. 28 ms) |
2 times more (132 kB vs. 49 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (31 ms vs. 30 ms) |
similar (162 kB vs. 164 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (28 ms vs. 28 ms) |
similar (138 kB vs. 194 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (33 ms vs. 32 ms) |
similar (166 kB vs. 283 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (61 ms vs. 39 ms) |
similar (251 kB vs. 283 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (61 ms vs. 37 ms) |
similar (383 kB vs. 283 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (69 ms vs. 35 ms) |
3 times more (912 kB vs. 283 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (29 ms vs. 31 ms) |
2 times less (147 kB vs. 326 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (47 ms vs. 30 ms) |
similar (281 kB vs. 352 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (48 ms vs. 30 ms) |
similar (512 kB vs. 352 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (58 ms vs. 30 ms) |
4 times more (1 MB vs. 352 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (37 ms vs. 37 ms) |
similar (194 kB vs. 315 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (65 ms vs. 37 ms) |
similar (334 kB vs. 340 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times more (84 ms vs. 41 ms) |
similar (593 kB vs. 340 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
128 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times more (82 ms vs. 36 ms) |
3 times more (1 MB vs. 340 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (34 ms vs. 34 ms) |
similar (194 kB vs. 315 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (59 ms vs. 35 ms) |
similar (334 kB vs. 340 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (72 ms vs. 37 ms) |
similar (565 kB vs. 340 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
128 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times more (80 ms vs. 35 ms) |
3 times more (1 MB vs. 340 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
2 |
nonempty non-singleton Tuples |
better (optimized out vs. 64 B allocs) |
2 times less (40 ns vs. 89 ns) |
similar (25 ms vs. 31 ms) |
similar (199 kB vs. 382 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
8 |
nonempty non-singleton Tuples |
better (optimized out vs. 2 kB allocs) |
6 times less (40 ns vs. 240 ns) |
similar (47 ms vs. 34 ms) |
similar (363 kB vs. 410 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
nonempty non-singleton Tuples |
better (optimized out vs. 37 kB allocs) |
69 times less (40 ns vs. 3 μs) |
similar (50 ms vs. 34 ms) |
similar (674 kB vs. 445 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
853 times less (49 ns vs. 42 μs) |
similar (57 ms vs. 32 ms) |
similar (2 MB vs. 929 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (33 ms vs. 26 ms) |
4 times more (136 kB vs. 34 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 33 ms) |
similar (166 kB vs. 254 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 (30 ms vs. 32 ms) |
similar (289 kB vs. 260 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (32 ms vs. 35 ms) |
similar (168 kB vs. 254 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (62 ms vs. 37 ms) |
similar (237 kB vs. 254 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (64 ms vs. 38 ms) |
similar (305 kB vs. 254 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 (65 ms vs. 34 ms) |
2 times more (578 kB vs. 254 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (40 ns vs. 49 ns) |
similar (31 ms vs. 35 ms) |
similar (334 kB vs. 335 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (40 ns vs. 49 ns) |
similar (53 ms vs. 34 ms) |
similar (635 kB vs. 361 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (58 ms vs. 38 ms) |
4 times more (2 MB vs. 360 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (87 ms vs. 44 ms) |
15 times more (5 MB vs. 361 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (34 ms vs. 28 ms) |
similar (168 kB vs. 149 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (56 ms vs. 29 ms) |
similar (238 kB vs. 150 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times more (61 ms vs. 28 ms) |
2 times more (306 kB vs. 150 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
128 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times more (63 ms vs. 27 ms) |
3 times more (579 kB vs. 150 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (32 ms vs. 31 ms) |
similar (168 kB vs. 254 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (51 ms vs. 31 ms) |
similar (238 kB vs. 255 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (57 ms vs. 32 ms) |
similar (306 kB vs. 255 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
128 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (60 ms vs. 31 ms) |
2 times more (579 kB vs. 255 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (49 ns vs. 40 ns) |
similar (30 ms vs. 33 ms) |
similar (375 kB vs. 390 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
8 |
nonempty non-singleton Tuples |
better (6 LLVM lines vs. 32 B allocs) |
similar (40 ns vs. 70 ns) |
similar (53 ms vs. 40 ms) |
similar (579 kB vs. 571 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
32 |
nonempty non-singleton Tuples |
better (6 LLVM lines vs. 32 B allocs) |
similar (49 ns vs. 69 ns) |
similar (58 ms vs. 40 ms) |
similar (1 MB vs. 571 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
128 |
nonempty non-singleton Tuples |
better (6 LLVM lines vs. 32 B allocs) |
similar (49 ns vs. 80 ns) |
similar (66 ms vs. 40 ms) |
5 times more (3 MB vs. 571 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (34 ms vs. 26 ms) |
4 times more (136 kB vs. 34 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (32 ms vs. 32 ms) |
similar (166 kB vs. 254 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 (33 ms vs. 33 ms) |
similar (289 kB vs. 260 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 (36 ms vs. 35 ms) |
similar (168 kB vs. 254 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 (62 ms vs. 36 ms) |
similar (237 kB vs. 254 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (61 ms vs. 37 ms) |
similar (305 kB vs. 254 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times more (70 ms vs. 34 ms) |
2 times more (578 kB vs. 254 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (31 ms vs. 34 ms) |
similar (334 kB vs. 335 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. 49 ns) |
similar (53 ms vs. 33 ms) |
similar (635 kB vs. 361 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (40 ns vs. 49 ns) |
similar (59 ms vs. 38 ms) |
4 times more (2 MB vs. 360 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (49 ns vs. 40 ns) |
2 times more (92 ms vs. 44 ms) |
15 times more (5 MB vs. 361 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 40 ms) |
2 times less (198 kB vs. 415 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (67 ms vs. 52 ms) |
3 times less (336 kB vs. 1 MB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (85 ms vs. 71 ms) |
3 times less (574 kB vs. 2 MB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
128 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (81 ms vs. 61 ms) |
2 times less (847 kB vs. 2 MB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (35 ms vs. 39 ms) |
2 times less (198 kB vs. 506 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (59 ms vs. 51 ms) |
3 times less (336 kB vs. 1 MB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (57 ms vs. 35 ms) |
similar (306 kB vs. 255 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
128 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (64 ms vs. 43 ms) |
similar (609 kB vs. 898 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
2 |
nonempty non-singleton Tuples |
better (6 LLVM lines vs. 64 B allocs) |
similar (49 ns vs. 80 ns) |
similar (30 ms vs. 34 ms) |
similar (360 kB vs. 408 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
8 |
nonempty non-singleton Tuples |
better (6 LLVM lines vs. 2 kB allocs) |
7 times less (49 ns vs. 350 ns) |
similar (54 ms vs. 44 ms) |
2 times less (597 kB vs. 1 MB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
32 |
nonempty non-singleton Tuples |
better (6 LLVM lines vs. 32 B allocs) |
similar (49 ns vs. 69 ns) |
similar (57 ms vs. 41 ms) |
similar (1 MB vs. 571 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
128 |
nonempty non-singleton Tuples |
better (6 LLVM lines vs. 4 kB allocs) |
6 times less (49 ns vs. 321 ns) |
similar (70 ms vs. 41 ms) |
4 times more (3 MB vs. 674 kB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
1 |
empty singleton Tuple |
better (optimized out vs. 384 B allocs) |
5 times less (40 ns vs. 230 ns) |
similar (49 ms vs. 97 ms) |
4 times less (1 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 384 B allocs) |
6 times less (40 ns vs. 240 ns) |
similar (53 ms vs. 94 ms) |
4 times less (1 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (8 LLVM lines vs. 480 B allocs) |
6 times less (49 ns vs. 300 ns) |
2 times less (41 ms vs. 92 ms) |
3 times less (2 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 384 B allocs) |
5 times less (49 ns vs. 250 ns) |
similar (54 ms vs. 100 ms) |
3 times less (1 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 384 B allocs) |
6 times less (40 ns vs. 260 ns) |
similar (109 ms vs. 108 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) |
8 times less (40 ns vs. 320 ns) |
similar (134 ms vs. 105 ms) |
similar (9 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 384 B allocs) |
12 times less (40 ns vs. 491 ns) |
similar (202 ms vs. 108 ms) |
7 times more (34 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 480 B allocs) |
5 times less (49 ns vs. 290 ns) |
2 times less (42 ms vs. 98 ms) |
2 times less (2 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) |
6 times less (49 ns vs. 301 ns) |
similar (89 ms vs. 94 ms) |
similar (5 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. 360 ns) |
similar (112 ms vs. 89 ms) |
3 times more (16 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) |
3 times more (319 ms vs. 92 ms) |
24 times more (119 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
2 |
empty & nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
7 times less (40 ns vs. 300 ns) |
similar (57 ms vs. 109 ms) |
3 times less (1 MB vs. 4 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
8 |
empty & nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
10 times less (40 ns vs. 430 ns) |
similar (105 ms vs. 112 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
22 times less (40 ns vs. 882 ns) |
similar (129 ms vs. 117 ms) |
similar (7 MB vs. 4 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
46 times less (49 ns vs. 2 μs) |
similar (178 ms vs. 108 ms) |
5 times more (23 MB vs. 4 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
2 |
nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
7 times less (40 ns vs. 290 ns) |
similar (51 ms vs. 102 ms) |
3 times less (1 MB vs. 4 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
8 |
nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
12 times less (40 ns vs. 480 ns) |
similar (96 ms vs. 118 ms) |
2 times less (3 MB vs. 6 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
27 times less (49 ns vs. 1 μs) |
similar (118 ms vs. 141 ms) |
similar (7 MB vs. 7 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
64 times less (40 ns vs. 3 μs) |
similar (172 ms vs. 137 ms) |
3 times more (22 MB vs. 7 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
2 |
nonempty non-singleton Tuples |
better (11 LLVM lines vs. 592 B allocs) |
7 times less (49 ns vs. 360 ns) |
2 times less (41 ms vs. 105 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
8 |
nonempty non-singleton Tuples |
better (17 LLVM lines vs. 2 kB allocs) |
11 times less (60 ns vs. 692 ns) |
similar (93 ms vs. 127 ms) |
similar (5 MB vs. 6 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (26 LLVM lines vs. 38 kB allocs) |
65 times less (60 ns vs. 4 μs) |
similar (121 ms vs. 160 ms) |
3 times more (20 MB vs. 7 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (26 LLVM lines vs. 522 kB allocs) |
811 times less (60 ns vs. 49 μs) |
2 times more (324 ms vs. 155 ms) |
18 times more (132 MB vs. 7 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
1 |
empty singleton Tuple |
better (optimized out vs. 256 B allocs) |
5 times less (40 ns vs. 220 ns) |
2 times less (51 ms vs. 124 ms) |
7 times less (968 kB vs. 7 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 256 B allocs) |
5 times less (40 ns vs. 220 ns) |
2 times less (50 ms vs. 135 ms) |
7 times less (998 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 (49 ns vs. 270 ns) |
3 times less (42 ms vs. 137 ms) |
4 times less (2 MB vs. 7 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
4 times less (49 ns vs. 230 ns) |
2 times less (57 ms vs. 141 ms) |
6 times less (1 MB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
5 times less (49 ns vs. 250 ns) |
similar (120 ms vs. 145 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) |
8 times less (40 ns vs. 330 ns) |
similar (119 ms vs. 141 ms) |
similar (6 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 (165 ms vs. 141 ms) |
2 times more (20 MB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (21 LLVM lines vs. 480 B allocs) |
5 times less (49 ns vs. 290 ns) |
2 times less (50 ms vs. 145 ms) |
3 times less (2 MB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
fewer allocs (48 B allocs vs. 480 B allocs) |
similar (240 ns vs. 310 ns) |
similar (121 ms vs. 134 ms) |
similar (12 MB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
fewer allocs (48 B allocs vs. 480 B allocs) |
2 times more (1 μs vs. 430 ns) |
4 times more (695 ms vs. 140 ms) |
12 times more (95 MB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
fewer allocs (48 B allocs vs. 480 B allocs) |
11 times more (10 μs vs. 941 ns) |
86 times more (12 s vs. 142 ms) |
164 times more (1 GB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
2 |
empty & nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
5 times less (49 ns vs. 280 ns) |
3 times less (56 ms vs. 195 ms) |
8 times less (1 MB vs. 10 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
8 |
empty & nonempty singleton Tuples |
better (optimized out vs. 576 B allocs) |
12 times less (49 ns vs. 621 ns) |
2 times less (112 ms vs. 296 ms) |
6 times less (3 MB vs. 18 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 960 B allocs) |
47 times less (49 ns vs. 2 μs) |
4 times less (129 ms vs. 518 ms) |
4 times less (7 MB vs. 34 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
139 times less (49 ns vs. 7 μs) |
2 times less (195 ms vs. 468 ms) |
similar (22 MB vs. 34 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
2 |
nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
5 times less (49 ns vs. 280 ns) |
3 times less (54 ms vs. 194 ms) |
9 times less (1 MB vs. 12 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
8 |
nonempty singleton Tuples |
better (optimized out vs. 576 B allocs) |
28 times less (40 ns vs. 1 μs) |
3 times less (95 ms vs. 308 ms) |
8 times less (3 MB vs. 22 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 960 B allocs) |
66 times less (49 ns vs. 3 μs) |
4 times less (116 ms vs. 476 ms) |
5 times less (7 MB vs. 35 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
161 times less (49 ns vs. 8 μs) |
2 times less (188 ms vs. 465 ms) |
similar (22 MB vs. 35 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
2 |
nonempty non-singleton Tuples |
better (11 LLVM lines vs. 640 B allocs) |
6 times less (60 ns vs. 370 ns) |
4 times less (40 ms vs. 191 ms) |
4 times less (2 MB vs. 11 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
8 |
nonempty non-singleton Tuples |
fewer allocs (208 B allocs vs. 2 kB allocs) |
14 times less (100 ns vs. 1 μs) |
2 times less (141 ms vs. 331 ms) |
similar (12 MB vs. 20 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
32 |
nonempty non-singleton Tuples |
fewer allocs (784 B allocs vs. 39 kB allocs) |
8 times less (751 ns vs. 6 μs) |
similar (439 ms vs. 557 ms) |
2 times more (76 MB vs. 33 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
128 |
nonempty non-singleton Tuples |
fewer allocs (784 B allocs vs. 525 kB allocs) |
20 times less (3 μs vs. 57 μs) |
8 times more (4 s vs. 530 ms) |
25 times more (863 MB vs. 33 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times more (53 ms vs. 27 ms) |
76 times more (1 MB vs. 15 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times more (59 ms vs. 26 ms) |
59 times more (1 MB vs. 20 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (47 ms vs. 27 ms) |
65 times more (1 MB 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 (61 ms vs. 34 ms) |
similar (1 MB vs. 1003 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (92 ms vs. 55 ms) |
3 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) |
2 times less (49 ns vs. 120 ns) |
similar (105 ms vs. 67 ms) |
3 times more (8 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) |
2 times more (161 ms vs. 64 ms) |
14 times more (29 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (46 ms vs. 33 ms) |
similar (2 MB vs. 981 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (69 ms vs. 54 ms) |
2 times less (3 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 (81 ms vs. 53 ms) |
4 times more (9 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. 130 ns) |
2 times more (150 ms vs. 55 ms) |
14 times more (32 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (61 ms vs. 36 ms) |
similar (1 MB vs. 1003 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (86 ms vs. 54 ms) |
4 times less (2 MB vs. 9 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 320 B allocs) |
3 times less (49 ns vs. 150 ns) |
similar (101 ms vs. 70 ms) |
2 times more (5 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 320 B allocs) |
3 times less (49 ns vs. 150 ns) |
2 times more (144 ms vs. 61 ms) |
8 times more (17 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (53 ms vs. 30 ms) |
similar (1 MB vs. 1008 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (75 ms vs. 50 ms) |
4 times less (2 MB vs. 9 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 320 B allocs) |
3 times less (49 ns vs. 150 ns) |
similar (90 ms vs. 61 ms) |
2 times more (5 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 320 B allocs) |
3 times less (40 ns vs. 150 ns) |
2 times more (142 ms vs. 61 ms) |
8 times more (17 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (41 ms vs. 30 ms) |
similar (1 MB vs. 1007 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (65 ms vs. 51 ms) |
3 times less (2 MB vs. 9 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (optimized out vs. 3 kB allocs) |
5 times less (49 ns vs. 250 ns) |
similar (77 ms vs. 55 ms) |
2 times more (6 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 8 kB allocs) |
17 times less (40 ns vs. 681 ns) |
similar (111 ms vs. 62 ms) |
9 times more (20 MB vs. 2 MB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (26 ms vs. 26 ms) |
similar (17 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 (26 ms vs. 27 ms) |
similar (22 kB vs. 25 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (26 ms vs. 26 ms) |
similar (22 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 (46 ms vs. 31 ms) |
similar (346 kB vs. 194 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (71 ms vs. 39 ms) |
2 times more (774 kB vs. 297 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (72 ms vs. 36 ms) |
7 times more (2 MB vs. 299 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
3 times more (115 ms vs. 37 ms) |
26 times more (8 MB vs. 310 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (34 ms vs. 31 ms) |
similar (329 kB vs. 187 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (55 ms vs. 36 ms) |
similar (825 kB vs. 434 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (62 ms vs. 36 ms) |
5 times more (2 MB vs. 494 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 4 kB allocs) |
123 times less (49 ns vs. 6 μs) |
similar (83 ms vs. 42 ms) |
20 times more (9 MB vs. 438 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (44 ms vs. 32 ms) |
similar (361 kB vs. 192 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times more (65 ms vs. 30 ms) |
4 times more (816 kB vs. 194 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times more (74 ms vs. 32 ms) |
12 times more (2 MB vs. 197 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
3 times more (91 ms vs. 29 ms) |
40 times more (8 MB vs. 208 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (39 ms vs. 28 ms) |
similar (366 kB vs. 196 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times more (58 ms vs. 28 ms) |
4 times more (821 kB vs. 198 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times more (65 ms vs. 29 ms) |
11 times more (2 MB vs. 202 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
3 times more (96 ms vs. 29 ms) |
39 times more (8 MB vs. 212 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (32 ms vs. 28 ms) |
similar (369 kB vs. 260 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (54 ms vs. 30 ms) |
2 times more (834 kB vs. 292 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (60 ms vs. 30 ms) |
7 times more (2 MB vs. 331 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times more (78 ms vs. 29 ms) |
32 times more (9 MB vs. 283 kB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (33 ms vs. 67 ms) |
16 times less (130 kB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times less (33 ms vs. 73 ms) |
12 times less (165 kB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (31 ms vs. 50 ms) |
17 times less (138 kB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times less (39 ms vs. 85 ms) |
12 times less (169 kB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (72 ms vs. 82 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (71 ms vs. 83 ms) |
similar (2 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 (49 ns vs. 49 ns) |
similar (83 ms vs. 90 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (33 ms vs. 47 ms) |
17 times less (147 kB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (61 ms vs. 46 ms) |
similar (2 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 (60 ms vs. 45 ms) |
similar (2 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. 49 ns) |
similar (77 ms vs. 52 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (40 ms vs. 79 ms) |
14 times less (169 kB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (66 ms vs. 90 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (71 ms vs. 104 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
28 times less (49 ns vs. 1 μs) |
similar (73 ms vs. 81 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times less (34 ms vs. 71 ms) |
14 times less (174 kB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (61 ms vs. 78 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (63 ms vs. 91 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
28 times less (49 ns vs. 1 μs) |
similar (71 ms vs. 79 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (31 ms vs. 43 ms) |
16 times less (172 kB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (60 ms vs. 48 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (64 ms vs. 52 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
942 times less (40 ns vs. 38 μs) |
similar (69 ms vs. 53 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times less (31 ms vs. 75 ms) |
12 times less (180 kB vs. 2 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 41 ns) |
2 times less (33 ms vs. 80 ms) |
11 times less (215 kB vs. 2 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (31 ms vs. 52 ms) |
14 times less (188 kB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times less (39 ms vs. 97 ms) |
9 times less (262 kB vs. 2 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (69 ms vs. 100 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. 40 ns) |
similar (72 ms vs. 89 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (81 ms vs. 94 ms) |
similar (3 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. 40 ns) |
similar (34 ms vs. 56 ms) |
11 times less (240 kB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (63 ms vs. 54 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (61 ms vs. 54 ms) |
similar (2 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 (74 ms vs. 61 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times less (37 ms vs. 86 ms) |
10 times less (262 kB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (67 ms vs. 98 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (71 ms vs. 115 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 19 LLVM lines) |
34 times less (40 ns vs. 1 μs) |
similar (73 ms vs. 89 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times less (41 ms vs. 83 ms) |
10 times less (267 kB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (61 ms vs. 86 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (62 ms vs. 103 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
28 times less (49 ns vs. 1 μs) |
similar (71 ms vs. 87 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (31 ms vs. 54 ms) |
11 times less (265 kB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (60 ms vs. 56 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (65 ms vs. 60 ms) |
similar (2 MB vs. 5 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
880 times less (49 ns vs. 43 μs) |
similar (69 ms vs. 61 ms) |
similar (4 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) |
3 times less (49 ns vs. 190 ns) |
2 times less (37 ms vs. 75 ms) |
10 times less (273 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. 190 ns) |
2 times less (37 ms vs. 75 ms) |
9 times less (306 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. 190 ns) |
2 times less (30 ms vs. 66 ms) |
9 times less (354 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) |
4 times less (49 ns vs. 210 ns) |
similar (42 ms vs. 80 ms) |
11 times less (310 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. 380 ns) |
similar (91 ms vs. 92 ms) |
8 times less (443 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) |
22 times less (49 ns vs. 1 μs) |
similar (85 ms vs. 86 ms) |
6 times less (606 kB 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) |
48 times less (80 ns vs. 4 μs) |
similar (112 ms vs. 89 ms) |
2 times less (2 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 (35 ms vs. 74 ms) |
10 times less (362 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) |
10 times less (40 ns vs. 400 ns) |
similar (68 ms vs. 72 ms) |
7 times less (549 kB 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) |
22 times less (49 ns vs. 1 μs) |
similar (70 ms vs. 69 ms) |
4 times less (831 kB 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) |
48 times less (80 ns vs. 4 μs) |
similar (98 ms vs. 76 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
2 |
empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 112 B allocs) |
5 times less (40 ns vs. 230 ns) |
similar (44 ms vs. 82 ms) |
11 times less (324 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
8 |
empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 208 B allocs) |
9 times less (49 ns vs. 461 ns) |
similar (87 ms vs. 87 ms) |
8 times less (467 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 592 B allocs) |
36 times less (40 ns vs. 1 μs) |
similar (84 ms vs. 90 ms) |
5 times less (631 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (69 LLVM lines w/ Const vs. 2 kB allocs) |
65 times less (80 ns vs. 5 μs) |
similar (101 ms vs. 77 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
2 |
nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 112 B allocs) |
4 times less (49 ns vs. 230 ns) |
similar (39 ms vs. 75 ms) |
11 times less (329 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
8 |
nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 208 B allocs) |
9 times less (49 ns vs. 470 ns) |
similar (71 ms vs. 75 ms) |
8 times less (466 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
32 |
nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 592 B allocs) |
29 times less (49 ns vs. 1 μs) |
similar (80 ms vs. 77 ms) |
5 times less (629 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
128 |
nonempty singleton Tuples |
better (69 LLVM lines w/ Const vs. 2 kB allocs) |
64 times less (80 ns vs. 5 μs) |
similar (97 ms vs. 74 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
2 |
nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 176 B allocs) |
6 times less (40 ns vs. 240 ns) |
2 times less (32 ms vs. 66 ms) |
10 times less (408 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
8 |
nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 2 kB allocs) |
14 times less (40 ns vs. 581 ns) |
similar (66 ms vs. 70 ms) |
7 times less (560 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 37 kB allocs) |
386 times less (40 ns vs. 15 μs) |
similar (70 ms vs. 72 ms) |
4 times less (855 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (69 LLVM lines w/ Const vs. 523 kB allocs) |
607 times less (80 ns vs. 49 μs) |
similar (92 ms vs. 67 ms) |
similar (2 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. 170 ns) |
2 times less (38 ms vs. 78 ms) |
9 times less (324 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. 170 ns) |
2 times less (37 ms vs. 84 ms) |
8 times less (356 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 (32 ms vs. 70 ms) |
8 times less (405 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) |
5 times less (40 ns vs. 220 ns) |
similar (43 ms vs. 86 ms) |
9 times less (404 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. 380 ns) |
similar (89 ms vs. 95 ms) |
7 times less (536 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 (82 ms vs. 87 ms) |
5 times less (699 kB 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) |
47 times less (80 ns vs. 4 μs) |
similar (110 ms vs. 89 ms) |
2 times less (2 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) |
5 times less (40 ns vs. 210 ns) |
2 times less (37 ms vs. 83 ms) |
9 times less (455 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) |
9 times less (40 ns vs. 370 ns) |
similar (65 ms vs. 74 ms) |
6 times less (643 kB 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) |
27 times less (40 ns vs. 1 μs) |
similar (68 ms vs. 74 ms) |
4 times less (924 kB 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) |
55 times less (69 ns vs. 4 μs) |
similar (101 ms vs. 79 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
2 |
empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 112 B allocs) |
4 times less (49 ns vs. 230 ns) |
similar (48 ms vs. 86 ms) |
9 times less (417 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
8 |
empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 208 B allocs) |
9 times less (49 ns vs. 460 ns) |
similar (82 ms vs. 89 ms) |
7 times less (560 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 592 B allocs) |
29 times less (49 ns vs. 1 μs) |
similar (84 ms vs. 90 ms) |
5 times less (724 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 2 kB allocs) |
73 times less (71 ns vs. 5 μs) |
similar (91 ms vs. 80 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
2 |
nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 112 B allocs) |
4 times less (49 ns vs. 230 ns) |
2 times less (39 ms vs. 79 ms) |
9 times less (422 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
8 |
nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 224 B allocs) |
9 times less (49 ns vs. 470 ns) |
similar (71 ms vs. 78 ms) |
7 times less (560 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
32 |
nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 992 B allocs) |
32 times less (49 ns vs. 2 μs) |
similar (78 ms vs. 84 ms) |
5 times less (722 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
128 |
nonempty singleton Tuples |
better (73 LLVM lines w/ Const vs. 4 kB allocs) |
73 times less (80 ns vs. 6 μs) |
similar (99 ms vs. 78 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
2 |
nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 176 B allocs) |
6 times less (40 ns vs. 240 ns) |
2 times less (32 ms vs. 68 ms) |
8 times less (501 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
8 |
nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 2 kB allocs) |
12 times less (49 ns vs. 590 ns) |
similar (65 ms vs. 75 ms) |
6 times less (653 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 38 kB allocs) |
93 times less (40 ns vs. 4 μs) |
similar (74 ms vs. 74 ms) |
4 times less (948 kB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (73 LLVM lines w/ Const vs. 525 kB allocs) |
614 times less (80 ns vs. 49 μs) |
similar (92 ms vs. 70 ms) |
similar (3 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. 79 ms) |
13 times less (262 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times less (36 ms vs. 83 ms) |
12 times less (296 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (34 ms vs. 56 ms) |
14 times less (269 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (46 ms vs. 90 ms) |
12 times less (301 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (80 ms vs. 99 ms) |
similar (2 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 (73 ms vs. 90 ms) |
similar (2 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 (49 ns vs. 49 ns) |
similar (83 ms vs. 89 ms) |
similar (3 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 (42 ms vs. 59 ms) |
14 times less (278 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (65 ms vs. 59 ms) |
similar (2 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. 49 ns) |
similar (66 ms vs. 59 ms) |
2 times less (2 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 (40 ns vs. 49 ns) |
similar (87 ms vs. 56 ms) |
similar (4 MB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (42 ms vs. 84 ms) |
11 times less (352 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (73 ms vs. 90 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (77 ms vs. 100 ms) |
2 times less (3 MB vs. 6 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 25 LLVM lines) |
35 times less (40 ns vs. 1 μs) |
similar (78 ms vs. 86 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (41 ms vs. 78 ms) |
11 times less (356 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (65 ms vs. 81 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (70 ms vs. 84 ms) |
2 times less (3 MB vs. 6 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 25 LLVM lines) |
27 times less (49 ns vs. 1 μs) |
similar (76 ms vs. 84 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (35 ms vs. 53 ms) |
12 times less (359 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (64 ms vs. 58 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (69 ms vs. 62 ms) |
2 times less (3 MB vs. 7 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
943 times less (49 ns vs. 46 μs) |
similar (75 ms vs. 60 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times less (31 ms vs. 76 ms) |
21 times less (104 kB vs. 2 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times less (34 ms vs. 76 ms) |
16 times less (139 kB vs. 2 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (29 ms vs. 52 ms) |
22 times less (112 kB vs. 2 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times less (35 ms vs. 93 ms) |
16 times less (142 kB vs. 2 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (74 ms vs. 92 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (67 ms vs. 85 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (76 ms vs. 92 ms) |
similar (3 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 (29 ms vs. 54 ms) |
21 times less (120 kB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (57 ms vs. 54 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (59 ms vs. 60 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (75 ms vs. 54 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times less (34 ms vs. 79 ms) |
18 times less (142 kB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (62 ms vs. 91 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (69 ms vs. 119 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
29 times less (49 ns vs. 1 μs) |
similar (69 ms vs. 84 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times less (31 ms vs. 75 ms) |
18 times less (147 kB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (57 ms vs. 84 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (66 ms vs. 96 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
27 times less (49 ns vs. 1 μs) |
similar (68 ms vs. 84 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (28 ms vs. 48 ms) |
20 times less (145 kB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (59 ms vs. 51 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (59 ms vs. 55 ms) |
similar (2 MB vs. 5 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
936 times less (49 ns vs. 46 μs) |
similar (71 ms vs. 57 ms) |
similar (3 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 (33 ms vs. 76 ms) |
21 times less (104 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 (32 ms vs. 79 ms) |
16 times less (139 kB vs. 2 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (31 ms vs. 50 ms) |
23 times less (112 kB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times less (36 ms vs. 81 ms) |
16 times less (144 kB 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 (70 ms vs. 93 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (72 ms vs. 86 ms) |
similar (2 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 (82 ms vs. 90 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (33 ms vs. 52 ms) |
22 times less (121 kB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (65 ms vs. 53 ms) |
similar (2 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 (62 ms vs. 53 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (73 ms vs. 55 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times less (36 ms vs. 84 ms) |
18 times less (144 kB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (65 ms vs. 98 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (76 ms vs. 116 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
34 times less (40 ns vs. 1 μs) |
similar (75 ms vs. 89 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times less (34 ms vs. 75 ms) |
18 times less (148 kB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (60 ms vs. 88 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (66 ms vs. 98 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
28 times less (49 ns vs. 1 μs) |
similar (71 ms vs. 84 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (31 ms vs. 48 ms) |
20 times less (146 kB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (58 ms vs. 51 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (66 ms vs. 56 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
912 times less (49 ns vs. 45 μs) |
similar (69 ms vs. 59 ms) |
similar (3 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 (38 ms vs. 83 ms) |
24 times less (147 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. 40 ns) |
2 times less (39 ms vs. 90 ms) |
19 times less (181 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. 40 ns) |
similar (32 ms vs. 61 ms) |
24 times less (154 kB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
2 times less (45 ms vs. 100 ms) |
12 times less (302 kB 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 (76 ms vs. 109 ms) |
similar (2 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. 49 ns) |
similar (75 ms vs. 103 ms) |
similar (2 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. 60 ns) |
similar (86 ms vs. 110 ms) |
similar (3 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 (38 ms vs. 61 ms) |
14 times less (279 kB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
similar (69 ms vs. 63 ms) |
similar (2 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. 49 ns) |
similar (67 ms vs. 63 ms) |
2 times less (2 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. 50 ns) |
similar (74 ms vs. 66 ms) |
similar (4 MB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
2 times less (44 ms vs. 97 ms) |
13 times less (310 kB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
similar (74 ms vs. 113 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
similar (77 ms vs. 138 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 31 LLVM lines) |
29 times less (49 ns vs. 1 μs) |
similar (79 ms vs. 99 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
2 times less (39 ms vs. 87 ms) |
13 times less (314 kB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 40 ns) |
similar (68 ms vs. 98 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (67 ms vs. 113 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 31 LLVM lines) |
27 times less (49 ns vs. 1 μs) |
similar (76 ms vs. 96 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
similar (35 ms vs. 58 ms) |
14 times less (312 kB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
similar (63 ms vs. 61 ms) |
2 times less (2 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 40 ns) |
similar (68 ms vs. 69 ms) |
2 times less (2 MB vs. 6 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 521 kB allocs) |
913 times less (49 ns vs. 45 μs) |
similar (75 ms vs. 71 ms) |
similar (4 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 (40 ms vs. 66 ms) |
19 times less (255 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. 49 ns) |
similar (42 ms vs. 76 ms) |
13 times less (365 kB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 40 ns) |
2 times less (33 ms vs. 72 ms) |
12 times less (400 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. 50 ns) |
similar (52 ms vs. 74 ms) |
10 times less (488 kB 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. 60 ns) |
similar (85 ms vs. 80 ms) |
2 times less (2 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. 60 ns) |
similar (83 ms vs. 83 ms) |
similar (2 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. 60 ns) |
similar (90 ms vs. 82 ms) |
similar (3 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 (40 ns vs. 50 ns) |
similar (35 ms vs. 68 ms) |
9 times less (534 kB 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 (66 ms vs. 71 ms) |
similar (2 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 (40 ns vs. 49 ns) |
similar (67 ms vs. 72 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 49 ns) |
similar (74 ms vs. 75 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 26 LLVM lines) |
similar (49 ns vs. 69 ns) |
similar (50 ms vs. 78 ms) |
9 times less (550 kB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 86 LLVM lines) |
3 times less (40 ns vs. 130 ns) |
similar (93 ms vs. 82 ms) |
2 times less (3 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 32 LLVM lines) |
9 times less (40 ns vs. 390 ns) |
similar (121 ms vs. 88 ms) |
similar (3 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 32 LLVM lines) |
28 times less (49 ns vs. 1 μs) |
similar (112 ms vs. 74 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 26 LLVM lines) |
similar (49 ns vs. 69 ns) |
similar (47 ms vs. 70 ms) |
8 times less (631 kB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 146 LLVM lines) |
100 times less (40 ns vs. 4 μs) |
similar (83 ms vs. 71 ms) |
2 times less (3 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
32 |
nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 55 LLVM lines) |
581 times less (49 ns vs. 28 μs) |
similar (95 ms vs. 75 ms) |
similar (3 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 55 LLVM lines) |
1973 times less (49 ns vs. 97 μs) |
similar (103 ms vs. 73 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 64 B allocs) |
similar (49 ns vs. 90 ns) |
2 times less (33 ms vs. 69 ms) |
7 times less (696 kB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 2 kB allocs) |
22 times less (49 ns vs. 1 μs) |
similar (61 ms vs. 72 ms) |
2 times less (3 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 37 kB allocs) |
394 times less (49 ns vs. 19 μs) |
similar (68 ms vs. 73 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 521 kB allocs) |
1638 times less (40 ns vs. 66 μs) |
similar (77 ms vs. 72 ms) |
similar (5 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. 49 ns) |
similar (39 ms vs. 64 ms) |
18 times less (255 kB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (40 ms vs. 67 ms) |
12 times less (365 kB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (49 ns vs. 49 ns) |
2 times less (31 ms vs. 69 ms) |
11 times less (400 kB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 49 ns) |
similar (52 ms vs. 68 ms) |
8 times less (531 kB 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 (80 ms vs. 74 ms) |
similar (2 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 (82 ms vs. 78 ms) |
similar (3 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) |
similar (93 ms vs. 95 ms) |
similar (3 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 (49 ns vs. 50 ns) |
similar (34 ms vs. 64 ms) |
8 times less (578 kB 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 (62 ms vs. 65 ms) |
similar (2 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 (40 ns vs. 60 ns) |
similar (63 ms vs. 68 ms) |
similar (3 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 (49 ns vs. 60 ns) |
similar (79 ms vs. 68 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 26 LLVM lines) |
similar (49 ns vs. 80 ns) |
similar (51 ms vs. 74 ms) |
8 times less (594 kB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 86 LLVM lines) |
2 times less (49 ns vs. 130 ns) |
similar (93 ms vs. 75 ms) |
2 times less (3 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 32 LLVM lines) |
7 times less (49 ns vs. 390 ns) |
similar (114 ms vs. 78 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 32 LLVM lines) |
29 times less (49 ns vs. 1 μs) |
similar (114 ms vs. 69 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 26 LLVM lines) |
similar (49 ns vs. 69 ns) |
similar (47 ms vs. 67 ms) |
7 times less (674 kB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 146 LLVM lines) |
82 times less (49 ns vs. 4 μs) |
similar (80 ms vs. 68 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
32 |
nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 55 LLVM lines) |
581 times less (49 ns vs. 28 μs) |
similar (96 ms vs. 69 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 55 LLVM lines) |
1991 times less (49 ns vs. 98 μs) |
similar (103 ms vs. 69 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 64 B allocs) |
similar (49 ns vs. 90 ns) |
similar (33 ms vs. 65 ms) |
6 times less (740 kB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 2 kB allocs) |
21 times less (49 ns vs. 1 μs) |
similar (63 ms vs. 68 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 37 kB allocs) |
487 times less (40 ns vs. 19 μs) |
similar (69 ms vs. 68 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 521 kB allocs) |
1248 times less (49 ns vs. 61 μs) |
similar (78 ms vs. 71 ms) |
similar (5 MB vs. 6 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times less (33 ms vs. 71 ms) |
8 times less (142 kB vs. 1 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times less (32 ms vs. 74 ms) |
6 times less (177 kB vs. 1 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (30 ms vs. 45 ms) |
5 times less (341 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) |
2 times less (37 ms vs. 76 ms) |
4 times less (364 kB vs. 1 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (66 ms vs. 77 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (74 ms vs. 80 ms) |
similar (2 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 (82 ms vs. 96 ms) |
similar (3 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. 60 ns) |
similar (31 ms vs. 45 ms) |
3 times less (590 kB 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 (59 ms vs. 47 ms) |
similar (3 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. 50 ns) |
similar (67 ms vs. 50 ms) |
similar (4 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. 60 ns) |
similar (82 ms vs. 49 ms) |
3 times more (10 MB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (38 ms vs. 74 ms) |
4 times less (371 kB vs. 1 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (92 ms vs. 107 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (148 ms vs. 171 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 44 LLVM lines) |
35 times less (40 ns vs. 1 μs) |
2 times more (166 ms vs. 82 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (37 ms vs. 72 ms) |
3 times less (451 kB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (85 ms vs. 97 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (117 ms vs. 135 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 43 LLVM lines) |
28 times less (49 ns vs. 1 μs) |
similar (148 ms vs. 82 ms) |
similar (5 MB vs. 3 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (30 ms vs. 42 ms) |
3 times less (713 kB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (60 ms vs. 52 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 60 ns) |
similar (70 ms vs. 68 ms) |
2 times less (6 MB vs. 12 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (8 LLVM lines vs. 521 kB allocs) |
841 times less (50 ns vs. 42 μs) |
similar (88 ms vs. 53 ms) |
3 times more (12 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) |
2 times less (31 ms vs. 63 ms) |
8 times less (142 kB vs. 1 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
2 times less (32 ms vs. 65 ms) |
6 times less (177 kB vs. 1 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (60 ns vs. 49 ns) |
similar (32 ms vs. 41 ms) |
5 times less (341 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 (38 ms vs. 69 ms) |
3 times less (408 kB vs. 1 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (70 ms vs. 76 ms) |
similar (2 MB vs. 1 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (75 ms vs. 81 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (83 ms vs. 88 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (33 ms vs. 41 ms) |
3 times less (634 kB 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 (60 ms vs. 43 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 49 ns) |
similar (64 ms vs. 45 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 49 ns) |
similar (82 ms vs. 43 ms) |
4 times more (10 MB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (38 ms vs. 72 ms) |
3 times less (415 kB vs. 1 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (80 ms vs. 90 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (117 ms vs. 127 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 44 LLVM lines) |
29 times less (49 ns vs. 1 μs) |
similar (109 ms vs. 79 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (37 ms vs. 68 ms) |
3 times less (495 kB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (73 ms vs. 79 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (94 ms vs. 100 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 43 LLVM lines) |
28 times less (49 ns vs. 1 μs) |
similar (102 ms vs. 77 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (30 ms vs. 39 ms) |
3 times less (761 kB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (62 ms vs. 43 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (69 ms vs. 52 ms) |
similar (5 MB vs. 7 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (8 LLVM lines vs. 521 kB allocs) |
755 times less (60 ns vs. 45 μs) |
similar (87 ms vs. 47 ms) |
2 times more (11 MB vs. 4 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
4 times less (31 ms vs. 152 ms) |
37 times less (613 kB vs. 23 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
4 times less (32 ms vs. 151 ms) |
36 times less (647 kB 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) |
4 times less (27 ms vs. 115 ms) |
38 times less (620 kB 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 (49 ns vs. 49 ns) |
4 times less (37 ms vs. 176 ms) |
26 times less (935 kB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (85 ms vs. 169 ms) |
6 times less (4 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (106 ms vs. 181 ms) |
3 times less (7 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (192 ms vs. 184 ms) |
similar (19 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (49 ns vs. 49 ns) |
4 times less (31 ms vs. 130 ms) |
27 times less (913 kB 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 (84 ms vs. 135 ms) |
7 times less (4 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (49 ns vs. 40 ns) |
similar (98 ms vs. 135 ms) |
3 times less (7 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 (172 ms vs. 129 ms) |
similar (20 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
2 |
empty & nonempty singleton Tuples |
better (optimized out vs. 15 LLVM lines) |
similar (49 ns vs. 60 ns) |
4 times less (37 ms vs. 170 ms) |
27 times less (935 kB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
8 |
empty & nonempty singleton Tuples |
better (optimized out vs. 82 LLVM lines) |
3 times less (40 ns vs. 120 ns) |
2 times less (88 ms vs. 177 ms) |
6 times less (4 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
7 times less (49 ns vs. 390 ns) |
similar (109 ms vs. 186 ms) |
3 times less (7 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
29 times less (49 ns vs. 1 μs) |
similar (177 ms vs. 164 ms) |
similar (19 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
2 |
nonempty singleton Tuples |
better (optimized out vs. 15 LLVM lines) |
similar (49 ns vs. 60 ns) |
4 times less (35 ms vs. 159 ms) |
27 times less (940 kB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
8 |
nonempty singleton Tuples |
better (optimized out vs. 82 LLVM lines) |
2 times less (49 ns vs. 130 ns) |
2 times less (79 ms vs. 158 ms) |
6 times less (4 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
7 times less (49 ns vs. 390 ns) |
similar (98 ms vs. 159 ms) |
3 times less (7 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
28 times less (49 ns vs. 1 μs) |
similar (170 ms vs. 158 ms) |
similar (19 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
2 |
nonempty non-singleton Tuples |
better (optimized out vs. 64 B allocs) |
similar (49 ns vs. 80 ns) |
4 times less (30 ms vs. 129 ms) |
27 times less (938 kB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
8 |
nonempty non-singleton Tuples |
better (optimized out vs. 2 kB allocs) |
5 times less (49 ns vs. 250 ns) |
similar (83 ms vs. 139 ms) |
7 times less (4 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (optimized out vs. 37 kB allocs) |
56 times less (49 ns vs. 3 μs) |
similar (96 ms vs. 137 ms) |
3 times less (7 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
855 times less (49 ns vs. 42 μs) |
similar (167 ms vs. 130 ms) |
similar (20 MB vs. 26 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
4 times less (29 ms vs. 143 ms) |
36 times less (613 kB vs. 22 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
4 times less (31 ms vs. 140 ms) |
35 times less (647 kB vs. 22 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
4 times less (27 ms vs. 112 ms) |
37 times less (620 kB 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 (40 ns vs. 49 ns) |
4 times less (40 ms vs. 161 ms) |
24 times less (981 kB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (40 ns vs. 49 ns) |
similar (88 ms vs. 165 ms) |
6 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 (40 ns vs. 49 ns) |
similar (107 ms vs. 170 ms) |
3 times less (7 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 (187 ms vs. 170 ms) |
similar (19 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 (34 ms vs. 129 ms) |
26 times less (959 kB vs. 25 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 (40 ns vs. 49 ns) |
similar (83 ms vs. 126 ms) |
6 times less (4 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (40 ns vs. 49 ns) |
similar (95 ms vs. 121 ms) |
3 times less (7 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 (172 ms vs. 125 ms) |
similar (20 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
2 |
empty & nonempty singleton Tuples |
better (optimized out vs. 9 LLVM lines) |
similar (40 ns vs. 60 ns) |
4 times less (38 ms vs. 163 ms) |
25 times less (981 kB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
8 |
empty & nonempty singleton Tuples |
better (optimized out vs. 82 LLVM lines) |
3 times less (40 ns vs. 130 ns) |
similar (89 ms vs. 165 ms) |
6 times less (4 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
7 times less (49 ns vs. 390 ns) |
similar (108 ms vs. 174 ms) |
3 times less (7 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
35 times less (40 ns vs. 1 μs) |
similar (176 ms vs. 158 ms) |
similar (19 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
2 |
nonempty singleton Tuples |
better (optimized out vs. 9 LLVM lines) |
similar (40 ns vs. 60 ns) |
4 times less (36 ms vs. 148 ms) |
25 times less (986 kB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
8 |
nonempty singleton Tuples |
better (optimized out vs. 82 LLVM lines) |
3 times less (40 ns vs. 120 ns) |
similar (78 ms vs. 150 ms) |
6 times less (4 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
9 times less (40 ns vs. 380 ns) |
similar (93 ms vs. 157 ms) |
3 times less (7 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
28 times less (49 ns vs. 1 μs) |
similar (169 ms vs. 149 ms) |
similar (19 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
2 |
nonempty non-singleton Tuples |
better (optimized out vs. 64 B allocs) |
similar (49 ns vs. 80 ns) |
3 times less (30 ms vs. 118 ms) |
25 times less (984 kB vs. 25 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
8 |
nonempty non-singleton Tuples |
better (optimized out vs. 2 kB allocs) |
4 times less (49 ns vs. 240 ns) |
similar (76 ms vs. 126 ms) |
6 times less (4 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (optimized out vs. 37 kB allocs) |
50 times less (49 ns vs. 2 μs) |
similar (94 ms vs. 129 ms) |
3 times less (7 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
900 times less (49 ns vs. 44 μs) |
similar (167 ms vs. 128 ms) |
similar (20 MB vs. 25 MB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (34 ms vs. 33 ms) |
similar (198 kB vs. 181 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (36 ms vs. 33 ms) |
similar (239 kB vs. 246 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (33 ms vs. 34 ms) |
similar (213 kB vs. 235 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (40 ms vs. 39 ms) |
similar (242 kB vs. 407 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (63 ms vs. 44 ms) |
3 times less (329 kB vs. 1 MB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (66 ms vs. 34 ms) |
similar (456 kB vs. 269 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times more (77 ms vs. 34 ms) |
3 times more (963 kB vs. 269 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (37 ms vs. 37 ms) |
similar (215 kB vs. 420 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (53 ms vs. 39 ms) |
6 times less (327 kB vs. 2 MB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (54 ms vs. 31 ms) |
similar (455 kB vs. 273 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times more (70 ms vs. 34 ms) |
3 times more (962 kB vs. 274 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (39 ms vs. 37 ms) |
similar (287 kB vs. 451 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (63 ms vs. 43 ms) |
3 times less (375 kB vs. 1 MB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 31 LLVM lines) |
2 times less (40 ns vs. 80 ns) |
similar (66 ms vs. 43 ms) |
similar (502 kB vs. 608 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 31 LLVM lines) |
similar (49 ns vs. 80 ns) |
similar (69 ms vs. 37 ms) |
similar (1009 kB vs. 608 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (36 ms vs. 35 ms) |
similar (242 kB vs. 407 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (53 ms vs. 37 ms) |
3 times less (329 kB vs. 1 MB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (56 ms vs. 32 ms) |
similar (457 kB vs. 270 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
128 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times more (68 ms vs. 30 ms) |
3 times more (964 kB vs. 270 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (32 ms vs. 34 ms) |
2 times less (241 kB vs. 506 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (50 ms vs. 40 ms) |
6 times less (328 kB vs. 2 MB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (55 ms vs. 32 ms) |
similar (455 kB vs. 275 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times more (64 ms vs. 32 ms) |
3 times more (962 kB vs. 278 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (43 ms vs. 41 ms) |
similar (358 kB vs. 344 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (37 ms vs. 43 ms) |
similar (302 kB vs. 399 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (33 ms vs. 39 ms) |
similar (342 kB vs. 471 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (40 ms vs. 49 ms) |
similar (307 kB vs. 562 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (63 ms vs. 62 ms) |
3 times less (408 kB vs. 2 MB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (66 ms vs. 44 ms) |
similar (593 kB vs. 691 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (77 ms vs. 44 ms) |
similar (1 MB vs. 691 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (33 ms vs. 44 ms) |
similar (353 kB vs. 670 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (54 ms vs. 62 ms) |
4 times less (516 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 (54 ms vs. 43 ms) |
similar (852 kB vs. 696 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (68 ms vs. 44 ms) |
3 times more (2 MB vs. 697 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (52 ms vs. 39 ms) |
similar (397 kB vs. 467 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (68 ms vs. 49 ms) |
3 times less (507 kB vs. 2 MB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 30 LLVM lines) |
9 times less (40 ns vs. 390 ns) |
similar (76 ms vs. 50 ms) |
similar (711 kB vs. 710 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 30 LLVM lines) |
23 times less (40 ns vs. 921 ns) |
similar (82 ms vs. 44 ms) |
similar (1 MB vs. 710 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (36 ms vs. 46 ms) |
similar (312 kB vs. 527 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (54 ms vs. 42 ms) |
3 times less (421 kB vs. 2 MB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 30 LLVM lines) |
7 times less (49 ns vs. 390 ns) |
similar (58 ms vs. 48 ms) |
similar (620 kB vs. 710 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 30 LLVM lines) |
34 times less (40 ns vs. 1 μs) |
similar (70 ms vs. 42 ms) |
similar (1 MB vs. 710 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (30 ms vs. 39 ms) |
similar (382 kB vs. 724 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (49 ms vs. 48 ms) |
5 times less (530 kB vs. 3 MB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (optimized out vs. 38 kB allocs) |
67 times less (40 ns vs. 3 μs) |
similar (53 ms vs. 46 ms) |
similar (878 kB vs. 753 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 525 kB allocs) |
884 times less (40 ns vs. 35 μs) |
similar (65 ms vs. 45 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 (51 ms vs. 47 ms) |
similar (272 kB vs. 201 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (53 ms vs. 50 ms) |
similar (307 kB vs. 267 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (47 ms vs. 47 ms) |
similar (316 kB vs. 256 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (59 ms vs. 55 ms) |
similar (328 kB vs. 428 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (78 ms vs. 54 ms) |
2 times less (539 kB vs. 1 MB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (115 ms vs. 61 ms) |
2 times more (1 MB vs. 397 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
3 times more (204 ms vs. 55 ms) |
9 times more (4 MB vs. 397 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (55 ms vs. 54 ms) |
similar (356 kB vs. 441 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (76 ms vs. 53 ms) |
2 times less (695 kB vs. 2 MB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (102 ms vs. 57 ms) |
4 times more (2 MB vs. 401 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 49 ns) |
4 times more (231 ms vs. 56 ms) |
14 times more (6 MB vs. 402 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (60 ms vs. 60 ms) |
similar (372 kB vs. 464 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (96 ms vs. 87 ms) |
2 times less (681 kB vs. 2 MB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. type-unstable) |
7 times less (49 ns vs. 370 ns) |
similar (142 ms vs. 98 ms) |
2 times more (1 MB vs. 747 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. type-unstable) |
7 times less (49 ns vs. 370 ns) |
2 times more (244 ms vs. 84 ms) |
5 times more (4 MB vs. 747 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (55 ms vs. 53 ms) |
similar (377 kB vs. 469 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (86 ms vs. 75 ms) |
2 times less (685 kB vs. 2 MB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times more (121 ms vs. 54 ms) |
3 times more (1 MB vs. 464 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. type-unstable) |
2 times less (40 ns vs. 80 ns) |
4 times more (233 ms vs. 56 ms) |
7 times more (4 MB vs. 505 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (53 ms vs. 52 ms) |
similar (440 kB vs. 563 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 50 ns) |
similar (88 ms vs. 79 ms) |
3 times less (874 kB vs. 3 MB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 49 ns) |
2 times more (137 ms vs. 55 ms) |
4 times more (2 MB vs. 448 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
128 |
nonempty non-singleton Tuples |
better (8 LLVM lines vs. 12 kB allocs) |
13 times less (49 ns vs. 651 ns) |
5 times more (297 ms vs. 58 ms) |
12 times more (6 MB vs. 495 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (54 ms vs. 55 ms) |
similar (411 kB vs. 406 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (53 ms vs. 58 ms) |
similar (445 kB vs. 466 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (60 ns vs. 49 ns) |
similar (47 ms vs. 52 ms) |
similar (532 kB vs. 533 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (64 ms vs. 66 ms) |
similar (469 kB vs. 629 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (80 ms vs. 78 ms) |
2 times less (707 kB vs. 2 MB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (108 ms vs. 67 ms) |
similar (1 MB vs. 761 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
3 times more (209 ms vs. 63 ms) |
5 times more (4 MB vs. 761 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (56 ms vs. 60 ms) |
similar (588 kB vs. 732 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (60 ns vs. 49 ns) |
similar (75 ms vs. 73 ms) |
2 times less (1011 kB vs. 2 MB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (101 ms vs. 63 ms) |
3 times more (2 MB vs. 765 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (60 ns vs. 49 ns) |
3 times more (231 ms vs. 66 ms) |
10 times more (8 MB vs. 765 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (63 ms vs. 57 ms) |
similar (513 kB vs. 534 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (99 ms vs. 60 ms) |
similar (842 kB vs. 1 MB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times more (145 ms vs. 67 ms) |
2 times more (2 MB vs. 825 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
128 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
4 times more (248 ms vs. 59 ms) |
5 times more (5 MB vs. 825 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (60 ms vs. 54 ms) |
similar (517 kB vs. 594 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (88 ms vs. 56 ms) |
similar (847 kB vs. 2 MB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times more (127 ms vs. 58 ms) |
2 times more (2 MB vs. 825 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
128 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
4 times more (236 ms vs. 58 ms) |
5 times more (5 MB vs. 825 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (49 ns vs. 50 ns) |
similar (54 ms vs. 55 ms) |
similar (668 kB vs. 787 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (86 ms vs. 62 ms) |
2 times less (1 MB vs. 3 MB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (50 ns vs. 60 ns) |
2 times more (137 ms vs. 61 ms) |
3 times more (3 MB vs. 809 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
128 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 60 ns) |
4 times more (301 ms vs. 61 ms) |
10 times more (8 MB vs. 815 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (30 ms vs. 32 ms) |
3 times less (181 kB vs. 603 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (32 ms vs. 31 ms) |
2 times less (281 kB vs. 641 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (60 ns vs. 49 ns) |
similar (32 ms vs. 40 ms) |
similar (526 kB vs. 828 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (39 ms vs. 36 ms) |
similar (366 kB vs. 704 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (66 ms vs. 34 ms) |
similar (861 kB vs. 936 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. 631 ns) |
similar (71 ms vs. 130 ms) |
4 times less (2 MB vs. 7 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 128 B allocs) |
50 times less (40 ns vs. 2 μs) |
similar (112 ms vs. 125 ms) |
similar (6 MB vs. 7 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (60 ns vs. 49 ns) |
similar (36 ms vs. 40 ms) |
similar (821 kB vs. 960 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (12 LLVM lines) |
similar (49 ns vs. 60 ns) |
similar (60 ms vs. 37 ms) |
similar (2 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 (77 ms vs. 150 ms) |
similar (6 MB vs. 7 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (132 LLVM lines vs. 5 kB allocs) |
62 times less (80 ns vs. 5 μs) |
similar (193 ms vs. 163 ms) |
5 times more (37 MB vs. 7 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (39 ms vs. 34 ms) |
similar (416 kB vs. 782 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (64 ms vs. 33 ms) |
similar (1 MB vs. 1 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 640 B allocs) |
24 times less (40 ns vs. 961 ns) |
2 times less (75 ms vs. 167 ms) |
2 times less (3 MB vs. 8 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
80 times less (40 ns vs. 3 μs) |
similar (123 ms vs. 151 ms) |
similar (9 MB vs. 8 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (35 ms vs. 29 ms) |
similar (426 kB vs. 789 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
similar (59 ms vs. 31 ms) |
similar (1 MB vs. 1 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 640 B allocs) |
51 times less (49 ns vs. 3 μs) |
2 times less (64 ms vs. 184 ms) |
2 times less (3 MB vs. 9 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
158 times less (49 ns vs. 8 μs) |
similar (117 ms vs. 185 ms) |
similar (10 MB vs. 9 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (31 ms vs. 34 ms) |
similar (930 kB vs. 1 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (29 LLVM lines) |
similar (69 ns vs. 60 ns) |
similar (63 ms vs. 38 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (93 LLVM lines vs. 40 kB allocs) |
60 times less (80 ns vs. 5 μs) |
2 times less (90 ms vs. 216 ms) |
similar (10 MB vs. 9 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (556 LLVM lines vs. 533 kB allocs) |
150 times less (371 ns vs. 56 μs) |
similar (328 ms vs. 195 ms) |
5 times more (48 MB vs. 9 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (47 ms vs. 34 ms) |
2 times more (2 MB vs. 780 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 (50 ms vs. 33 ms) |
2 times more (2 MB vs. 815 kB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (49 ns vs. 49 ns) |
similar (40 ms vs. 42 ms) |
similar (1 MB vs. 1006 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 (60 ms vs. 37 ms) |
2 times more (2 MB vs. 882 kB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times more (97 ms vs. 35 ms) |
4 times more (5 MB vs. 1 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
15 times less (49 ns vs. 771 ns) |
similar (129 ms vs. 141 ms) |
similar (13 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) |
43 times less (49 ns vs. 2 μs) |
2 times more (353 ms vs. 140 ms) |
6 times more (47 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. 51 ns) |
similar (39 ms vs. 41 ms) |
similar (2 MB vs. 1 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (12 LLVM lines) |
similar (50 ns vs. 49 ns) |
2 times more (79 ms vs. 39 ms) |
3 times more (7 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 (116 ms vs. 162 ms) |
2 times more (19 MB vs. 7 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (132 LLVM lines vs. 7 kB allocs) |
66 times less (80 ns vs. 5 μs) |
similar (349 ms vs. 175 ms) |
11 times more (82 MB vs. 7 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (54 ms vs. 32 ms) |
2 times more (3 MB vs. 970 kB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
2 times more (96 ms vs. 34 ms) |
4 times more (6 MB vs. 1 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 1 kB allocs) |
32 times less (49 ns vs. 2 μs) |
similar (149 ms vs. 182 ms) |
2 times more (18 MB vs. 8 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 4 kB allocs) |
106 times less (49 ns vs. 5 μs) |
2 times more (377 ms vs. 176 ms) |
6 times more (56 MB vs. 8 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 49 ns) |
similar (49 ms vs. 31 ms) |
2 times more (3 MB vs. 975 kB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (49 ns vs. 49 ns) |
2 times more (86 ms vs. 31 ms) |
4 times more (6 MB vs. 1 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 1 kB allocs) |
94 times less (49 ns vs. 5 μs) |
similar (140 ms vs. 188 ms) |
2 times more (18 MB vs. 9 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 4 kB allocs) |
286 times less (49 ns vs. 14 μs) |
similar (366 ms vs. 191 ms) |
6 times more (56 MB vs. 9 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (35 ms vs. 35 ms) |
similar (2 MB vs. 1 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (29 LLVM lines) |
similar (60 ns vs. 60 ns) |
2 times more (82 ms vs. 40 ms) |
4 times more (9 MB vs. 2 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (93 LLVM lines vs. 79 kB allocs) |
140 times less (80 ns vs. 11 μs) |
similar (147 ms vs. 217 ms) |
3 times more (27 MB vs. 9 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (764 LLVM lines vs. 1 MB allocs) |
245 times less (460 ns vs. 113 μs) |
2 times more (498 ms vs. 208 ms) |
10 times more (100 MB vs. 10 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (49 ns vs. 40 ns) |
similar (28 ms vs. 34 ms) |
18 times less (63 kB 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 (40 ns vs. 150 ns) |
similar (31 ms vs. 55 ms) |
29 times less (93 kB 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. 180 ns) |
similar (31 ms vs. 41 ms) |
20 times less (127 kB 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. 170 ns) |
similar (34 ms vs. 62 ms) |
19 times less (175 kB 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. 250 ns) |
similar (40 ms vs. 58 ms) |
5 times less (600 kB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
15 times less (40 ns vs. 601 ns) |
similar (44 ms vs. 66 ms) |
2 times less (1 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
49 times less (40 ns vs. 2 μs) |
similar (107 ms vs. 60 ms) |
similar (6 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 (33 ms vs. 49 ms) |
8 times less (385 kB 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 (49 ns vs. 370 ns) |
similar (42 ms vs. 49 ms) |
2 times less (2 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) |
18 times less (60 ns vs. 1 μs) |
similar (52 ms vs. 54 ms) |
similar (5 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) |
43 times less (89 ns vs. 4 μs) |
2 times more (177 ms vs. 60 ms) |
8 times more (29 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
2 |
empty & nonempty singleton Tuples |
better (optimized out vs. 96 B allocs) |
8 times less (49 ns vs. 440 ns) |
2 times less (31 ms vs. 79 ms) |
30 times less (175 kB vs. 5 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
8 |
empty & nonempty singleton Tuples |
better (optimized out vs. 496 B allocs) |
12 times less (49 ns vs. 621 ns) |
2 times less (40 ms vs. 99 ms) |
7 times less (773 kB vs. 6 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
104 times less (40 ns vs. 4 μs) |
similar (136 ms vs. 95 ms) |
similar (5 MB vs. 6 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 8 kB allocs) |
368 times less (40 ns vs. 15 μs) |
3 times more (310 ms vs. 89 ms) |
3 times more (20 MB vs. 6 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
2 |
nonempty singleton Tuples |
better (optimized out vs. 192 B allocs) |
8 times less (40 ns vs. 320 ns) |
3 times less (29 ms vs. 95 ms) |
30 times less (180 kB vs. 5 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
8 |
nonempty singleton Tuples |
better (optimized out vs. 496 B allocs) |
20 times less (40 ns vs. 821 ns) |
2 times less (36 ms vs. 87 ms) |
8 times less (784 kB vs. 7 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
106 times less (40 ns vs. 4 μs) |
similar (112 ms vs. 88 ms) |
similar (5 MB vs. 7 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 8 kB allocs) |
367 times less (40 ns vs. 15 μs) |
3 times more (306 ms vs. 89 ms) |
3 times more (20 MB vs. 7 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
2 |
nonempty non-singleton Tuples |
better (12 LLVM lines vs. 352 B allocs) |
6 times less (60 ns vs. 400 ns) |
2 times less (30 ms vs. 66 ms) |
12 times less (415 kB vs. 5 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
8 |
nonempty non-singleton Tuples |
better (28 LLVM lines vs. 2 kB allocs) |
18 times less (60 ns vs. 1 μs) |
similar (42 ms vs. 62 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (148 LLVM lines vs. 40 kB allocs) |
91 times less (80 ns vs. 7 μs) |
2 times more (190 ms vs. 64 ms) |
7 times more (30 MB vs. 4 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (516 LLVM lines vs. 533 kB allocs) |
198 times less (300 ns vs. 60 μs) |
14 times more (861 ms vs. 60 ms) |
34 times more (164 MB 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 (35 ms vs. 57 ms) |
5 times less (272 kB 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) |
4 times less (40 ns vs. 160 ns) |
2 times less (43 ms vs. 99 ms) |
12 times less (428 kB 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 (49 ns vs. 200 ns) |
similar (33 ms vs. 62 ms) |
5 times less (772 kB 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) |
4 times less (40 ns vs. 190 ns) |
2 times less (57 ms vs. 124 ms) |
6 times less (872 kB 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) |
7 times less (40 ns vs. 280 ns) |
similar (83 ms vs. 119 ms) |
3 times less (1 MB vs. 5 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 128 B allocs) |
13 times less (49 ns vs. 681 ns) |
similar (90 ms vs. 125 ms) |
2 times less (2 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) |
43 times less (49 ns vs. 2 μs) |
similar (122 ms vs. 123 ms) |
similar (7 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. 240 ns) |
similar (39 ms vs. 70 ms) |
2 times less (1 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) |
8 times less (49 ns vs. 400 ns) |
similar (71 ms vs. 73 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (36 LLVM lines vs. 800 B allocs) |
19 times less (60 ns vs. 1 μs) |
similar (88 ms vs. 77 ms) |
2 times more (9 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) |
50 times less (80 ns vs. 4 μs) |
3 times more (250 ms vs. 72 ms) |
10 times more (47 MB vs. 4 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
2 |
empty & nonempty singleton Tuples |
better (optimized out vs. 144 B allocs) |
8 times less (40 ns vs. 340 ns) |
2 times less (55 ms vs. 136 ms) |
7 times less (1008 kB vs. 7 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
8 |
empty & nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
115 times less (49 ns vs. 6 μs) |
3 times less (125 ms vs. 404 ms) |
12 times less (2 MB vs. 30 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 15 kB allocs) |
749 times less (40 ns vs. 30 μs) |
similar (273 ms vs. 513 ms) |
3 times less (8 MB vs. 33 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 55 kB allocs) |
2015 times less (49 ns vs. 99 μs) |
similar (422 ms vs. 455 ms) |
similar (24 MB vs. 33 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
2 |
nonempty singleton Tuples |
better (optimized out vs. 240 B allocs) |
9 times less (49 ns vs. 450 ns) |
5 times less (56 ms vs. 279 ms) |
17 times less (1 MB vs. 17 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
8 |
nonempty singleton Tuples |
better (optimized out vs. 3 kB allocs) |
85 times less (49 ns vs. 4 μs) |
3 times less (108 ms vs. 346 ms) |
9 times less (3 MB vs. 24 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 15 kB allocs) |
581 times less (49 ns vs. 28 μs) |
similar (227 ms vs. 436 ms) |
3 times less (8 MB vs. 26 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 55 kB allocs) |
1997 times less (49 ns vs. 98 μs) |
similar (436 ms vs. 412 ms) |
similar (24 MB vs. 26 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
2 |
nonempty non-singleton Tuples |
better (13 LLVM lines vs. 352 B allocs) |
9 times less (49 ns vs. 450 ns) |
2 times less (40 ms vs. 91 ms) |
3 times less (2 MB vs. 6 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
8 |
nonempty non-singleton Tuples |
better (59 LLVM lines vs. 9 kB allocs) |
62 times less (60 ns vs. 4 μs) |
similar (89 ms vs. 150 ms) |
similar (6 MB vs. 7 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (291 LLVM lines vs. 229 kB allocs) |
350 times less (100 ns vs. 35 μs) |
similar (303 ms vs. 238 ms) |
5 times more (48 MB vs. 9 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (955 LLVM lines vs. 3 MB allocs) |
938 times less (401 ns vs. 376 μs) |
4 times more (1 s vs. 236 ms) |
18 times more (222 MB 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 (40 ns vs. 150 ns) |
similar (82 ms vs. 123 ms) |
5 times less (3 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 (83 ms vs. 133 ms) |
5 times less (3 MB vs. 15 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (10 LLVM lines vs. 160 B allocs) |
3 times less (60 ns vs. 180 ns) |
similar (81 ms vs. 130 ms) |
6 times less (3 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) |
4 times less (49 ns vs. 200 ns) |
similar (119 ms vs. 145 ms) |
5 times less (3 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) |
22 times less (49 ns vs. 1 μs) |
similar (242 ms vs. 148 ms) |
similar (12 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) |
402 times less (40 ns vs. 16 μs) |
41 times more (6 s vs. 138 ms) |
9 times more (152 MB vs. 16 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (19 LLVM lines vs. 352 B allocs) |
5 times less (60 ns vs. 300 ns) |
similar (100 ms vs. 129 ms) |
5 times less (3 MB vs. 16 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (246 LLVM lines vs. 4 kB allocs) |
28 times less (89 ns vs. 3 μs) |
2 times more (261 ms vs. 127 ms) |
similar (13 MB vs. 16 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (4026 LLVM lines vs. 72 kB allocs) |
33 times less (1 μs vs. 39 μs) |
50 times more (7 s vs. 131 ms) |
10 times more (173 MB vs. 16 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
2 |
empty & nonempty singleton Tuples |
better (optimized out vs. 112 B allocs) |
6 times less (49 ns vs. 330 ns) |
similar (113 ms vs. 176 ms) |
6 times less (3 MB vs. 21 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
8 |
empty & nonempty singleton Tuples |
better (optimized out vs. 592 B allocs) |
85 times less (40 ns vs. 3 μs) |
similar (228 ms vs. 176 ms) |
similar (12 MB vs. 21 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 16 kB allocs) |
1422 times less (40 ns vs. 57 μs) |
27 times more (5 s vs. 178 ms) |
7 times more (158 MB vs. 21 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
2 |
nonempty singleton Tuples |
better (optimized out vs. 112 B allocs) |
6 times less (49 ns vs. 320 ns) |
similar (114 ms vs. 157 ms) |
6 times less (3 MB vs. 21 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
8 |
nonempty singleton Tuples |
better (optimized out vs. 592 B allocs) |
175 times less (40 ns vs. 7 μs) |
similar (218 ms vs. 226 ms) |
similar (12 MB vs. 23 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 24 kB allocs) |
2798 times less (40 ns vs. 112 μs) |
12 times more (4 s vs. 359 ms) |
5 times more (158 MB vs. 27 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
2 |
nonempty non-singleton Tuples |
better (25 LLVM lines vs. 592 B allocs) |
8 times less (60 ns vs. 530 ns) |
similar (96 ms vs. 166 ms) |
6 times less (3 MB vs. 21 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
8 |
nonempty non-singleton Tuples |
better (394 LLVM lines vs. 25 kB allocs) |
41 times less (280 ns vs. 11 μs) |
similar (267 ms vs. 264 ms) |
similar (13 MB vs. 24 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (8189 LLVM lines vs. 1 MB allocs) |
29 times less (10 μs vs. 304 μs) |
12 times more (6 s vs. 475 ms) |
5 times more (175 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) |
4 times less (40 ns vs. 160 ns) |
similar (81 ms vs. 142 ms) |
6 times less (3 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 (89 ms vs. 137 ms) |
6 times less (3 MB vs. 17 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (12 LLVM lines vs. 160 B allocs) |
3 times less (60 ns vs. 200 ns) |
similar (78 ms vs. 140 ms) |
6 times less (3 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) |
5 times less (49 ns vs. 260 ns) |
similar (136 ms vs. 169 ms) |
4 times less (4 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) |
165 times less (49 ns vs. 8 μs) |
18 times more (3 s vs. 162 ms) |
4 times more (90 MB vs. 18 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (32 LLVM lines vs. 736 B allocs) |
7 times less (60 ns vs. 460 ns) |
similar (125 ms vs. 156 ms) |
4 times less (4 MB vs. 18 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (2716 LLVM lines vs. 44 kB allocs) |
33 times less (601 ns vs. 20 μs) |
24 times more (4 s vs. 148 ms) |
5 times more (103 MB vs. 19 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
2 |
empty & nonempty singleton Tuples |
better (optimized out vs. 144 B allocs) |
15 times less (40 ns vs. 631 ns) |
similar (124 ms vs. 188 ms) |
5 times less (4 MB vs. 23 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
8 |
empty & nonempty singleton Tuples |
better (optimized out vs. 8 kB allocs) |
831 times less (40 ns vs. 33 μs) |
10 times more (2 s vs. 191 ms) |
3 times more (93 MB vs. 24 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
2 |
nonempty singleton Tuples |
better (optimized out vs. 144 B allocs) |
16 times less (40 ns vs. 641 ns) |
similar (117 ms vs. 174 ms) |
5 times less (4 MB vs. 24 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
8 |
nonempty singleton Tuples |
better (optimized out vs. 8 kB allocs) |
1648 times less (40 ns vs. 66 μs) |
4 times more (2 s vs. 428 ms) |
2 times more (93 MB vs. 32 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
2 |
nonempty non-singleton Tuples |
better (59 LLVM lines vs. 1 kB allocs) |
20 times less (60 ns vs. 1 μs) |
similar (116 ms vs. 198 ms) |
5 times less (4 MB vs. 24 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
8 |
nonempty non-singleton Tuples |
better (5538 LLVM lines vs. 234 kB allocs) |
29 times less (5 μs vs. 137 μs) |
4 times more (3 s vs. 625 ms) |
3 times more (104 MB vs. 33 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 (41 ns vs. 180 ns) |
similar (36 ms vs. 63 ms) |
11 times less (422 kB 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. 180 ns) |
similar (37 ms vs. 68 ms) |
11 times less (427 kB 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) |
5 times less (49 ns vs. 260 ns) |
similar (42 ms vs. 64 ms) |
5 times less (1 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) |
5 times less (40 ns vs. 220 ns) |
similar (39 ms vs. 69 ms) |
11 times less (427 kB 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) |
12 times less (40 ns vs. 490 ns) |
similar (40 ms vs. 71 ms) |
11 times less (429 kB 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) |
39 times less (40 ns vs. 2 μs) |
similar (87 ms vs. 76 ms) |
3 times less (1 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) |
144 times less (40 ns vs. 6 μs) |
similar (106 ms vs. 73 ms) |
similar (3 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. 360 ns) |
similar (38 ms vs. 62 ms) |
5 times less (1 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) |
19 times less (60 ns vs. 1 μs) |
similar (43 ms vs. 73 ms) |
4 times less (1 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (229 LLVM lines vs. 3 kB allocs) |
64 times less (80 ns vs. 5 μs) |
similar (109 ms vs. 93 ms) |
similar (11 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (260 LLVM lines vs. 12 kB allocs) |
211 times less (220 ns vs. 46 μs) |
4 times more (376 ms vs. 82 ms) |
7 times more (39 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
2 |
empty & nonempty singleton Tuples |
better (optimized out vs. 112 B allocs) |
5 times less (49 ns vs. 250 ns) |
similar (37 ms vs. 68 ms) |
13 times less (427 kB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
8 |
empty & nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
16 times less (40 ns vs. 671 ns) |
similar (42 ms vs. 74 ms) |
13 times less (429 kB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 848 B allocs) |
58 times less (40 ns vs. 2 μs) |
similar (79 ms vs. 72 ms) |
4 times less (1 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 3 kB allocs) |
223 times less (40 ns vs. 9 μs) |
similar (94 ms vs. 68 ms) |
similar (3 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
2 |
nonempty singleton Tuples |
better (optimized out vs. 112 B allocs) |
6 times less (40 ns vs. 250 ns) |
similar (36 ms vs. 65 ms) |
13 times less (427 kB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
8 |
nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
30 times less (40 ns vs. 1 μs) |
2 times less (35 ms vs. 80 ms) |
13 times less (429 kB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 848 B allocs) |
172 times less (40 ns vs. 7 μs) |
similar (74 ms vs. 95 ms) |
4 times less (1 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 3 kB allocs) |
555 times less (40 ns vs. 22 μs) |
similar (93 ms vs. 94 ms) |
similar (3 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
2 |
nonempty non-singleton Tuples |
better (19 LLVM lines vs. 528 B allocs) |
6 times less (60 ns vs. 400 ns) |
similar (38 ms vs. 76 ms) |
5 times less (1 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
8 |
nonempty non-singleton Tuples |
better (61 LLVM lines vs. 6 kB allocs) |
43 times less (60 ns vs. 3 μs) |
2 times less (44 ms vs. 99 ms) |
4 times less (1 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (212 LLVM lines vs. 119 kB allocs) |
90 times less (240 ns vs. 22 μs) |
similar (130 ms vs. 114 ms) |
similar (11 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (1436 LLVM lines vs. 2 MB allocs) |
377 times less (872 ns vs. 330 μs) |
6 times more (804 ms vs. 118 ms) |
4 times more (39 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) |
23 times less (49 ns vs. 1 μs) |
2 times less (45 ms vs. 126 ms) |
17 times less (658 kB 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) |
27 times less (40 ns vs. 1 μs) |
2 times less (48 ms vs. 133 ms) |
17 times less (688 kB vs. 12 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (8 LLVM lines vs. 400 B allocs) |
26 times less (49 ns vs. 1 μs) |
2 times less (54 ms vs. 142 ms) |
13 times less (900 kB vs. 12 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 320 B allocs) |
22 times less (49 ns vs. 1 μs) |
2 times less (52 ms vs. 146 ms) |
20 times less (560 kB vs. 11 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) |
32 times less (49 ns vs. 2 μs) |
3 times less (66 ms vs. 234 ms) |
21 times less (926 kB vs. 20 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 1 kB allocs) |
54 times less (49 ns vs. 3 μs) |
2 times less (115 ms vs. 249 ms) |
11 times less (2 MB vs. 20 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 3 kB allocs) |
170 times less (40 ns vs. 7 μs) |
similar (254 ms vs. 240 ms) |
4 times less (5 MB vs. 20 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 496 B allocs) |
24 times less (49 ns vs. 1 μs) |
3 times less (45 ms vs. 137 ms) |
14 times less (795 kB vs. 12 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) |
39 times less (49 ns vs. 2 μs) |
4 times less (51 ms vs. 235 ms) |
12 times less (2 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) |
62 times less (60 ns vs. 4 μs) |
3 times less (76 ms vs. 256 ms) |
5 times less (4 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) |
122 times less (89 ns vs. 11 μs) |
2 times less (131 ms vs. 303 ms) |
similar (13 MB vs. 20 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
2 |
empty & nonempty singleton Tuples |
better (optimized out vs. 368 B allocs) |
26 times less (49 ns vs. 1 μs) |
3 times less (46 ms vs. 149 ms) |
18 times less (560 kB vs. 10 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
8 |
empty & nonempty singleton Tuples |
better (optimized out vs. 752 B allocs) |
47 times less (40 ns vs. 2 μs) |
4 times less (67 ms vs. 332 ms) |
31 times less (926 kB vs. 29 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
588 times less (40 ns vs. 24 μs) |
3 times less (103 ms vs. 409 ms) |
21 times less (2 MB vs. 36 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 5 kB allocs) |
1953 times less (40 ns vs. 78 μs) |
2 times less (197 ms vs. 486 ms) |
8 times less (5 MB vs. 43 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
2 |
nonempty singleton Tuples |
better (optimized out vs. 368 B allocs) |
36 times less (40 ns vs. 1 μs) |
3 times less (44 ms vs. 139 ms) |
19 times less (560 kB vs. 10 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
8 |
nonempty singleton Tuples |
better (optimized out vs. 832 B allocs) |
46 times less (49 ns vs. 2 μs) |
5 times less (55 ms vs. 311 ms) |
30 times less (926 kB vs. 28 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
486 times less (49 ns vs. 24 μs) |
5 times less (95 ms vs. 488 ms) |
25 times less (2 MB vs. 43 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
1540 times less (49 ns vs. 75 μs) |
2 times less (201 ms vs. 492 ms) |
8 times less (5 MB vs. 43 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
2 |
nonempty non-singleton Tuples |
better (11 LLVM lines vs. 624 B allocs) |
29 times less (49 ns vs. 1 μs) |
3 times less (45 ms vs. 162 ms) |
13 times less (821 kB vs. 11 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
8 |
nonempty non-singleton Tuples |
better (29 LLVM lines vs. 4 kB allocs) |
44 times less (60 ns vs. 3 μs) |
6 times less (54 ms vs. 350 ms) |
17 times less (2 MB vs. 28 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (93 LLVM lines vs. 49 kB allocs) |
178 times less (80 ns vs. 14 μs) |
5 times less (82 ms vs. 477 ms) |
9 times less (4 MB vs. 36 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (556 LLVM lines vs. 564 kB allocs) |
259 times less (371 ns vs. 96 μs) |
3 times less (210 ms vs. 795 ms) |
2 times less (13 MB vs. 36 MB) |