| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (21 ms vs. 21 ms) |
Inf times more (61 kB vs. 0 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (21 ms vs. 21 ms) |
705 times more (66 kB vs. 96 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (10 LLVM lines) |
similar (40 ns vs. 50 ns) |
similar (24 ms vs. 21 ms) |
1661 times more (156 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 (21 ms vs. 21 ms) |
326 times more (66 kB vs. 208 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (21 ms vs. 21 ms) |
267 times more (67 kB vs. 256 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (21 ms vs. 21 ms) |
158 times more (69 kB vs. 448 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (34 ms vs. 21 ms) |
385 times more (470 kB vs. 1 kB) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (40 ns vs. 50 ns) |
similar (24 ms vs. 21 ms) |
722 times more (158 kB vs. 224 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (24 ms vs. 21 ms) |
435 times more (177 kB vs. 416 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (23 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (25 ms vs. 21 ms) |
205 times more (238 kB vs. 1 kB) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (71 LLVM lines) |
54 times less (70 ns vs. 4 μs) |
2 times more (57 ms vs. 21 ms) |
968 times more (4 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 (21 ms vs. 21 ms) |
605 times more (66 kB vs. 112 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (21 ms vs. 21 ms) |
427 times more (67 kB vs. 160 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (21 ms vs. 21 ms) |
201 times more (69 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. 40 ns) |
similar (35 ms vs. 21 ms) |
416 times more (468 kB vs. 1 kB) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (21 ms vs. 21 ms) |
326 times more (66 kB vs. 208 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (21 ms vs. 21 ms) |
267 times more (67 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 (21 ms vs. 21 ms) |
158 times more (69 kB vs. 448 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
128 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (34 ms vs. 21 ms) |
384 times more (468 kB vs. 1 kB) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (13 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (24 ms vs. 21 ms) |
632 times more (158 kB vs. 256 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (31 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (25 ms vs. 21 ms) |
269 times more (177 kB vs. 672 B) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (95 LLVM lines) |
similar (70 ns vs. 80 ns) |
similar (31 ms vs. 21 ms) |
79 times more (239 kB vs. 3 kB) |
| unrolled_push(itr, itr[1]) |
(itr..., itr[1]) |
Tuple |
128 |
nonempty non-singleton Tuples |
similar (551 LLVM lines) |
17 times less (261 ns vs. 5 μs) |
6 times more (126 ms vs. 21 ms) |
386 times more (4 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 (50 ms vs. 27 ms) |
28 times more (3 MB vs. 109 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (50 ms vs. 27 ms) |
22 times more (3 MB vs. 139 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (10 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (50 ms vs. 31 ms) |
16 times more (3 MB vs. 210 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (50 ms vs. 27 ms) |
22 times more (3 MB vs. 139 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (50 ms vs. 27 ms) |
23 times more (3 MB vs. 139 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (51 ms vs. 27 ms) |
23 times more (3 MB vs. 141 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
246 times less (30 ns vs. 7 μs) |
similar (54 ms vs. 27 ms) |
24 times more (4 MB vs. 148 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (40 ns vs. 50 ns) |
similar (51 ms vs. 31 ms) |
16 times more (3 MB vs. 210 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (29 LLVM lines) |
similar (50 ns vs. 40 ns) |
similar (53 ms vs. 31 ms) |
16 times more (4 MB vs. 236 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (157 LLVM lines) |
similar (70 ns vs. 70 ns) |
similar (59 ms vs. 31 ms) |
24 times more (6 MB vs. 239 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (586 LLVM lines vs. 17 kB allocs) |
64 times less (170 ns vs. 11 μs) |
4 times more (125 ms vs. 30 ms) |
52 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 (30 ns vs. 30 ns) |
similar (52 ms vs. 27 ms) |
22 times more (3 MB vs. 139 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (50 ms vs. 27 ms) |
22 times more (3 MB 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. 40 ns) |
similar (51 ms vs. 27 ms) |
23 times more (3 MB 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) |
433 times less (30 ns vs. 13 μs) |
similar (54 ms vs. 28 ms) |
17 times more (4 MB vs. 214 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (51 ms vs. 27 ms) |
22 times more (3 MB 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. 40 ns) |
similar (51 ms vs. 27 ms) |
15 times more (3 MB vs. 205 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (51 ms vs. 27 ms) |
23 times more (3 MB 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) |
321 times less (40 ns vs. 13 μs) |
similar (54 ms vs. 27 ms) |
24 times more (4 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 (40 ns vs. 40 ns) |
similar (52 ms vs. 31 ms) |
14 times more (3 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 (50 ns vs. 50 ns) |
similar (54 ms vs. 31 ms) |
16 times more (4 MB vs. 239 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (150 LLVM lines) |
similar (141 ns vs. 130 ns) |
2 times more (73 ms vs. 31 ms) |
20 times more (6 MB vs. 283 kB) |
| unrolled_append(itr, Iterators.reverse(itr)) |
(itr..., Iterators.reverse(itr)...) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (1045 LLVM lines vs. 560 kB allocs) |
88 times less (480 ns vs. 42 μs) |
11 times more (353 ms vs. 31 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 (30 ns vs. 40 ns) |
similar (50 ms vs. 28 ms) |
28 times more (3 MB vs. 109 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (50 ms vs. 27 ms) |
22 times more (3 MB vs. 139 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (10 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (50 ms vs. 30 ms) |
16 times more (3 MB vs. 210 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (51 ms vs. 28 ms) |
22 times more (3 MB vs. 139 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (51 ms vs. 28 ms) |
23 times more (3 MB vs. 139 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (52 ms vs. 28 ms) |
23 times more (3 MB vs. 141 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 7 kB allocs) |
185 times less (40 ns vs. 7 μs) |
similar (54 ms vs. 27 ms) |
25 times more (4 MB vs. 148 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (50 ns vs. 40 ns) |
similar (51 ms vs. 31 ms) |
17 times more (3 MB vs. 210 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (27 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (53 ms vs. 31 ms) |
17 times more (4 MB vs. 236 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (156 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (61 ms vs. 31 ms) |
26 times more (6 MB vs. 239 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (586 LLVM lines vs. 17 kB allocs) |
66 times less (160 ns vs. 11 μs) |
3 times more (126 ms vs. 32 ms) |
58 times more (15 MB vs. 253 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (52 ms vs. 27 ms) |
22 times more (3 MB 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. 40 ns) |
similar (51 ms vs. 27 ms) |
22 times more (3 MB vs. 141 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (51 ms vs. 28 ms) |
23 times more (3 MB 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) |
321 times less (40 ns vs. 13 μs) |
similar (54 ms vs. 28 ms) |
17 times more (4 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 (51 ms vs. 27 ms) |
22 times more (3 MB vs. 139 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (56 ms vs. 28 ms) |
15 times more (3 MB vs. 205 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (51 ms vs. 27 ms) |
23 times more (3 MB 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) |
431 times less (30 ns vs. 13 μs) |
similar (53 ms vs. 27 ms) |
24 times more (4 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 (40 ns vs. 40 ns) |
similar (52 ms vs. 31 ms) |
15 times more (4 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 (50 ns vs. 60 ns) |
similar (56 ms vs. 31 ms) |
17 times more (4 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 (160 ns vs. 150 ns) |
2 times more (77 ms vs. 31 ms) |
22 times more (6 MB vs. 283 kB) |
| unrolled_prepend(itr, Iterators.reverse(itr)) |
(Iterators.reverse(itr)..., itr...) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (1013 LLVM lines vs. 560 kB allocs) |
95 times less (461 ns vs. 44 μs) |
10 times more (331 ms vs. 32 ms) |
18 times more (15 MB vs. 794 kB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (22 ms vs. 23 ms) |
357 times more (78 kB vs. 224 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (21 ms vs. 23 ms) |
357 times more (78 kB vs. 224 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (22 ms vs. 23 ms) |
529 times more (116 kB vs. 224 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (25 ms vs. 23 ms) |
651 times more (204 kB vs. 320 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (33 ms vs. 23 ms) |
694 times more (228 kB vs. 336 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
7 times less (40 ns vs. 280 ns) |
similar (34 ms vs. 34 ms) |
2 times less (253 kB vs. 723 kB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
28 times less (30 ns vs. 862 ns) |
similar (34 ms vs. 33 ms) |
2 times less (351 kB vs. 723 kB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (25 ms vs. 23 ms) |
1297 times more (345 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 (40 ns vs. 40 ns) |
similar (34 ms vs. 23 ms) |
897 times more (449 kB vs. 512 B) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (12 LLVM lines vs. 592 B allocs) |
14 times less (40 ns vs. 560 ns) |
similar (35 ms vs. 34 ms) |
similar (660 kB vs. 724 kB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (36 LLVM lines vs. 2 kB allocs) |
39 times less (50 ns vs. 2 μs) |
similar (40 ms vs. 34 ms) |
2 times more (1 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 (40 ns vs. 40 ns) |
similar (25 ms vs. 23 ms) |
929 times more (203 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 (33 ms vs. 23 ms) |
697 times more (229 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) |
9 times less (40 ns vs. 380 ns) |
similar (33 ms vs. 51 ms) |
9 times less (253 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) |
31 times less (40 ns vs. 1 μs) |
similar (34 ms vs. 58 ms) |
7 times less (351 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 (30 ns vs. 30 ns) |
similar (25 ms vs. 23 ms) |
651 times more (203 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. 40 ns) |
similar (33 ms vs. 23 ms) |
696 times more (229 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) |
24 times less (40 ns vs. 971 ns) |
similar (33 ms vs. 51 ms) |
9 times less (253 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) |
70 times less (40 ns vs. 3 μs) |
similar (34 ms vs. 55 ms) |
7 times less (351 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 (40 ns vs. 40 ns) |
similar (25 ms vs. 23 ms) |
1392 times more (370 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 (50 ns vs. 40 ns) |
similar (34 ms vs. 23 ms) |
653 times more (450 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) |
25 times less (60 ns vs. 2 μs) |
similar (37 ms vs. 63 ms) |
3 times less (662 kB vs. 2 MB) |
| unrolled_take(itr, Val(length(itr) ÷ 2)) |
itr[1:length(itr) ÷ 2] |
Tuple |
128 |
nonempty non-singleton Tuples |
better (177 LLVM lines vs. 268 kB allocs) |
219 times less (80 ns vs. 18 μs) |
similar (52 ms vs. 68 ms) |
similar (1 MB vs. 2 MB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (30 ms vs. 22 ms) |
1913 times more (418 kB vs. 224 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (30 ms vs. 22 ms) |
2051 times more (449 kB vs. 224 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (28 ms vs. 22 ms) |
2335 times more (584 kB vs. 256 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (30 ms vs. 22 ms) |
1436 times more (449 kB vs. 320 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (40 ms vs. 22 ms) |
1589 times more (522 kB vs. 336 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
7 times less (40 ns vs. 290 ns) |
similar (42 ms vs. 33 ms) |
similar (710 kB vs. 723 kB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
29 times less (30 ns vs. 871 ns) |
similar (52 ms vs. 33 ms) |
2 times more (1 MB vs. 723 kB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (9 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (28 ms vs. 22 ms) |
2198 times more (584 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 (50 ns vs. 50 ns) |
similar (37 ms vs. 22 ms) |
1440 times more (720 kB vs. 512 B) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (13 LLVM lines vs. 592 B allocs) |
11 times less (50 ns vs. 560 ns) |
similar (38 ms vs. 34 ms) |
similar (1 MB vs. 724 kB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (37 LLVM lines vs. 2 kB allocs) |
32 times less (60 ns vs. 2 μs) |
similar (44 ms vs. 33 ms) |
3 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 (40 ns vs. 40 ns) |
similar (31 ms vs. 22 ms) |
1438 times more (450 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 (40 ns vs. 40 ns) |
similar (40 ms vs. 22 ms) |
1595 times more (523 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) |
9 times less (40 ns vs. 380 ns) |
similar (42 ms vs. 41 ms) |
2 times less (712 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) |
31 times less (40 ns vs. 1 μs) |
similar (51 ms vs. 51 ms) |
similar (1 MB 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 (30 ms vs. 22 ms) |
1438 times more (450 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 (30 ns vs. 40 ns) |
similar (40 ms vs. 22 ms) |
1594 times more (523 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) |
15 times less (40 ns vs. 610 ns) |
similar (42 ms vs. 41 ms) |
2 times less (711 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) |
89 times less (30 ns vs. 3 μs) |
similar (50 ms vs. 51 ms) |
similar (1 MB 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 (40 ns vs. 40 ns) |
similar (28 ms vs. 22 ms) |
2053 times more (610 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 (50 ns vs. 50 ns) |
similar (37 ms vs. 22 ms) |
924 times more (722 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 (70 ns vs. 2 μs) |
similar (40 ms vs. 47 ms) |
similar (1 MB vs. 2 MB) |
| unrolled_drop(itr, Val(length(itr) ÷ 2)) |
itr[length(itr) ÷ 2 + 1:end] |
Tuple |
128 |
nonempty non-singleton Tuples |
better (170 LLVM lines vs. 268 kB allocs) |
101 times less (160 ns vs. 16 μs) |
similar (56 ms vs. 62 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 (30 ns vs. 30 ns) |
similar (25 ms vs. 26 ms) |
503 times more (157 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 (40 ns vs. 30 ns) |
similar (25 ms vs. 26 ms) |
599 times more (187 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 (40 ns vs. 40 ns) |
similar (25 ms vs. 27 ms) |
813 times more (305 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 (30 ns vs. 40 ns) |
similar (26 ms vs. 26 ms) |
464 times more (189 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 (30 ns vs. 30 ns) |
similar (35 ms vs. 26 ms) |
352 times more (220 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) |
26 times less (40 ns vs. 1 μs) |
similar (34 ms vs. 36 ms) |
2 times less (269 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) |
94 times less (40 ns vs. 4 μs) |
similar (35 ms vs. 36 ms) |
similar (464 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 (40 ns vs. 40 ns) |
similar (26 ms vs. 26 ms) |
712 times more (334 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 (16 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (36 ms vs. 26 ms) |
540 times more (583 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 (31 LLVM lines vs. 2 kB allocs) |
40 times less (50 ns vs. 2 μs) |
similar (38 ms vs. 37 ms) |
similar (1 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 (79 LLVM lines vs. 7 kB allocs) |
107 times less (70 ns vs. 8 μs) |
similar (59 ms vs. 37 ms) |
6 times more (4 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 (30 ns vs. 40 ns) |
similar (26 ms vs. 26 ms) |
603 times more (189 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 (34 ms vs. 26 ms) |
329 times more (221 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) |
31 times less (40 ns vs. 1 μs) |
similar (35 ms vs. 61 ms) |
9 times less (270 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) |
114 times less (40 ns vs. 5 μs) |
similar (36 ms vs. 61 ms) |
5 times less (464 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 (40 ns vs. 30 ns) |
similar (26 ms vs. 26 ms) |
377 times more (189 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. 30 ns) |
similar (34 ms vs. 26 ms) |
288 times more (221 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) |
52 times less (40 ns vs. 2 μs) |
similar (34 ms vs. 58 ms) |
9 times less (269 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) |
250 times less (30 ns vs. 8 μs) |
similar (36 ms vs. 58 ms) |
5 times less (464 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 (40 ns vs. 50 ns) |
similar (27 ms vs. 26 ms) |
767 times more (360 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 (50 ns vs. 50 ns) |
similar (36 ms vs. 26 ms) |
311 times more (585 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) |
89 times less (70 ns vs. 6 μs) |
similar (43 ms vs. 71 ms) |
similar (1 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 (545 LLVM lines vs. 541 kB allocs) |
149 times less (270 ns vs. 40 μs) |
similar (127 ms vs. 71 ms) |
similar (4 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 (40 ns vs. 30 ns) |
similar (26 ms vs. 26 ms) |
612 times more (192 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 (40 ns vs. 30 ns) |
similar (26 ms vs. 26 ms) |
545 times more (222 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 (40 ns vs. 50 ns) |
similar (26 ms vs. 26 ms) |
872 times more (382 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 (30 ns vs. 40 ns) |
similar (26 ms vs. 26 ms) |
432 times more (223 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 (35 ms vs. 26 ms) |
379 times more (255 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) |
36 times less (30 ns vs. 1 μs) |
similar (35 ms vs. 36 ms) |
2 times less (304 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) |
94 times less (40 ns vs. 4 μs) |
similar (36 ms vs. 37 ms) |
similar (500 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 (40 ns vs. 50 ns) |
similar (26 ms vs. 26 ms) |
690 times more (432 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 (18 LLVM lines) |
similar (50 ns vs. 40 ns) |
similar (37 ms vs. 26 ms) |
622 times more (729 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 (23 LLVM lines vs. 2 kB allocs) |
40 times less (50 ns vs. 2 μs) |
similar (38 ms vs. 37 ms) |
2 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 (71 LLVM lines vs. 7 kB allocs) |
125 times less (60 ns vs. 8 μs) |
similar (61 ms vs. 37 ms) |
8 times more (6 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 (40 ns vs. 30 ns) |
similar (26 ms vs. 26 ms) |
432 times more (223 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 (40 ns vs. 40 ns) |
similar (35 ms vs. 26 ms) |
372 times more (256 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) |
32 times less (40 ns vs. 1 μs) |
similar (35 ms vs. 60 ms) |
8 times less (304 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) |
115 times less (40 ns vs. 5 μs) |
similar (37 ms vs. 61 ms) |
5 times less (499 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 (40 ns vs. 40 ns) |
similar (26 ms vs. 26 ms) |
366 times more (223 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. 40 ns) |
similar (35 ms vs. 26 ms) |
327 times more (256 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) |
53 times less (40 ns vs. 2 μs) |
similar (35 ms vs. 57 ms) |
8 times less (304 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) |
193 times less (40 ns vs. 8 μs) |
similar (37 ms vs. 58 ms) |
5 times less (499 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 (50 ns vs. 40 ns) |
similar (26 ms vs. 26 ms) |
664 times more (457 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 (50 ns vs. 50 ns) |
similar (37 ms vs. 26 ms) |
365 times more (731 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) |
90 times less (70 ns vs. 6 μs) |
similar (43 ms vs. 71 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 (550 LLVM lines vs. 546 kB allocs) |
148 times less (280 ns vs. 42 μs) |
similar (131 ms vs. 71 ms) |
2 times more (6 MB vs. 2 MB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (35 ms vs. 21 ms) |
6 times more (57 kB vs. 9 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (35 ms vs. 21 ms) |
2 times more (88 kB vs. 40 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (35 ms vs. 20 ms) |
4 times more (61 kB vs. 13 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 30 ns) |
similar (34 ms vs. 20 ms) |
2 times more (92 kB vs. 43 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
similar (35 ms vs. 21 ms) |
2 times less (113 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) |
14 times less (40 ns vs. 591 ns) |
similar (35 ms vs. 27 ms) |
similar (201 kB vs. 296 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (37 LLVM lines w/ Const vs. 2 kB allocs) |
34 times less (60 ns vs. 2 μs) |
similar (49 ms vs. 27 ms) |
2 times more (679 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 (34 ms vs. 20 ms) |
3 times more (69 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 (35 ms vs. 21 ms) |
4 times less (143 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) |
14 times less (40 ns vs. 590 ns) |
similar (36 ms vs. 27 ms) |
similar (334 kB vs. 295 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (37 LLVM lines w/ Const vs. 2 kB allocs) |
35 times less (60 ns vs. 2 μs) |
similar (50 ms vs. 26 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 (30 ns vs. 30 ns) |
similar (34 ms vs. 20 ms) |
2 times more (92 kB vs. 43 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 30 ns) |
similar (35 ms vs. 21 ms) |
2 times less (124 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) |
30 times less (30 ns vs. 921 ns) |
similar (35 ms vs. 28 ms) |
similar (229 kB vs. 320 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (43 LLVM lines w/ Const vs. 2 kB allocs) |
55 times less (60 ns vs. 3 μs) |
similar (50 ms vs. 28 ms) |
2 times more (706 kB vs. 322 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
similar (35 ms vs. 20 ms) |
2 times more (96 kB vs. 47 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
similar (35 ms vs. 21 ms) |
2 times less (128 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) |
22 times less (40 ns vs. 911 ns) |
similar (36 ms vs. 28 ms) |
similar (229 kB vs. 324 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (37 LLVM lines w/ Const vs. 2 kB allocs) |
54 times less (60 ns vs. 3 μs) |
similar (50 ms vs. 28 ms) |
2 times more (706 kB vs. 326 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
similar (35 ms vs. 21 ms) |
2 times more (96 kB vs. 47 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
similar (35 ms vs. 21 ms) |
4 times less (144 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) |
74 times less (40 ns vs. 3 μs) |
similar (36 ms vs. 28 ms) |
similar (349 kB vs. 339 kB) |
| unrolled_map(length, itr) |
map(length, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (37 LLVM lines w/ Const vs. 528 kB allocs) |
388 times less (60 ns vs. 23 μs) |
similar (50 ms vs. 29 ms) |
similar (1 MB vs. 829 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (23 ms vs. 24 ms) |
2 times less (55 kB vs. 159 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (23 ms vs. 24 ms) |
3 times less (89 kB vs. 281 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (21 ms vs. 25 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 (40 ns vs. 40 ns) |
similar (23 ms vs. 27 ms) |
4 times less (93 kB vs. 450 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 27 ms) |
2 times less (179 kB vs. 450 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (40 ms vs. 27 ms) |
similar (323 kB vs. 450 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (45 ms vs. 27 ms) |
similar (898 kB vs. 450 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (21 ms vs. 28 ms) |
7 times less (71 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 (36 ms vs. 28 ms) |
2 times less (209 kB vs. 546 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 28 ms) |
similar (461 kB vs. 546 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (43 ms vs. 28 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 (30 ns vs. 40 ns) |
similar (24 ms vs. 25 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 (30 ns vs. 40 ns) |
similar (39 ms vs. 25 ms) |
5 times less (159 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 (39 ms vs. 28 ms) |
10 times less (247 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 (45 ms vs. 27 ms) |
similar (596 kB vs. 340 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 30 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. 40 ns) |
similar (38 ms vs. 44 ms) |
7 times less (192 kB vs. 1 MB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (40 ms vs. 75 ms) |
11 times less (350 kB vs. 4 MB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
128 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (46 ms vs. 30 ms) |
similar (924 kB vs. 504 kB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (20 ms vs. 29 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 (30 ns vs. 40 ns) |
similar (36 ms vs. 47 ms) |
6 times less (222 kB vs. 1 MB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times less (38 ms vs. 86 ms) |
9 times less (487 kB vs. 5 MB) |
| unrolled_any(isempty, itr) |
any(isempty, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
698 times less (30 ns vs. 21 μs) |
similar (44 ms vs. 31 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 (40 ns vs. 40 ns) |
similar (57 ms vs. 57 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 (40 ns vs. 40 ns) |
similar (57 ms vs. 59 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 (40 ns vs. 40 ns) |
similar (54 ms vs. 58 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (18 LLVM lines) |
similar (50 ns vs. 40 ns) |
similar (58 ms vs. 59 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 (50 ns vs. 60 ns) |
similar (75 ms vs. 60 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 (100 ns vs. 110 ns) |
similar (79 ms vs. 60 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 (320 ns vs. 310 ns) |
similar (99 ms vs. 60 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 (40 ns vs. 50 ns) |
similar (55 ms vs. 60 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 (60 ns vs. 50 ns) |
similar (72 ms vs. 61 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 (100 ns vs. 110 ns) |
similar (76 ms vs. 61 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 (320 ns vs. 350 ns) |
similar (98 ms vs. 61 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 (40 ns vs. 40 ns) |
similar (58 ms vs. 60 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) |
32 times less (60 ns vs. 2 μs) |
similar (74 ms vs. 81 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) |
627 times less (110 ns vs. 69 μs) |
similar (79 ms vs. 121 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 (320 ns vs. 1 μs) |
similar (100 ms vs. 61 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 (40 ns vs. 40 ns) |
similar (58 ms vs. 60 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) |
296 times less (50 ns vs. 15 μs) |
similar (74 ms vs. 82 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) |
692 times less (110 ns vs. 76 μs) |
similar (80 ms vs. 122 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 singleton Tuples |
similar (648 LLVM lines) |
4 times less (320 ns vs. 1 μs) |
similar (100 ms vs. 61 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 (40 ns vs. 40 ns) |
similar (55 ms vs. 61 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) |
191 times less (60 ns vs. 11 μs) |
similar (72 ms vs. 85 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) |
706 times less (110 ns vs. 78 μs) |
similar (77 ms vs. 131 ms) |
2 times less (4 MB vs. 9 MB) |
| unrolled_any((x->length(x) == rand(8:10)), itr) |
any((x->length(x) == rand(8:10)), itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (648 LLVM lines vs. 521 kB allocs) |
66 times less (320 ns vs. 21 μs) |
similar (98 ms vs. 63 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. 30 ns) |
similar (23 ms vs. 24 ms) |
3 times less (55 kB vs. 165 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (23 ms vs. 24 ms) |
3 times less (89 kB vs. 283 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (21 ms vs. 25 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 (40 ns vs. 40 ns) |
similar (23 ms vs. 24 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 (40 ns vs. 30 ns) |
similar (39 ms vs. 24 ms) |
2 times less (163 kB vs. 332 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (40 ms vs. 24 ms) |
similar (250 kB vs. 332 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (44 ms vs. 24 ms) |
similar (601 kB vs. 332 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (21 ms vs. 25 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 (40 ns vs. 40 ns) |
similar (36 ms vs. 25 ms) |
2 times less (161 kB vs. 401 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (37 ms vs. 25 ms) |
similar (249 kB vs. 401 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (41 ms vs. 25 ms) |
similar (600 kB vs. 402 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 25 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. 40 ns) |
similar (38 ms vs. 25 ms) |
5 times less (166 kB vs. 860 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (40 ms vs. 28 ms) |
11 times less (253 kB vs. 3 MB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (44 ms vs. 29 ms) |
similar (604 kB vs. 508 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (24 ms vs. 24 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 (40 ns vs. 40 ns) |
similar (39 ms vs. 25 ms) |
5 times less (163 kB vs. 842 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (40 ms vs. 28 ms) |
11 times less (251 kB vs. 3 MB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (44 ms vs. 24 ms) |
similar (602 kB vs. 347 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (20 ms vs. 25 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 (30 ns vs. 40 ns) |
similar (36 ms vs. 28 ms) |
5 times less (162 kB vs. 898 kB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (37 ms vs. 38 ms) |
14 times less (250 kB vs. 3 MB) |
| unrolled_all(isempty, itr) |
all(isempty, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (41 ms vs. 25 ms) |
similar (601 kB vs. 414 kB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
1 |
empty singleton Tuple |
similar (9 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (57 ms vs. 58 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 (40 ns vs. 40 ns) |
similar (57 ms vs. 58 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 (40 ns vs. 40 ns) |
similar (55 ms vs. 59 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 (40 ns vs. 40 ns) |
similar (58 ms vs. 59 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 (40 ns vs. 40 ns) |
similar (74 ms vs. 60 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 (40 ns vs. 40 ns) |
similar (80 ms vs. 60 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 (40 ns vs. 40 ns) |
similar (100 ms vs. 60 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 (40 ns vs. 40 ns) |
similar (56 ms vs. 60 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 (40 ns vs. 40 ns) |
similar (72 ms vs. 61 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 (40 ns vs. 40 ns) |
similar (77 ms vs. 61 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 (40 ns vs. 40 ns) |
similar (99 ms vs. 61 ms) |
2 times more (7 MB vs. 3 MB) |
| unrolled_all((x->length(x) == rand(8:10)), itr) |
all((x->length(x) == rand(8:10)), itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (18 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (58 ms vs. 60 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 (40 ns vs. 280 ns) |
similar (75 ms vs. 61 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) |
60 times less (40 ns vs. 2 μs) |
similar (80 ms vs. 64 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 (40 ns vs. 40 ns) |
similar (101 ms vs. 61 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 (40 ns vs. 40 ns) |
similar (58 ms vs. 60 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) |
46 times less (40 ns vs. 2 μs) |
similar (74 ms vs. 60 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) |
61 times less (40 ns vs. 2 μs) |
similar (80 ms vs. 63 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 |
nonempty singleton Tuples |
similar (648 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (101 ms vs. 61 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 (40 ns vs. 40 ns) |
similar (55 ms vs. 61 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) |
49 times less (40 ns vs. 2 μs) |
similar (72 ms vs. 64 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) |
71 times less (40 ns vs. 3 μs) |
similar (78 ms vs. 73 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 (40 ns vs. 40 ns) |
similar (100 ms vs. 63 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 (42 ms vs. 59 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 (41 ms vs. 58 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 (30 ns vs. 40 ns) |
similar (39 ms vs. 43 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 (30 ns vs. 40 ns) |
similar (42 ms vs. 58 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 (40 ns vs. 40 ns) |
similar (55 ms vs. 58 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 (30 ns vs. 40 ns) |
similar (56 ms vs. 58 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 (40 ns vs. 40 ns) |
similar (59 ms vs. 62 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 (30 ns vs. 40 ns) |
similar (38 ms vs. 42 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 (40 ns vs. 40 ns) |
similar (53 ms vs. 43 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 (30 ns vs. 40 ns) |
similar (53 ms vs. 42 ms) |
2 times less (399 kB vs. 1005 kB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (57 ms vs. 47 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. 40 ns) |
similar (42 ms vs. 58 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. 40 ns) |
similar (56 ms vs. 58 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 (30 ns vs. 40 ns) |
similar (57 ms vs. 59 ms) |
2 times less (355 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) |
36 times less (30 ns vs. 1 μs) |
similar (58 ms vs. 65 ms) |
2 times less (704 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 (30 ns vs. 40 ns) |
similar (42 ms vs. 58 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 (40 ns vs. 40 ns) |
similar (55 ms vs. 58 ms) |
3 times less (216 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 (40 ns vs. 30 ns) |
similar (56 ms vs. 59 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) |
35 times less (30 ns vs. 1 μs) |
similar (59 ms vs. 65 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 (39 ms vs. 43 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. 30 ns) |
similar (54 ms vs. 43 ms) |
3 times less (233 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 (30 ns vs. 40 ns) |
similar (54 ms vs. 44 ms) |
2 times less (470 kB vs. 1 MB) |
| unrolled_foreach((x->@assert(length(x) <= 7)), itr) |
foreach((x->@assert(length(x) <= 7)), itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
670 times less (30 ns vs. 20 μs) |
similar (57 ms vs. 50 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 (30 ns vs. 40 ns) |
2 times less (23 ms vs. 47 ms) |
26 times less (78 kB vs. 2 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times less (23 ms vs. 47 ms) |
19 times less (108 kB vs. 2 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (50 ns vs. 40 ns) |
similar (23 ms vs. 36 ms) |
14 times less (224 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
2 times less (23 ms vs. 48 ms) |
22 times less (110 kB vs. 2 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (43 ms vs. 48 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (44 ms vs. 49 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) |
91 times less (40 ns vs. 4 μs) |
similar (48 ms vs. 51 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 (40 ns vs. 40 ns) |
similar (24 ms vs. 37 ms) |
13 times less (244 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (45 ms vs. 38 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (20 LLVM lines) |
similar (50 ns vs. 40 ns) |
similar (48 ms vs. 43 ms) |
2 times less (3 MB vs. 7 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (68 LLVM lines vs. 70 kB allocs) |
146 times less (70 ns vs. 10 μs) |
similar (69 ms vs. 40 ms) |
similar (5 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times less (24 ms vs. 48 ms) |
25 times less (110 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (44 ms vs. 49 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. 40 ns) |
similar (44 ms vs. 51 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) |
99 times less (40 ns vs. 4 μs) |
similar (49 ms vs. 54 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times less (24 ms vs. 48 ms) |
26 times less (110 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 (43 ms vs. 49 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (45 ms vs. 51 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) |
108 times less (40 ns vs. 4 μs) |
similar (49 ms vs. 54 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 (40 ns vs. 40 ns) |
similar (24 ms vs. 38 ms) |
13 times less (270 kB vs. 4 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (29 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (45 ms vs. 41 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 (70 ns vs. 70 ns) |
similar (53 ms vs. 51 ms) |
3 times less (3 MB vs. 9 MB) |
| unrolled_reduce(tuple, itr) |
reduce(tuple, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (548 LLVM lines vs. 792 kB allocs) |
333 times less (270 ns vs. 90 μs) |
3 times more (140 ms vs. 42 ms) |
similar (5 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
2 times less (23 ms vs. 50 ms) |
28 times less (92 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
2 times less (23 ms vs. 50 ms) |
21 times less (122 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 40 ms) |
12 times less (258 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
2 times less (24 ms vs. 50 ms) |
22 times less (124 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (44 ms vs. 50 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 (30 ns vs. 40 ns) |
similar (45 ms vs. 52 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) |
92 times less (40 ns vs. 4 μs) |
similar (49 ms vs. 54 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 (50 ns vs. 40 ns) |
similar (24 ms vs. 40 ms) |
12 times less (278 kB vs. 4 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (45 ms vs. 42 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (20 LLVM lines) |
similar (40 ns vs. 50 ns) |
similar (47 ms vs. 47 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 (68 LLVM lines vs. 70 kB allocs) |
167 times less (60 ns vs. 10 μs) |
similar (70 ms vs. 43 ms) |
similar (5 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. 40 ns) |
2 times less (24 ms vs. 51 ms) |
25 times less (123 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (43 ms vs. 52 ms) |
2 times less (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. 40 ns) |
similar (44 ms vs. 54 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) |
135 times less (30 ns vs. 4 μs) |
similar (49 ms vs. 57 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 (30 ns vs. 40 ns) |
2 times less (24 ms vs. 51 ms) |
25 times less (124 kB vs. 3 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (44 ms vs. 52 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 (40 ns vs. 30 ns) |
similar (45 ms vs. 54 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) |
144 times less (30 ns vs. 4 μs) |
similar (49 ms vs. 57 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 (40 ns vs. 40 ns) |
similar (24 ms vs. 41 ms) |
13 times less (303 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. 50 ns) |
similar (46 ms vs. 44 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 (70 ns vs. 70 ns) |
similar (52 ms vs. 55 ms) |
3 times less (3 MB vs. 9 MB) |
| unrolled_reduce(tuple, itr; init = ()) |
reduce(tuple, itr; init = ()) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (548 LLVM lines vs. 792 kB allocs) |
277 times less (260 ns vs. 72 μs) |
3 times more (139 ms vs. 44 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (44 ms vs. 67 ms) |
8 times less (268 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 (30 ns vs. 30 ns) |
similar (45 ms vs. 66 ms) |
7 times less (299 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 (40 ns vs. 40 ns) |
similar (45 ms vs. 46 ms) |
6 times less (408 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. 30 ns) |
similar (44 ms vs. 69 ms) |
7 times less (317 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 (30 ns vs. 40 ns) |
similar (66 ms vs. 86 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 (30 ns vs. 30 ns) |
2 times less (69 ms vs. 157 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (31 LLVM lines w/ Const vs. 68 kB allocs) |
128 times less (60 ns vs. 8 μs) |
similar (134 ms vs. 74 ms) |
2 times more (6 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 (40 ns vs. 40 ns) |
similar (45 ms vs. 47 ms) |
6 times less (453 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 (40 ns vs. 50 ns) |
similar (66 ms vs. 48 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (196 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (75 ms vs. 58 ms) |
similar (4 MB vs. 7 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr) |
mapreduce((x->(x, length(x))), tuple, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (772 LLVM lines vs. 140 kB allocs) |
64 times less (181 ns vs. 12 μs) |
2 times more (134 ms vs. 50 ms) |
2 times more (8 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. 30 ns) |
similar (45 ms vs. 70 ms) |
8 times less (324 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 (40 ns vs. 40 ns) |
similar (65 ms vs. 89 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 (40 ns vs. 40 ns) |
2 times less (69 ms vs. 160 ms) |
similar (3 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 (37 LLVM lines w/ Const vs. 70 kB allocs) |
257 times less (60 ns vs. 15 μs) |
similar (135 ms vs. 77 ms) |
similar (7 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) |
similar (45 ms vs. 70 ms) |
8 times less (329 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 (65 ms vs. 88 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) |
2 times less (69 ms vs. 162 ms) |
similar (3 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 (31 LLVM lines w/ Const vs. 70 kB allocs) |
269 times less (60 ns vs. 16 μs) |
similar (134 ms vs. 78 ms) |
similar (7 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 (40 ns vs. 50 ns) |
similar (46 ms vs. 47 ms) |
6 times less (504 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 (50 ns vs. 50 ns) |
similar (69 ms vs. 51 ms) |
similar (3 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 (80 ns vs. 80 ns) |
similar (86 ms vs. 63 ms) |
2 times less (4 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) |
309 times less (331 ns vs. 102 μs) |
4 times more (230 ms vs. 52 ms) |
similar (8 MB vs. 5 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (47 ms vs. 70 ms) |
8 times less (295 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 (30 ns vs. 40 ns) |
similar (45 ms vs. 70 ms) |
7 times less (326 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 (40 ns vs. 40 ns) |
similar (45 ms vs. 50 ms) |
6 times less (454 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 (40 ns vs. 40 ns) |
similar (46 ms vs. 73 ms) |
7 times less (345 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 (40 ns vs. 30 ns) |
similar (66 ms vs. 91 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 30 ns) |
2 times less (70 ms vs. 163 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (31 LLVM lines w/ Const vs. 68 kB allocs) |
127 times less (60 ns vs. 8 μs) |
similar (136 ms vs. 79 ms) |
2 times more (6 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 (40 ns vs. 50 ns) |
similar (46 ms vs. 50 ms) |
6 times less (498 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 (40 ns vs. 50 ns) |
similar (68 ms vs. 53 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (196 LLVM lines) |
similar (60 ns vs. 70 ns) |
similar (75 ms vs. 62 ms) |
similar (4 MB vs. 7 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (772 LLVM lines vs. 140 kB allocs) |
58 times less (180 ns vs. 11 μs) |
2 times more (135 ms vs. 54 ms) |
2 times more (8 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 (40 ns vs. 30 ns) |
similar (46 ms vs. 73 ms) |
8 times less (352 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 (40 ns vs. 40 ns) |
similar (67 ms vs. 92 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 (40 ns vs. 40 ns) |
2 times less (70 ms vs. 166 ms) |
2 times less (3 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 (37 LLVM lines w/ Const vs. 70 kB allocs) |
260 times less (60 ns vs. 16 μs) |
similar (136 ms vs. 81 ms) |
similar (7 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
2 |
nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (45 ms vs. 74 ms) |
8 times less (356 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 (30 ns vs. 30 ns) |
similar (67 ms vs. 92 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 (40 ns vs. 30 ns) |
2 times less (70 ms vs. 166 ms) |
2 times less (3 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 (31 LLVM lines w/ Const vs. 70 kB allocs) |
258 times less (60 ns vs. 16 μs) |
similar (135 ms vs. 81 ms) |
similar (7 MB vs. 4 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (15 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (46 ms vs. 52 ms) |
6 times less (549 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 (50 ns vs. 50 ns) |
similar (70 ms vs. 55 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
mapreduce((x->(x, length(x))), tuple, itr; init = ()) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (169 LLVM lines) |
similar (70 ns vs. 80 ns) |
similar (87 ms vs. 67 ms) |
2 times less (4 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) |
348 times less (320 ns vs. 112 μs) |
4 times more (230 ms vs. 56 ms) |
similar (8 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 (23 ms vs. 34 ms) |
3 times less (129 kB vs. 483 kB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (23 ms vs. 35 ms) |
3 times less (159 kB vs. 514 kB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 35 ms) |
2 times less (367 kB vs. 901 kB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (23 ms vs. 42 ms) |
6 times less (162 kB vs. 1 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (49 ms vs. 81 ms) |
9 times less (290 kB vs. 3 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
4 times less (50 ms vs. 236 ms) |
24 times less (432 kB vs. 10 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (40 ns vs. 50 ns) |
similar (24 ms vs. 41 ms) |
4 times less (394 kB vs. 2 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (38 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (54 ms vs. 50 ms) |
6 times less (677 kB vs. 4 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (669 LLVM lines) |
similar (220 ns vs. 220 ns) |
similar (383 ms vs. 368 ms) |
12 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. 40 ns) |
similar (25 ms vs. 42 ms) |
6 times less (162 kB vs. 1 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (49 ms vs. 81 ms) |
10 times less (290 kB vs. 3 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
4 times less (50 ms vs. 239 ms) |
25 times less (433 kB vs. 11 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 42 ms) |
6 times less (162 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 (49 ms vs. 81 ms) |
10 times less (290 kB vs. 3 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
4 times less (50 ms vs. 237 ms) |
25 times less (433 kB vs. 11 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (13 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 41 ms) |
3 times less (420 kB vs. 2 MB) |
| unrolled_accumulate(tuple, itr) |
accumulate(tuple, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (85 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (59 ms vs. 58 ms) |
7 times less (679 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 (990 ms vs. 732 ms) |
12 times less (1 MB vs. 17 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (24 ms vs. 30 ms) |
5 times less (143 kB vs. 819 kB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 30 ms) |
4 times less (173 kB vs. 850 kB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 33 ms) |
2 times less (401 kB vs. 1 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 36 ms) |
6 times less (176 kB vs. 1 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (49 ms vs. 75 ms) |
9 times less (303 kB vs. 3 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
4 times less (50 ms vs. 231 ms) |
23 times less (446 kB vs. 10 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 35 ms) |
3 times less (429 kB vs. 2 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (38 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (53 ms vs. 45 ms) |
6 times less (711 kB vs. 4 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (669 LLVM lines) |
similar (230 ns vs. 230 ns) |
similar (370 ms vs. 375 ms) |
11 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 (30 ns vs. 40 ns) |
similar (24 ms vs. 36 ms) |
6 times less (175 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 (48 ms vs. 76 ms) |
10 times less (304 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 (50 ms vs. 230 ms) |
24 times less (447 kB vs. 11 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 36 ms) |
6 times less (176 kB vs. 1 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (49 ms vs. 75 ms) |
10 times less (304 kB vs. 3 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
4 times less (50 ms vs. 232 ms) |
24 times less (446 kB vs. 11 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (13 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 35 ms) |
3 times less (455 kB vs. 2 MB) |
| unrolled_accumulate(tuple, itr; init = ()) |
accumulate(tuple, itr; init = ()) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (85 LLVM lines) |
similar (60 ns vs. 60 ns) |
similar (57 ms vs. 50 ms) |
6 times less (713 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 (991 ms vs. 725 ms) |
12 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 (40 ns vs. 40 ns) |
similar (60 ms vs. 37 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 (40 ns vs. 40 ns) |
similar (58 ms vs. 37 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 (40 ns vs. 40 ns) |
similar (57 ms vs. 37 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 (40 ns vs. 40 ns) |
similar (59 ms vs. 38 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 (40 ns vs. 40 ns) |
similar (75 ms vs. 38 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 (40 ns vs. 40 ns) |
2 times more (78 ms vs. 37 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 (40 ns vs. 30 ns) |
2 times more (95 ms vs. 38 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 (40 ns vs. 40 ns) |
similar (57 ms vs. 37 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 (40 ns vs. 40 ns) |
similar (73 ms vs. 37 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 (40 ns vs. 40 ns) |
2 times more (77 ms vs. 38 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 (50 ns vs. 40 ns) |
2 times more (93 ms vs. 37 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 (40 ns vs. 50 ns) |
similar (60 ms vs. 37 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 (40 ns vs. 50 ns) |
similar (74 ms vs. 37 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 (40 ns vs. 50 ns) |
2 times more (78 ms vs. 37 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 (40 ns vs. 50 ns) |
2 times more (94 ms vs. 37 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 (40 ns vs. 50 ns) |
similar (60 ms vs. 37 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 (40 ns vs. 50 ns) |
2 times more (74 ms vs. 37 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 (40 ns vs. 50 ns) |
2 times more (78 ms vs. 38 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 (40 ns vs. 50 ns) |
2 times more (94 ms vs. 38 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. 64 B allocs) |
similar (40 ns vs. 70 ns) |
similar (57 ms vs. 37 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. 224 B allocs) |
similar (40 ns vs. 70 ns) |
similar (73 ms vs. 38 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 (50 ns vs. 80 ns) |
2 times more (77 ms vs. 37 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 (80 ns vs. 190 ns) |
2 times more (93 ms vs. 37 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 (25 ms vs. 23 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 (30 ns vs. 40 ns) |
similar (25 ms vs. 23 ms) |
similar (162 kB vs. 164 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (21 ms vs. 21 ms) |
similar (138 kB vs. 194 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (25 ms vs. 26 ms) |
similar (166 kB vs. 283 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (41 ms vs. 26 ms) |
similar (254 kB vs. 283 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (44 ms vs. 26 ms) |
similar (406 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 (48 ms vs. 26 ms) |
3 times more (1011 kB vs. 283 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (21 ms vs. 24 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 (30 ns vs. 40 ns) |
similar (37 ms vs. 24 ms) |
similar (285 kB vs. 352 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (38 ms vs. 24 ms) |
similar (536 kB vs. 352 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (44 ms vs. 24 ms) |
4 times more (2 MB vs. 352 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (28 ms vs. 28 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. 30 ns) |
similar (47 ms vs. 29 ms) |
similar (338 kB vs. 340 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (57 ms vs. 29 ms) |
similar (616 kB vs. 340 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
128 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
2 times more (63 ms vs. 29 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. 40 ns) |
similar (28 ms vs. 28 ms) |
similar (194 kB vs. 315 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (48 ms vs. 29 ms) |
similar (338 kB vs. 340 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (55 ms vs. 29 ms) |
similar (588 kB vs. 340 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
128 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times more (61 ms vs. 29 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) |
similar (40 ns vs. 70 ns) |
similar (21 ms vs. 25 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 (30 ns vs. 180 ns) |
similar (36 ms vs. 26 ms) |
similar (367 kB vs. 410 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
32 |
nonempty non-singleton Tuples |
better (optimized out vs. 37 kB allocs) |
76 times less (30 ns vs. 2 μs) |
similar (38 ms vs. 26 ms) |
similar (699 kB vs. 445 kB) |
| unrolled_in(nothing, itr) |
nothing in itr |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
744 times less (30 ns vs. 22 μs) |
similar (44 ms vs. 26 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 (30 ns vs. 30 ns) |
similar (28 ms vs. 21 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. 30 ns) |
similar (26 ms vs. 26 ms) |
similar (167 kB vs. 254 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (6 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 24 ms) |
similar (290 kB vs. 260 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (26 ms vs. 26 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 (42 ms vs. 26 ms) |
similar (240 kB vs. 254 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (43 ms vs. 26 ms) |
similar (328 kB vs. 254 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (48 ms vs. 26 ms) |
2 times more (677 kB vs. 254 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (25 ms vs. 26 ms) |
similar (335 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. 40 ns) |
similar (41 ms vs. 27 ms) |
similar (644 kB vs. 361 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (44 ms vs. 26 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 (40 ns vs. 40 ns) |
2 times more (63 ms vs. 27 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 (26 ms vs. 21 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 (41 ms vs. 21 ms) |
similar (241 kB vs. 150 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times more (43 ms vs. 21 ms) |
2 times more (329 kB vs. 150 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
128 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
2 times more (48 ms vs. 22 ms) |
4 times more (678 kB vs. 150 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (27 ms vs. 26 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 (30 ns vs. 30 ns) |
similar (41 ms vs. 25 ms) |
similar (241 kB vs. 255 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (43 ms vs. 26 ms) |
similar (329 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. 40 ns) |
similar (48 ms vs. 26 ms) |
2 times more (678 kB vs. 255 kB) |
| unrolled_in(itr[1], itr) |
itr[1] in itr |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 27 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. 60 ns) |
similar (40 ms vs. 31 ms) |
similar (585 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 (40 ns vs. 60 ns) |
similar (42 ms vs. 31 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 (40 ns vs. 60 ns) |
similar (52 ms vs. 31 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 (27 ms vs. 22 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 (40 ns vs. 40 ns) |
similar (26 ms vs. 26 ms) |
similar (167 kB vs. 254 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (6 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 24 ms) |
similar (290 kB vs. 260 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (26 ms vs. 26 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. 40 ns) |
similar (42 ms vs. 26 ms) |
similar (240 kB vs. 254 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (44 ms vs. 26 ms) |
similar (328 kB vs. 254 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (48 ms vs. 26 ms) |
2 times more (677 kB vs. 254 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (25 ms vs. 26 ms) |
similar (335 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 (40 ns vs. 40 ns) |
similar (41 ms vs. 27 ms) |
similar (644 kB vs. 361 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (6 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (45 ms vs. 27 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 (40 ns vs. 40 ns) |
2 times more (63 ms vs. 27 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 (29 ms vs. 30 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. 40 ns) |
similar (48 ms vs. 38 ms) |
3 times less (340 kB vs. 1 MB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (58 ms vs. 47 ms) |
3 times less (597 kB vs. 2 MB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
128 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (63 ms vs. 47 ms) |
2 times less (946 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. 40 ns) |
similar (29 ms vs. 32 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 (40 ns vs. 40 ns) |
similar (48 ms vs. 41 ms) |
3 times less (340 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. 30 ns) |
similar (43 ms vs. 26 ms) |
similar (329 kB vs. 255 kB) |
| unrolled_in(itr[end], itr) |
itr[end] in itr |
Tuple |
128 |
nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (51 ms vs. 35 ms) |
similar (708 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 (40 ns vs. 60 ns) |
similar (25 ms vs. 28 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 (40 ns vs. 280 ns) |
similar (41 ms vs. 34 ms) |
2 times less (604 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 (40 ns vs. 60 ns) |
similar (43 ms vs. 32 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) |
5 times less (40 ns vs. 230 ns) |
similar (54 ms vs. 32 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) |
7 times less (40 ns vs. 300 ns) |
similar (61 ms vs. 70 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 384 B allocs) |
10 times less (30 ns vs. 300 ns) |
similar (61 ms vs. 69 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (8 LLVM lines vs. 480 B allocs) |
8 times less (40 ns vs. 330 ns) |
similar (54 ms vs. 67 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 384 B allocs) |
7 times less (40 ns vs. 300 ns) |
similar (68 ms vs. 70 ms) |
similar (4 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) |
7 times less (40 ns vs. 310 ns) |
similar (104 ms vs. 70 ms) |
similar (7 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 384 B allocs) |
9 times less (40 ns vs. 360 ns) |
similar (113 ms vs. 70 ms) |
2 times more (13 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 384 B allocs) |
13 times less (40 ns vs. 541 ns) |
2 times more (153 ms vs. 70 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) |
8 times less (40 ns vs. 340 ns) |
similar (60 ms vs. 68 ms) |
similar (5 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) |
8 times less (40 ns vs. 340 ns) |
similar (96 ms vs. 68 ms) |
similar (9 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 480 B allocs) |
9 times less (40 ns vs. 381 ns) |
similar (111 ms vs. 68 ms) |
4 times more (22 MB vs. 5 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 480 B allocs) |
14 times less (40 ns vs. 580 ns) |
3 times more (267 ms vs. 68 ms) |
26 times more (129 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) |
8 times less (40 ns vs. 340 ns) |
similar (70 ms vs. 80 ms) |
similar (4 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) |
11 times less (40 ns vs. 461 ns) |
similar (125 ms vs. 78 ms) |
similar (8 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) |
20 times less (40 ns vs. 801 ns) |
2 times more (165 ms vs. 79 ms) |
2 times more (13 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) |
47 times less (40 ns vs. 2 μs) |
2 times more (207 ms vs. 78 ms) |
5 times more (26 MB vs. 4 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
2 |
nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
8 times less (40 ns vs. 330 ns) |
similar (70 ms vs. 80 ms) |
similar (4 MB vs. 4 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
8 |
nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
16 times less (30 ns vs. 480 ns) |
similar (125 ms vs. 91 ms) |
similar (8 MB vs. 6 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
32 times less (40 ns vs. 1 μs) |
similar (157 ms vs. 107 ms) |
similar (13 MB vs. 7 MB) |
| unrolled_unique(length, itr) |
Tuple(unique(length, itr)) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
59 times less (40 ns vs. 2 μs) |
similar (202 ms vs. 107 ms) |
3 times more (25 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 (50 ns vs. 381 ns) |
similar (60 ms vs. 80 ms) |
similar (5 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) |
16 times less (40 ns vs. 651 ns) |
similar (101 ms vs. 93 ms) |
2 times more (12 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) |
81 times less (50 ns vs. 4 μs) |
similar (132 ms vs. 114 ms) |
4 times more (32 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) |
452 times less (50 ns vs. 23 μs) |
2 times more (335 ms vs. 113 ms) |
23 times more (163 MB vs. 7 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
1 |
empty singleton Tuple |
better (optimized out vs. 256 B allocs) |
9 times less (30 ns vs. 280 ns) |
similar (61 ms vs. 89 ms) |
2 times less (4 MB vs. 7 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 256 B allocs) |
9 times less (30 ns vs. 281 ns) |
similar (61 ms vs. 93 ms) |
2 times less (4 MB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (8 LLVM lines vs. 480 B allocs) |
8 times less (40 ns vs. 320 ns) |
similar (53 ms vs. 97 ms) |
similar (4 MB vs. 7 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
7 times less (40 ns vs. 300 ns) |
similar (68 ms vs. 96 ms) |
similar (4 MB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
7 times less (40 ns vs. 310 ns) |
similar (103 ms vs. 95 ms) |
similar (6 MB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
12 times less (30 ns vs. 360 ns) |
similar (108 ms vs. 95 ms) |
similar (9 MB vs. 8 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
19 times less (30 ns vs. 571 ns) |
similar (133 ms vs. 96 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) |
8 times less (40 ns vs. 321 ns) |
similar (63 ms vs. 101 ms) |
similar (6 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 (180 ns vs. 350 ns) |
similar (136 ms vs. 100 ms) |
3 times more (23 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) |
similar (701 ns vs. 450 ns) |
5 times more (563 ms vs. 100 ms) |
12 times more (93 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) |
7 times more (6 μs vs. 871 ns) |
87 times more (9 s vs. 101 ms) |
146 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) |
8 times less (40 ns vs. 330 ns) |
similar (70 ms vs. 135 ms) |
2 times less (4 MB vs. 10 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
8 |
empty & nonempty singleton Tuples |
better (optimized out vs. 576 B allocs) |
19 times less (30 ns vs. 590 ns) |
similar (126 ms vs. 202 ms) |
2 times less (8 MB vs. 18 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 960 B allocs) |
45 times less (40 ns vs. 2 μs) |
2 times less (167 ms vs. 337 ms) |
2 times less (13 MB vs. 34 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
124 times less (40 ns vs. 5 μs) |
similar (213 ms vs. 338 ms) |
similar (26 MB vs. 34 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
2 |
nonempty singleton Tuples |
better (optimized out vs. 448 B allocs) |
8 times less (40 ns vs. 320 ns) |
2 times less (70 ms vs. 145 ms) |
2 times less (4 MB vs. 12 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
8 |
nonempty singleton Tuples |
better (optimized out vs. 576 B allocs) |
27 times less (40 ns vs. 1 μs) |
similar (125 ms vs. 232 ms) |
2 times less (8 MB vs. 22 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 960 B allocs) |
69 times less (40 ns vs. 3 μs) |
2 times less (159 ms vs. 351 ms) |
2 times less (13 MB vs. 35 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
155 times less (40 ns vs. 6 μs) |
similar (207 ms vs. 351 ms) |
similar (25 MB vs. 35 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
2 |
nonempty non-singleton Tuples |
better (11 LLVM lines vs. 640 B allocs) |
9 times less (40 ns vs. 390 ns) |
2 times less (60 ms vs. 146 ms) |
2 times less (5 MB vs. 11 MB) |
| unrolled_unique(itr) |
Tuple(unique(itr)) |
Tuple |
8 |
nonempty non-singleton Tuples |
fewer allocs (320 B allocs vs. 2 kB allocs) |
7 times less (190 ns vs. 1 μs) |
similar (143 ms vs. 245 ms) |
similar (25 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) |
11 times less (560 ns vs. 6 μs) |
similar (362 ms vs. 391 ms) |
2 times more (78 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) |
16 times less (2 μs vs. 38 μs) |
8 times more (3 s vs. 394 ms) |
23 times more (785 MB vs. 33 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (37 ms vs. 21 ms) |
51 times more (768 kB vs. 15 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (37 ms vs. 21 ms) |
41 times more (803 kB 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 (33 ms vs. 21 ms) |
40 times more (794 kB vs. 19 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (38 ms vs. 24 ms) |
similar (1 MB vs. 1003 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (56 ms vs. 37 ms) |
3 times less (2 MB vs. 9 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 320 B allocs) |
5 times less (40 ns vs. 210 ns) |
similar (65 ms vs. 47 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) |
5 times less (40 ns vs. 210 ns) |
2 times more (102 ms vs. 47 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 (40 ns vs. 40 ns) |
similar (33 ms vs. 24 ms) |
similar (1 MB vs. 981 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (51 ms vs. 37 ms) |
3 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) |
7 times less (30 ns vs. 220 ns) |
similar (59 ms vs. 41 ms) |
3 times more (8 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) |
5 times less (40 ns vs. 220 ns) |
2 times more (95 ms vs. 41 ms) |
14 times more (31 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 24 ms) |
similar (806 kB vs. 1003 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (55 ms vs. 37 ms) |
5 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) |
6 times less (40 ns vs. 240 ns) |
similar (63 ms vs. 48 ms) |
2 times more (4 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 320 B allocs) |
8 times less (30 ns vs. 240 ns) |
similar (101 ms vs. 55 ms) |
7 times more (16 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (39 ms vs. 24 ms) |
similar (811 kB vs. 1008 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (56 ms vs. 37 ms) |
5 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) |
7 times less (30 ns vs. 230 ns) |
similar (63 ms vs. 48 ms) |
2 times more (4 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 320 B allocs) |
6 times less (40 ns vs. 240 ns) |
2 times more (102 ms vs. 48 ms) |
7 times more (16 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 (32 ms vs. 24 ms) |
similar (851 kB vs. 1007 kB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (49 ms vs. 37 ms) |
5 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) |
8 times less (40 ns vs. 320 ns) |
similar (54 ms vs. 42 ms) |
2 times more (5 MB vs. 2 MB) |
| unrolled_allunique(length, itr) |
allunique(length, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 8 kB allocs) |
18 times less (30 ns vs. 561 ns) |
similar (76 ms vs. 42 ms) |
8 times more (19 MB vs. 2 MB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (34 ms vs. 20 ms) |
15 times more (321 kB vs. 21 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (34 ms vs. 20 ms) |
13 times more (356 kB vs. 25 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (29 ms vs. 21 ms) |
14 times more (369 kB vs. 25 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (42 ms vs. 23 ms) |
4 times more (858 kB vs. 194 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
2 times more (68 ms vs. 26 ms) |
4 times more (1 MB vs. 297 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times more (76 ms vs. 26 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) |
4 times more (110 ms vs. 26 ms) |
20 times more (6 MB vs. 310 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (30 ms vs. 23 ms) |
5 times more (979 kB vs. 187 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
2 times more (54 ms vs. 26 ms) |
3 times more (1 MB vs. 434 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times more (57 ms vs. 27 ms) |
6 times more (3 MB vs. 494 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 4 kB allocs) |
122 times less (40 ns vs. 5 μs) |
2 times more (70 ms vs. 30 ms) |
21 times more (9 MB vs. 438 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (43 ms vs. 23 ms) |
4 times more (855 kB vs. 192 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
2 times more (69 ms vs. 23 ms) |
7 times more (1 MB vs. 194 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
3 times more (74 ms vs. 23 ms) |
13 times more (3 MB vs. 197 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
4 times more (106 ms vs. 23 ms) |
33 times more (7 MB vs. 208 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (43 ms vs. 23 ms) |
4 times more (860 kB vs. 196 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
2 times more (68 ms vs. 24 ms) |
6 times more (1 MB vs. 198 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
3 times more (74 ms vs. 23 ms) |
13 times more (3 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) |
4 times more (106 ms vs. 24 ms) |
32 times more (7 MB vs. 212 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (30 ms vs. 23 ms) |
3 times more (1006 kB vs. 260 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
2 times more (55 ms vs. 23 ms) |
5 times more (2 MB vs. 292 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
2 times more (58 ms vs. 23 ms) |
10 times more (4 MB vs. 331 kB) |
| unrolled_allequal(length, itr) |
allequal(length, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
3 times more (70 ms vs. 23 ms) |
35 times more (10 MB vs. 283 kB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (37 ms vs. 53 ms) |
8 times less (250 kB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (37 ms vs. 53 ms) |
7 times less (281 kB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (37 ms vs. 33 ms) |
9 times less (254 kB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (38 ms vs. 56 ms) |
7 times less (305 kB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (58 ms vs. 55 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (62 ms vs. 56 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (75 ms vs. 59 ms) |
2 times more (6 MB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (37 ms vs. 33 ms) |
8 times less (282 kB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (59 ms vs. 34 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 (40 ns vs. 30 ns) |
similar (61 ms vs. 34 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (40 ns vs. 40 ns) |
2 times more (75 ms vs. 37 ms) |
2 times more (6 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (37 ms vs. 56 ms) |
8 times less (304 kB vs. 2 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (58 ms vs. 61 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (61 ms vs. 72 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
35 times less (30 ns vs. 1 μs) |
similar (74 ms vs. 62 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (38 ms vs. 56 ms) |
8 times less (309 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 (58 ms vs. 61 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (61 ms vs. 72 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
26 times less (40 ns vs. 1 μs) |
similar (76 ms vs. 62 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (37 ms vs. 34 ms) |
9 times less (308 kB vs. 3 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (58 ms vs. 35 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (62 ms vs. 36 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_sum(length, itr) |
sum(length, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
524 times less (40 ns vs. 21 μs) |
similar (75 ms vs. 40 ms) |
similar (6 MB vs. 4 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (37 ms vs. 59 ms) |
9 times less (250 kB vs. 2 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (37 ms vs. 60 ms) |
8 times less (281 kB vs. 2 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (37 ms vs. 39 ms) |
10 times less (254 kB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (38 ms vs. 63 ms) |
8 times less (305 kB vs. 2 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (60 ms vs. 62 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (61 ms vs. 63 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (74 ms vs. 65 ms) |
2 times more (6 MB vs. 2 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (37 ms vs. 40 ms) |
9 times less (282 kB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (58 ms vs. 40 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 (30 ns vs. 40 ns) |
similar (62 ms vs. 41 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (31 ns vs. 30 ns) |
similar (75 ms vs. 43 ms) |
2 times more (6 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 63 ms) |
9 times less (304 kB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (58 ms vs. 68 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (62 ms vs. 78 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 19 LLVM lines) |
26 times less (40 ns vs. 1 μs) |
similar (75 ms vs. 68 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (38 ms vs. 63 ms) |
9 times less (309 kB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (58 ms vs. 72 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. 79 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
35 times less (30 ns vs. 1 μs) |
similar (75 ms vs. 69 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (37 ms vs. 40 ms) |
10 times less (308 kB vs. 3 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (31 ns vs. 40 ns) |
similar (58 ms vs. 41 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (62 ms vs. 43 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_prod(length, itr) |
prod(length, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
524 times less (40 ns vs. 21 μs) |
similar (75 ms vs. 47 ms) |
similar (6 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 (40 ns vs. 130 ns) |
similar (37 ms vs. 54 ms) |
6 times less (429 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 (30 ns vs. 140 ns) |
similar (38 ms vs. 54 ms) |
6 times less (460 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 (40 ns vs. 130 ns) |
similar (38 ms vs. 47 ms) |
7 times less (433 kB vs. 3 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (7 LLVM lines w/ Const vs. 112 B allocs) |
3 times less (40 ns vs. 150 ns) |
similar (38 ms vs. 57 ms) |
7 times less (498 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) |
6 times less (40 ns vs. 270 ns) |
similar (56 ms vs. 56 ms) |
4 times less (839 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) |
27 times less (30 ns vs. 811 ns) |
similar (64 ms vs. 57 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (37 LLVM lines w/ Const vs. 2 kB allocs) |
48 times less (60 ns vs. 3 μs) |
5 times more (335 ms vs. 58 ms) |
2 times more (8 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 112 B allocs) |
5 times less (30 ns vs. 150 ns) |
similar (38 ms vs. 48 ms) |
8 times less (475 kB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 208 B allocs) |
9 times less (30 ns vs. 271 ns) |
similar (56 ms vs. 49 ms) |
4 times less (868 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) |
26 times less (30 ns vs. 801 ns) |
similar (64 ms vs. 50 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (37 LLVM lines w/ Const vs. 2 kB allocs) |
48 times less (60 ns vs. 3 μs) |
6 times more (338 ms vs. 52 ms) |
2 times more (8 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 (30 ns vs. 161 ns) |
similar (38 ms vs. 58 ms) |
7 times less (497 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) |
8 times less (40 ns vs. 350 ns) |
similar (56 ms vs. 59 ms) |
4 times less (849 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) |
27 times less (40 ns vs. 1 μs) |
similar (63 ms vs. 58 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (37 LLVM lines w/ Const vs. 2 kB allocs) |
66 times less (60 ns vs. 4 μs) |
5 times more (335 ms vs. 59 ms) |
2 times more (8 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 (40 ns vs. 170 ns) |
similar (38 ms vs. 58 ms) |
7 times less (502 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) |
8 times less (40 ns vs. 331 ns) |
similar (57 ms vs. 59 ms) |
4 times less (853 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) |
27 times less (40 ns vs. 1 μs) |
similar (64 ms vs. 58 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
128 |
nonempty singleton Tuples |
better (37 LLVM lines w/ Const vs. 2 kB allocs) |
66 times less (60 ns vs. 4 μs) |
5 times more (339 ms vs. 59 ms) |
2 times more (8 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) |
5 times less (30 ns vs. 170 ns) |
similar (38 ms vs. 50 ms) |
8 times less (502 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) |
10 times less (40 ns vs. 431 ns) |
similar (56 ms vs. 53 ms) |
4 times less (869 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) |
111 times less (30 ns vs. 3 μs) |
similar (64 ms vs. 51 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_cumsum(length, itr) |
Tuple(cumsum(Iterators.map(length, itr))) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (37 LLVM lines w/ Const vs. 523 kB allocs) |
438 times less (60 ns vs. 26 μs) |
6 times more (337 ms vs. 52 ms) |
similar (8 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
1 |
empty singleton Tuple |
better (optimized out vs. 80 B allocs) |
3 times less (40 ns vs. 140 ns) |
similar (37 ms vs. 57 ms) |
7 times less (429 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 (30 ns vs. 140 ns) |
similar (38 ms vs. 57 ms) |
6 times less (460 kB vs. 3 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (optimized out vs. 80 B allocs) |
3 times less (40 ns vs. 140 ns) |
similar (38 ms vs. 50 ms) |
7 times less (433 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) |
3 times less (40 ns vs. 150 ns) |
similar (38 ms vs. 59 ms) |
7 times less (498 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) |
6 times less (40 ns vs. 270 ns) |
similar (57 ms vs. 60 ms) |
4 times less (839 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) |
27 times less (30 ns vs. 811 ns) |
similar (64 ms vs. 60 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (37 LLVM lines w/ Const vs. 2 kB allocs) |
49 times less (60 ns vs. 3 μs) |
5 times more (339 ms vs. 61 ms) |
2 times more (8 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (7 LLVM lines w/ Const vs. 112 B allocs) |
5 times less (30 ns vs. 150 ns) |
similar (38 ms vs. 51 ms) |
8 times less (475 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 (30 ns vs. 270 ns) |
similar (56 ms vs. 52 ms) |
4 times less (868 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) |
19 times less (40 ns vs. 791 ns) |
similar (64 ms vs. 53 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (37 LLVM lines w/ Const vs. 2 kB allocs) |
48 times less (60 ns vs. 3 μs) |
6 times more (340 ms vs. 53 ms) |
2 times more (8 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 (40 ns vs. 160 ns) |
similar (38 ms vs. 60 ms) |
8 times less (497 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) |
11 times less (30 ns vs. 330 ns) |
similar (57 ms vs. 61 ms) |
4 times less (849 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) |
26 times less (40 ns vs. 1 μs) |
similar (64 ms vs. 60 ms) |
2 times less (2 MB 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) |
65 times less (60 ns vs. 4 μs) |
5 times more (332 ms vs. 61 ms) |
2 times more (8 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) |
5 times less (30 ns vs. 160 ns) |
similar (38 ms vs. 61 ms) |
7 times less (502 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) |
8 times less (40 ns vs. 340 ns) |
similar (56 ms vs. 62 ms) |
4 times less (853 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) |
29 times less (40 ns vs. 1 μs) |
similar (64 ms vs. 61 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
128 |
nonempty singleton Tuples |
better (43 LLVM lines w/ Const vs. 4 kB allocs) |
74 times less (60 ns vs. 4 μs) |
5 times more (339 ms vs. 61 ms) |
2 times more (8 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) |
5 times less (30 ns vs. 170 ns) |
similar (38 ms vs. 53 ms) |
8 times less (502 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) |
11 times less (40 ns vs. 440 ns) |
similar (56 ms vs. 57 ms) |
4 times less (869 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) |
102 times less (30 ns vs. 3 μs) |
similar (65 ms vs. 54 ms) |
2 times less (2 MB vs. 4 MB) |
| unrolled_cumprod(length, itr) |
Tuple(cumprod(Iterators.map(length, itr))) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (43 LLVM lines w/ Const vs. 525 kB allocs) |
423 times less (60 ns vs. 25 μs) |
6 times more (340 ms vs. 54 ms) |
similar (8 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 60 ms) |
9 times less (386 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (38 ms vs. 60 ms) |
8 times less (417 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (38 ms vs. 39 ms) |
10 times less (390 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 61 ms) |
6 times less (566 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (59 ms vs. 61 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (65 ms vs. 62 ms) |
similar (5 MB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (30 ns vs. 40 ns) |
similar (86 ms vs. 62 ms) |
4 times more (15 MB vs. 3 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (38 ms vs. 40 ms) |
7 times less (544 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (59 ms vs. 40 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (65 ms vs. 42 ms) |
similar (5 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. 40 ns) |
2 times more (85 ms vs. 41 ms) |
4 times more (15 MB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (38 ms vs. 62 ms) |
6 times less (618 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (60 ms vs. 62 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (65 ms vs. 64 ms) |
similar (6 MB vs. 6 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 25 LLVM lines) |
37 times less (30 ns vs. 1 μs) |
similar (86 ms vs. 65 ms) |
3 times more (15 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (39 ms vs. 61 ms) |
6 times less (623 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (60 ms vs. 62 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (65 ms vs. 64 ms) |
similar (6 MB vs. 6 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 25 LLVM lines) |
34 times less (30 ns vs. 1 μs) |
similar (87 ms vs. 66 ms) |
3 times more (15 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 40 ms) |
7 times less (626 kB vs. 4 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (59 ms vs. 42 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (65 ms vs. 44 ms) |
similar (6 MB vs. 7 MB) |
| unrolled_count(!isempty, itr) |
count(!isempty, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
564 times less (40 ns vs. 23 μs) |
similar (86 ms vs. 45 ms) |
2 times more (16 MB vs. 6 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (37 ms vs. 57 ms) |
9 times less (236 kB vs. 2 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (37 ms vs. 57 ms) |
8 times less (267 kB vs. 2 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 37 ms) |
10 times less (240 kB vs. 2 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 60 ms) |
7 times less (294 kB vs. 2 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (58 ms vs. 59 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (61 ms vs. 62 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (75 ms vs. 63 ms) |
2 times more (6 MB vs. 2 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (37 ms vs. 37 ms) |
9 times less (271 kB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (59 ms vs. 37 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. 40 ns) |
similar (61 ms vs. 38 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (75 ms vs. 40 ms) |
2 times more (6 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (38 ms vs. 60 ms) |
9 times less (293 kB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (58 ms vs. 66 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (62 ms vs. 76 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
26 times less (40 ns vs. 1 μs) |
similar (75 ms vs. 66 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 60 ms) |
9 times less (298 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 (59 ms vs. 66 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. 40 ns) |
similar (62 ms vs. 77 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
26 times less (40 ns vs. 1 μs) |
similar (75 ms vs. 66 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 38 ms) |
10 times less (297 kB vs. 3 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (58 ms vs. 39 ms) |
similar (2 MB vs. 4 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (62 ms vs. 40 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_maximum(length, itr) |
maximum(length, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
727 times less (30 ns vs. 22 μs) |
similar (76 ms vs. 44 ms) |
similar (6 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) |
similar (37 ms vs. 58 ms) |
9 times less (236 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) |
similar (37 ms vs. 57 ms) |
8 times less (267 kB vs. 2 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (37 ms vs. 37 ms) |
10 times less (240 kB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (37 ms vs. 60 ms) |
8 times less (294 kB vs. 2 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (59 ms vs. 60 ms) |
similar (2 MB vs. 2 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (62 ms vs. 60 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (75 ms vs. 63 ms) |
2 times more (6 MB vs. 2 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (37 ms vs. 37 ms) |
9 times less (271 kB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (58 ms vs. 38 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. 40 ns) |
similar (62 ms vs. 39 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (75 ms vs. 40 ms) |
2 times more (6 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (37 ms vs. 60 ms) |
9 times less (293 kB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (58 ms vs. 66 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (62 ms vs. 76 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
35 times less (30 ns vs. 1 μs) |
similar (75 ms vs. 66 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (37 ms vs. 60 ms) |
9 times less (298 kB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (58 ms vs. 66 ms) |
similar (2 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (62 ms vs. 77 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 26 LLVM lines) |
35 times less (30 ns vs. 1 μs) |
similar (75 ms vs. 66 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (37 ms vs. 38 ms) |
10 times less (297 kB vs. 3 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (59 ms vs. 39 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. 40 ns) |
similar (62 ms vs. 41 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_minimum(length, itr) |
minimum(length, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 521 kB allocs) |
707 times less (30 ns vs. 21 μs) |
similar (75 ms vs. 44 ms) |
similar (6 MB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 64 ms) |
14 times less (252 kB vs. 3 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 30 ns) |
similar (38 ms vs. 65 ms) |
12 times less (283 kB vs. 3 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
similar (37 ms vs. 44 ms) |
15 times less (256 kB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
similar (38 ms vs. 68 ms) |
8 times less (438 kB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 30 ns) |
similar (60 ms vs. 68 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 (30 ns vs. 30 ns) |
similar (68 ms vs. 69 ms) |
similar (4 MB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
similar (109 ms vs. 71 ms) |
2 times more (8 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 (30 ns vs. 40 ns) |
similar (39 ms vs. 44 ms) |
9 times less (415 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 (40 ns vs. 30 ns) |
similar (60 ms vs. 45 ms) |
similar (3 MB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 30 ns) |
similar (69 ms vs. 46 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
2 times more (109 ms vs. 48 ms) |
2 times more (9 MB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
similar (38 ms vs. 69 ms) |
9 times less (445 kB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (60 ms vs. 75 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (69 ms vs. 92 ms) |
similar (4 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) |
28 times less (40 ns vs. 1 μs) |
similar (109 ms vs. 76 ms) |
similar (8 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 30 ns) |
similar (38 ms vs. 68 ms) |
9 times less (449 kB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 30 ns) |
similar (60 ms vs. 75 ms) |
similar (3 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 (68 ms vs. 89 ms) |
similar (4 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) |
36 times less (30 ns vs. 1 μs) |
similar (109 ms vs. 75 ms) |
similar (8 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 45 ms) |
9 times less (449 kB vs. 4 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
similar (60 ms vs. 46 ms) |
2 times less (3 MB vs. 5 MB) |
| unrolled_extrema(length, itr) |
extrema(length, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (68 ms vs. 48 ms) |
similar (4 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) |
726 times less (30 ns vs. 22 μs) |
2 times more (109 ms vs. 52 ms) |
similar (9 MB vs. 6 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
similar (36 ms vs. 50 ms) |
9 times less (515 kB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
similar (36 ms vs. 50 ms) |
7 times less (623 kB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (24 ms vs. 48 ms) |
6 times less (720 kB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
similar (37 ms vs. 51 ms) |
6 times less (789 kB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
similar (73 ms vs. 53 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 50 ns) |
similar (84 ms vs. 53 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
2 times more (149 ms vs. 53 ms) |
2 times more (11 MB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
2 times less (25 ms vs. 53 ms) |
5 times less (899 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 (40 ns vs. 40 ns) |
similar (62 ms vs. 51 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (73 ms vs. 51 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_findmax(length, itr) |
findmax(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
2 times more (138 ms vs. 51 ms) |
2 times more (12 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 (30 ns vs. 50 ns) |
similar (40 ms vs. 54 ms) |
6 times less (852 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 (30 ns vs. 100 ns) |
similar (83 ms vs. 54 ms) |
similar (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) |
7 times less (40 ns vs. 300 ns) |
similar (104 ms vs. 54 ms) |
similar (5 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) |
27 times less (40 ns vs. 1 μs) |
3 times more (169 ms vs. 54 ms) |
2 times more (11 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 (30 ns vs. 50 ns) |
similar (40 ms vs. 54 ms) |
5 times less (934 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) |
83 times less (30 ns vs. 3 μs) |
similar (82 ms vs. 55 ms) |
similar (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) |
589 times less (30 ns vs. 18 μs) |
similar (101 ms vs. 55 ms) |
similar (5 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) |
1537 times less (40 ns vs. 62 μs) |
3 times more (166 ms vs. 55 ms) |
similar (11 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 (40 ns vs. 70 ns) |
2 times less (26 ms vs. 53 ms) |
5 times less (1 MB 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) |
24 times less (30 ns vs. 721 ns) |
similar (62 ms vs. 54 ms) |
similar (4 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) |
117 times less (40 ns vs. 5 μs) |
similar (74 ms vs. 54 ms) |
similar (6 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) |
1029 times less (30 ns vs. 31 μs) |
2 times more (139 ms vs. 54 ms) |
2 times more (13 MB vs. 6 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
similar (36 ms vs. 47 ms) |
9 times less (513 kB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 30 ns) |
similar (36 ms vs. 47 ms) |
7 times less (623 kB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 30 ns) |
similar (24 ms vs. 47 ms) |
6 times less (722 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. 40 ns) |
similar (37 ms vs. 48 ms) |
5 times less (790 kB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
similar (74 ms vs. 50 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
similar (85 ms vs. 50 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
3 times more (152 ms vs. 50 ms) |
2 times more (11 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (26 ms vs. 46 ms) |
5 times less (897 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 (40 ns vs. 40 ns) |
similar (62 ms vs. 48 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (40 ns vs. 40 ns) |
similar (73 ms vs. 48 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_findmin(length, itr) |
findmin(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (7 LLVM lines w/ Const) |
similar (30 ns vs. 40 ns) |
2 times more (142 ms vs. 48 ms) |
2 times more (12 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 (40 ns vs. 50 ns) |
similar (40 ms vs. 51 ms) |
5 times less (852 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) |
3 times less (30 ns vs. 100 ns) |
similar (82 ms vs. 51 ms) |
similar (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 (40 ns vs. 300 ns) |
2 times more (105 ms vs. 52 ms) |
similar (5 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) |
28 times less (40 ns vs. 1 μs) |
3 times more (173 ms vs. 52 ms) |
2 times more (12 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 (40 ns vs. 50 ns) |
similar (40 ms vs. 51 ms) |
5 times less (933 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) |
62 times less (40 ns vs. 3 μs) |
similar (82 ms vs. 52 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) |
443 times less (40 ns vs. 18 μs) |
similar (103 ms vs. 53 ms) |
similar (5 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) |
1544 times less (40 ns vs. 62 μs) |
3 times more (170 ms vs. 52 ms) |
2 times more (12 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 (40 ns vs. 70 ns) |
similar (26 ms vs. 51 ms) |
4 times less (1 MB 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) |
18 times less (40 ns vs. 731 ns) |
similar (63 ms vs. 52 ms) |
similar (4 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) |
122 times less (40 ns vs. 5 μs) |
similar (74 ms vs. 51 ms) |
similar (6 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) |
796 times less (40 ns vs. 32 μs) |
2 times more (143 ms vs. 51 ms) |
2 times more (13 MB vs. 6 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 54 ms) |
3 times less (304 kB vs. 1 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 53 ms) |
3 times less (335 kB vs. 1 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 32 ms) |
3 times less (492 kB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (39 ms vs. 56 ms) |
2 times less (562 kB vs. 1 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (60 ms vs. 56 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (66 ms vs. 57 ms) |
2 times more (4 MB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (97 ms vs. 60 ms) |
4 times more (9 MB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 33 ms) |
2 times less (786 kB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (40 ns vs. 50 ns) |
similar (59 ms vs. 33 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 (40 ns vs. 40 ns) |
similar (63 ms vs. 36 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
2 times more (80 ms vs. 34 ms) |
6 times more (15 MB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (39 ms vs. 58 ms) |
2 times less (570 kB vs. 1 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (65 ms vs. 75 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (78 ms vs. 103 ms) |
similar (6 MB vs. 5 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 44 LLVM lines) |
38 times less (30 ns vs. 1 μs) |
2 times more (145 ms vs. 64 ms) |
4 times more (12 MB vs. 3 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (39 ms vs. 58 ms) |
2 times less (650 kB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (65 ms vs. 75 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (77 ms vs. 100 ms) |
similar (6 MB vs. 5 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 43 LLVM lines) |
27 times less (40 ns vs. 1 μs) |
2 times more (145 ms vs. 64 ms) |
3 times more (12 MB vs. 3 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (38 ms vs. 33 ms) |
2 times less (912 kB vs. 2 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (62 ms vs. 39 ms) |
similar (5 MB vs. 6 MB) |
| unrolled_argmax(length, itr) |
argmax(length, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (67 ms vs. 48 ms) |
similar (8 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) |
524 times less (40 ns vs. 21 μs) |
2 times more (84 ms vs. 37 ms) |
4 times more (18 MB vs. 4 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 51 ms) |
3 times less (304 kB vs. 1 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (38 ms vs. 51 ms) |
3 times less (335 kB vs. 1 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (38 ms vs. 30 ms) |
3 times less (492 kB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (39 ms vs. 54 ms) |
2 times less (563 kB vs. 1 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (60 ms vs. 54 ms) |
similar (3 MB vs. 1 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (66 ms vs. 55 ms) |
2 times more (4 MB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (97 ms vs. 58 ms) |
4 times more (9 MB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (39 ms vs. 31 ms) |
2 times less (787 kB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (59 ms vs. 31 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 (40 ns vs. 40 ns) |
similar (63 ms vs. 33 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
2 times more (80 ms vs. 31 ms) |
6 times more (15 MB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (39 ms vs. 55 ms) |
2 times less (570 kB vs. 1 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (65 ms vs. 62 ms) |
similar (4 MB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
32 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (76 ms vs. 79 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 44 LLVM lines) |
28 times less (40 ns vs. 1 μs) |
2 times more (137 ms vs. 61 ms) |
4 times more (12 MB vs. 3 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (39 ms vs. 55 ms) |
2 times less (651 kB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (64 ms vs. 63 ms) |
similar (4 MB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
32 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (76 ms vs. 78 ms) |
similar (6 MB vs. 3 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 43 LLVM lines) |
36 times less (30 ns vs. 1 μs) |
2 times more (138 ms vs. 62 ms) |
4 times more (12 MB vs. 3 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (39 ms vs. 30 ms) |
2 times less (915 kB vs. 2 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (62 ms vs. 32 ms) |
similar (5 MB vs. 3 MB) |
| unrolled_argmin(length, itr) |
argmin(length, itr) |
Tuple |
32 |
nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (66 ms vs. 36 ms) |
similar (8 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) |
524 times less (40 ns vs. 21 μs) |
2 times more (85 ms vs. 35 ms) |
4 times more (18 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) |
2 times less (36 ms vs. 104 ms) |
22 times less (1 MB vs. 23 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
2 times less (36 ms vs. 103 ms) |
22 times less (1 MB vs. 23 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times less (36 ms vs. 80 ms) |
22 times less (1 MB vs. 23 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (40 ns vs. 40 ns) |
2 times less (39 ms vs. 113 ms) |
17 times less (1 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (68 ms vs. 111 ms) |
5 times less (4 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (30 ns vs. 40 ns) |
similar (80 ms vs. 113 ms) |
2 times less (8 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 (40 ns vs. 40 ns) |
similar (145 ms vs. 113 ms) |
similar (26 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (30 ns vs. 40 ns) |
2 times less (40 ms vs. 87 ms) |
18 times less (1 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (68 ms vs. 88 ms) |
5 times less (4 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (80 ms vs. 88 ms) |
2 times less (9 MB vs. 25 MB) |
| unrolled_argmax(unrolled_map(length, itr)) |
argmax(Iterators.map(length, itr)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (145 ms vs. 88 ms) |
similar (26 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 (30 ns vs. 50 ns) |
2 times less (40 ms vs. 114 ms) |
18 times less (1 MB 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) |
2 times less (40 ns vs. 100 ns) |
similar (68 ms vs. 115 ms) |
5 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 (40 ns vs. 310 ns) |
similar (80 ms vs. 115 ms) |
2 times less (8 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 (40 ns vs. 1 μs) |
similar (145 ms vs. 116 ms) |
similar (26 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 (40 ns vs. 50 ns) |
2 times less (39 ms vs. 114 ms) |
17 times less (1 MB 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 (40 ns vs. 100 ns) |
similar (68 ms vs. 115 ms) |
5 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) |
9 times less (30 ns vs. 290 ns) |
similar (80 ms vs. 114 ms) |
2 times less (8 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) |
26 times less (40 ns vs. 1 μs) |
similar (146 ms vs. 114 ms) |
similar (26 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) |
2 times less (30 ns vs. 70 ns) |
2 times less (39 ms vs. 90 ms) |
18 times less (1 MB 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) |
4 times less (40 ns vs. 190 ns) |
similar (68 ms vs. 94 ms) |
5 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) |
70 times less (30 ns vs. 2 μs) |
similar (81 ms vs. 91 ms) |
2 times less (9 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) |
501 times less (40 ns vs. 20 μs) |
similar (145 ms vs. 91 ms) |
similar (26 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. 30 ns) |
2 times less (37 ms vs. 97 ms) |
21 times less (1 MB vs. 22 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times less (36 ms vs. 97 ms) |
21 times less (1 MB vs. 22 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (37 ms vs. 72 ms) |
22 times less (1 MB vs. 22 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (30 ns vs. 30 ns) |
2 times less (39 ms vs. 105 ms) |
17 times less (1 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (30 ns vs. 40 ns) |
similar (67 ms vs. 106 ms) |
5 times less (4 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (40 ns vs. 30 ns) |
similar (79 ms vs. 106 ms) |
2 times less (8 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 (30 ns vs. 40 ns) |
similar (147 ms vs. 105 ms) |
similar (26 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (40 ns vs. 30 ns) |
2 times less (39 ms vs. 82 ms) |
18 times less (1 MB 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 (30 ns vs. 40 ns) |
similar (68 ms vs. 81 ms) |
5 times less (4 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (30 ns vs. 40 ns) |
similar (80 ms vs. 81 ms) |
2 times less (9 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (optimized out vs. 6 LLVM lines) |
similar (30 ns vs. 40 ns) |
similar (145 ms vs. 81 ms) |
similar (26 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. 50 ns) |
2 times less (39 ms vs. 107 ms) |
17 times less (1 MB 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) |
2 times less (40 ns vs. 100 ns) |
similar (68 ms vs. 116 ms) |
5 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 (40 ns vs. 300 ns) |
similar (80 ms vs. 109 ms) |
2 times less (8 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) |
38 times less (30 ns vs. 1 μs) |
similar (144 ms vs. 108 ms) |
similar (26 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 (30 ns vs. 40 ns) |
2 times less (39 ms vs. 107 ms) |
17 times less (1 MB 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 (30 ns vs. 100 ns) |
similar (68 ms vs. 109 ms) |
5 times less (4 MB vs. 24 MB) |
| unrolled_argmin(unrolled_map(length, itr)) |
argmin(Iterators.map(length, itr)) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 29 LLVM lines) |
7 times less (40 ns vs. 290 ns) |
similar (80 ms vs. 108 ms) |
2 times less (8 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) |
35 times less (30 ns vs. 1 μs) |
similar (146 ms vs. 108 ms) |
similar (26 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 (40 ns vs. 70 ns) |
2 times less (40 ms vs. 82 ms) |
17 times less (1 MB 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) |
6 times less (30 ns vs. 191 ns) |
similar (68 ms vs. 86 ms) |
5 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) |
69 times less (30 ns vs. 2 μs) |
similar (80 ms vs. 85 ms) |
2 times less (9 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) |
706 times less (30 ns vs. 21 μs) |
similar (145 ms vs. 84 ms) |
similar (26 MB vs. 25 MB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (26 ms vs. 25 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 (28 ms vs. 27 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. 40 ns) |
similar (26 ms vs. 25 ms) |
similar (213 kB vs. 235 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (28 ms vs. 28 ms) |
similar (242 kB vs. 407 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (43 ms vs. 30 ms) |
3 times less (328 kB vs. 1 MB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (44 ms vs. 25 ms) |
similar (456 kB vs. 269 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
2 times more (51 ms vs. 24 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 (30 ns vs. 40 ns) |
similar (26 ms vs. 28 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 (30 ns vs. 40 ns) |
similar (40 ms vs. 29 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 (40 ns vs. 40 ns) |
similar (42 ms vs. 25 ms) |
similar (454 kB vs. 273 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (48 ms vs. 25 ms) |
3 times more (961 kB vs. 274 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (29 ms vs. 28 ms) |
similar (288 kB vs. 451 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (43 ms vs. 32 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) |
similar (40 ns vs. 60 ns) |
similar (45 ms vs. 30 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) |
2 times less (30 ns vs. 60 ns) |
similar (51 ms vs. 30 ms) |
similar (1009 kB vs. 608 kB) |
| unrolled_findfirst(!isempty, itr) |
findfirst(!isempty, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (29 ms vs. 28 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. 40 ns) |
similar (44 ms vs. 30 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. 40 ns) |
similar (44 ms vs. 25 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. 40 ns) |
2 times more (52 ms vs. 24 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 (30 ns vs. 30 ns) |
similar (26 ms vs. 27 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 (30 ns vs. 40 ns) |
similar (40 ms vs. 30 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 (30 ns vs. 30 ns) |
similar (42 ms vs. 25 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. 30 ns) |
similar (48 ms vs. 25 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 (30 ns vs. 30 ns) |
similar (34 ms vs. 31 ms) |
similar (358 kB vs. 344 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (29 ms vs. 34 ms) |
similar (302 kB vs. 399 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (24 ms vs. 30 ms) |
similar (342 kB vs. 471 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (29 ms vs. 35 ms) |
similar (308 kB vs. 562 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (44 ms vs. 45 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 (40 ns vs. 40 ns) |
similar (46 ms vs. 33 ms) |
similar (593 kB vs. 691 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (53 ms vs. 32 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 (30 ns vs. 40 ns) |
similar (24 ms vs. 31 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 (40 ns vs. 30 ns) |
similar (39 ms vs. 43 ms) |
4 times less (517 kB vs. 2 MB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (40 ms vs. 34 ms) |
similar (853 kB vs. 696 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (48 ms vs. 33 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 (30 ns vs. 40 ns) |
similar (34 ms vs. 30 ms) |
similar (397 kB vs. 467 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (49 ms vs. 34 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) |
10 times less (30 ns vs. 310 ns) |
similar (51 ms vs. 34 ms) |
similar (710 kB vs. 710 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 30 LLVM lines) |
25 times less (30 ns vs. 771 ns) |
similar (57 ms vs. 35 ms) |
similar (1 MB vs. 710 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (30 ms vs. 32 ms) |
similar (312 kB vs. 527 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (43 ms vs. 33 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) |
9 times less (30 ns vs. 290 ns) |
similar (45 ms vs. 34 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) |
26 times less (40 ns vs. 1 μs) |
similar (52 ms vs. 34 ms) |
similar (1 MB vs. 710 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (24 ms vs. 32 ms) |
similar (383 kB vs. 724 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
similar (39 ms vs. 37 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) |
72 times less (30 ns vs. 2 μs) |
similar (41 ms vs. 36 ms) |
similar (880 kB vs. 753 kB) |
| unrolled_findlast(isempty, itr) |
findlast(isempty, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (optimized out vs. 525 kB allocs) |
567 times less (40 ns vs. 23 μs) |
similar (48 ms vs. 36 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 (30 ns vs. 40 ns) |
similar (40 ms vs. 36 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 (30 ns vs. 30 ns) |
similar (39 ms vs. 38 ms) |
similar (307 kB vs. 267 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (50 ns vs. 40 ns) |
similar (37 ms vs. 37 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 (30 ns vs. 40 ns) |
similar (40 ms vs. 39 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 (58 ms vs. 40 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 (30 ns vs. 40 ns) |
similar (70 ms vs. 41 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. 30 ns) |
3 times more (142 ms vs. 41 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 (40 ns vs. 40 ns) |
similar (39 ms vs. 38 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 (40 ns vs. 40 ns) |
similar (57 ms vs. 41 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 (40 ns vs. 40 ns) |
similar (73 ms vs. 42 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 (40 ns vs. 40 ns) |
3 times more (161 ms vs. 42 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. 30 ns) |
similar (44 ms vs. 43 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. 40 ns) |
similar (68 ms vs. 59 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 (40 ns vs. 290 ns) |
similar (97 ms vs. 66 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) |
9 times less (30 ns vs. 290 ns) |
2 times more (177 ms vs. 67 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. 40 ns) |
similar (44 ms vs. 43 ms) |
similar (376 kB vs. 469 kB) |
| unrolled_argfirst((x->length(x) >= length(itr[end])), itr) |
itr[findfirst((x->length(x) >= length(itr[end])), itr)] |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
similar (68 ms vs. 60 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 (30 ns vs. 40 ns) |
2 times more (93 ms vs. 41 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) |
similar (40 ns vs. 60 ns) |
3 times more (173 ms vs. 45 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 (40 ns vs. 40 ns) |
similar (43 ms vs. 41 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 (40 ns vs. 40 ns) |
similar (69 ms vs. 62 ms) |
3 times less (875 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 (40 ns vs. 40 ns) |
2 times more (104 ms vs. 43 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) |
11 times less (40 ns vs. 441 ns) |
4 times more (220 ms vs. 47 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 (30 ns vs. 40 ns) |
similar (42 ms vs. 43 ms) |
similar (411 kB vs. 406 kB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (42 ms vs. 45 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 (40 ns vs. 40 ns) |
similar (37 ms vs. 41 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 (40 ns vs. 40 ns) |
similar (43 ms vs. 46 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 (30 ns vs. 40 ns) |
similar (61 ms vs. 56 ms) |
2 times less (706 kB vs. 2 MB) |
| unrolled_arglast((x->length(x) >= length(itr[1])), itr) |
itr[findlast((x->length(x) >= length(itr[1])), itr)] |
Tuple |
32 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (73 ms vs. 47 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 (30 ns vs. 30 ns) |
3 times more (144 ms vs. 46 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 (40 ns vs. 40 ns) |
similar (39 ms vs. 42 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 (40 ns vs. 40 ns) |
similar (57 ms vs. 54 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 (40 ns vs. 40 ns) |
similar (74 ms vs. 48 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 (40 ns vs. 40 ns) |
3 times more (164 ms vs. 47 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 (40 ns vs. 30 ns) |
similar (47 ms vs. 41 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 (40 ns vs. 30 ns) |
similar (70 ms vs. 42 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 (40 ns vs. 30 ns) |
2 times more (98 ms vs. 47 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. 40 ns) |
3 times more (180 ms vs. 47 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 (30 ns vs. 30 ns) |
similar (47 ms vs. 43 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 (40 ns vs. 30 ns) |
similar (70 ms vs. 44 ms) |
similar (846 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 (40 ns vs. 30 ns) |
2 times more (94 ms vs. 46 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 (30 ns vs. 30 ns) |
3 times more (172 ms vs. 47 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 (40 ns vs. 50 ns) |
similar (43 ms vs. 43 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 (40 ns vs. 40 ns) |
similar (69 ms vs. 48 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 (40 ns vs. 40 ns) |
2 times more (102 ms vs. 48 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 (40 ns vs. 40 ns) |
4 times more (223 ms vs. 48 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 (40 ns vs. 40 ns) |
similar (47 ms vs. 24 ms) |
5 times more (3 MB vs. 603 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
2 times more (53 ms vs. 25 ms) |
5 times more (3 MB vs. 641 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (48 ms vs. 28 ms) |
4 times more (4 MB vs. 828 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times more (58 ms vs. 24 ms) |
4 times more (3 MB vs. 704 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
identical nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
4 times more (104 ms vs. 24 ms) |
7 times more (7 MB vs. 936 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 128 B allocs) |
16 times less (30 ns vs. 500 ns) |
2 times more (209 ms vs. 91 ms) |
2 times more (15 MB vs. 7 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 128 B allocs) |
56 times less (30 ns vs. 2 μs) |
8 times more (740 ms vs. 89 ms) |
8 times more (58 MB vs. 7 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (54 ms vs. 29 ms) |
4 times more (4 MB vs. 960 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (40 ns vs. 40 ns) |
2 times more (85 ms vs. 29 ms) |
6 times more (11 MB vs. 2 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (20 LLVM lines vs. 1 kB allocs) |
27 times less (40 ns vs. 1 μs) |
similar (186 ms vs. 101 ms) |
7 times more (49 MB vs. 7 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (68 LLVM lines vs. 5 kB allocs) |
66 times less (60 ns vs. 4 μs) |
9 times more (1 s vs. 102 ms) |
77 times more (544 MB vs. 7 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
2 times more (59 ms vs. 24 ms) |
4 times more (3 MB vs. 782 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
4 times more (105 ms vs. 25 ms) |
6 times more (7 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 (30 ns vs. 731 ns) |
similar (217 ms vs. 109 ms) |
similar (16 MB vs. 8 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
83 times less (30 ns vs. 3 μs) |
6 times more (715 ms vs. 109 ms) |
6 times more (54 MB vs. 8 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
nonempty singleton Tuples |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times more (59 ms vs. 24 ms) |
4 times more (4 MB vs. 789 kB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
4 times more (106 ms vs. 24 ms) |
6 times more (7 MB vs. 1 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 640 B allocs) |
42 times less (40 ns vs. 2 μs) |
similar (215 ms vs. 132 ms) |
similar (16 MB vs. 9 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
188 times less (30 ns vs. 6 μs) |
5 times more (772 ms vs. 132 ms) |
6 times more (59 MB vs. 9 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
2 |
nonempty non-singleton Tuples |
similar (11 LLVM lines) |
similar (40 ns vs. 40 ns) |
similar (54 ms vs. 28 ms) |
4 times more (4 MB vs. 1 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
8 |
nonempty non-singleton Tuples |
similar (29 LLVM lines) |
similar (50 ns vs. 50 ns) |
2 times more (86 ms vs. 30 ms) |
6 times more (11 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) |
88 times less (60 ns vs. 5 μs) |
similar (192 ms vs. 146 ms) |
5 times more (50 MB vs. 9 MB) |
| unrolled_filter(!isempty, itr) |
filter(!isempty, itr) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (548 LLVM lines vs. 533 kB allocs) |
124 times less (280 ns vs. 35 μs) |
7 times more (1 s vs. 147 ms) |
60 times more (545 MB vs. 9 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
2 times more (63 ms vs. 25 ms) |
6 times more (5 MB vs. 780 kB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
1 |
nonempty singleton Tuple |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
2 times more (63 ms vs. 25 ms) |
6 times more (5 MB vs. 815 kB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
similar (8 LLVM lines) |
similar (50 ns vs. 50 ns) |
similar (50 ms vs. 29 ms) |
4 times more (4 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. 30 ns) |
3 times more (80 ms vs. 25 ms) |
7 times more (6 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. 30 ns) |
5 times more (146 ms vs. 25 ms) |
16 times more (18 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 (40 ns vs. 600 ns) |
2 times more (268 ms vs. 97 ms) |
3 times more (29 MB vs. 7 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 256 B allocs) |
45 times less (40 ns vs. 2 μs) |
9 times more (868 ms vs. 95 ms) |
11 times more (84 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 (40 ns vs. 40 ns) |
similar (57 ms vs. 30 ms) |
5 times more (6 MB vs. 1 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
similar (8 LLVM lines) |
similar (50 ns vs. 40 ns) |
3 times more (109 ms vs. 29 ms) |
12 times more (22 MB vs. 2 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (20 LLVM lines vs. 2 kB allocs) |
24 times less (50 ns vs. 1 μs) |
2 times more (221 ms vs. 110 ms) |
8 times more (63 MB vs. 7 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (68 LLVM lines vs. 7 kB allocs) |
70 times less (60 ns vs. 4 μs) |
9 times more (1 s vs. 110 ms) |
74 times more (544 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. 30 ns) |
3 times more (78 ms vs. 24 ms) |
6 times more (6 MB vs. 970 kB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
8 |
empty & nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 40 ns) |
5 times more (145 ms vs. 25 ms) |
13 times more (18 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) |
29 times less (40 ns vs. 1 μs) |
2 times more (272 ms vs. 119 ms) |
3 times more (30 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) |
102 times less (40 ns vs. 4 μs) |
7 times more (881 ms vs. 119 ms) |
9 times more (83 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. 40 ns) |
3 times more (78 ms vs. 25 ms) |
6 times more (6 MB vs. 975 kB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
8 |
nonempty singleton Tuples |
similar (optimized out) |
similar (30 ns vs. 30 ns) |
5 times more (146 ms vs. 25 ms) |
13 times more (18 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) |
77 times less (40 ns vs. 3 μs) |
similar (271 ms vs. 141 ms) |
3 times more (30 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) |
252 times less (40 ns vs. 10 μs) |
6 times more (897 ms vs. 142 ms) |
9 times more (85 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 (40 ns vs. 40 ns) |
2 times more (58 ms vs. 28 ms) |
5 times more (6 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 (50 ns vs. 50 ns) |
3 times more (111 ms vs. 31 ms) |
11 times more (23 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) |
147 times less (70 ns vs. 10 μs) |
similar (225 ms vs. 155 ms) |
7 times more (64 MB vs. 9 MB) |
| unrolled_split(isempty, itr) |
(filter(isempty, itr), filter(!isempty, itr)) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (756 LLVM lines vs. 1 MB allocs) |
181 times less (380 ns vs. 69 μs) |
7 times more (1 s vs. 157 ms) |
55 times more (546 MB vs. 10 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 40 ns) |
similar (46 ms vs. 25 ms) |
2 times more (3 MB vs. 1 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 64 B allocs) |
2 times less (40 ns vs. 110 ns) |
similar (49 ms vs. 38 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (8 LLVM lines vs. 80 B allocs) |
3 times less (40 ns vs. 140 ns) |
similar (47 ms vs. 31 ms) |
similar (3 MB vs. 2 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
3 times less (40 ns vs. 130 ns) |
similar (55 ms vs. 40 ms) |
similar (3 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
6 times less (30 ns vs. 180 ns) |
2 times more (95 ms vs. 40 ms) |
2 times more (7 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
12 times less (40 ns vs. 480 ns) |
4 times more (201 ms vs. 44 ms) |
4 times more (15 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
41 times less (40 ns vs. 2 μs) |
17 times more (726 ms vs. 41 ms) |
17 times more (58 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 112 B allocs) |
3 times less (40 ns vs. 150 ns) |
similar (53 ms vs. 34 ms) |
similar (4 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 208 B allocs) |
6 times less (40 ns vs. 270 ns) |
2 times more (76 ms vs. 36 ms) |
2 times more (10 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (20 LLVM lines vs. 592 B allocs) |
20 times less (40 ns vs. 811 ns) |
4 times more (170 ms vs. 36 ms) |
12 times more (43 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (68 LLVM lines vs. 2 kB allocs) |
49 times less (60 ns vs. 3 μs) |
26 times more (922 ms vs. 35 ms) |
136 times more (458 MB vs. 3 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
2 |
empty & nonempty singleton Tuples |
better (optimized out vs. 96 B allocs) |
7 times less (40 ns vs. 310 ns) |
similar (56 ms vs. 57 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
8 |
empty & nonempty singleton Tuples |
better (optimized out vs. 496 B allocs) |
11 times less (40 ns vs. 470 ns) |
similar (100 ms vs. 68 ms) |
similar (7 MB vs. 6 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
32 |
empty & nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
79 times less (40 ns vs. 3 μs) |
3 times more (220 ms vs. 64 ms) |
3 times more (17 MB vs. 6 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
128 |
empty & nonempty singleton Tuples |
better (optimized out vs. 8 kB allocs) |
286 times less (40 ns vs. 11 μs) |
14 times more (925 ms vs. 65 ms) |
16 times more (93 MB vs. 6 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
2 |
nonempty singleton Tuples |
better (optimized out vs. 192 B allocs) |
5 times less (40 ns vs. 230 ns) |
similar (56 ms vs. 69 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
8 |
nonempty singleton Tuples |
better (optimized out vs. 496 B allocs) |
15 times less (40 ns vs. 621 ns) |
similar (100 ms vs. 67 ms) |
similar (7 MB vs. 7 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
32 |
nonempty singleton Tuples |
better (optimized out vs. 2 kB allocs) |
107 times less (30 ns vs. 3 μs) |
3 times more (222 ms vs. 67 ms) |
2 times more (18 MB vs. 7 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
128 |
nonempty singleton Tuples |
better (optimized out vs. 8 kB allocs) |
286 times less (40 ns vs. 11 μs) |
15 times more (1 s vs. 67 ms) |
16 times more (108 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) |
7 times less (40 ns vs. 290 ns) |
similar (53 ms vs. 50 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
8 |
nonempty non-singleton Tuples |
better (20 LLVM lines vs. 2 kB allocs) |
17 times less (50 ns vs. 851 ns) |
similar (81 ms vs. 46 ms) |
2 times more (12 MB vs. 4 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (76 LLVM lines vs. 40 kB allocs) |
98 times less (60 ns vs. 6 μs) |
6 times more (304 ms vs. 47 ms) |
28 times more (124 MB vs. 4 MB) |
| unrolled_flatten(itr) |
Tuple(Iterators.flatten(itr)) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (264 LLVM lines vs. 533 kB allocs) |
117 times less (251 ns vs. 29 μs) |
62 times more (3 s vs. 47 ms) |
343 times more (2 GB vs. 5 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
1 |
empty singleton Tuple |
similar (optimized out) |
similar (40 ns vs. 30 ns) |
similar (51 ms vs. 43 ms) |
2 times more (3 MB vs. 1 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 64 B allocs) |
3 times less (40 ns vs. 120 ns) |
similar (53 ms vs. 68 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (8 LLVM lines vs. 144 B allocs) |
3 times less (40 ns vs. 140 ns) |
similar (47 ms vs. 43 ms) |
similar (4 MB vs. 4 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 96 B allocs) |
3 times less (40 ns vs. 140 ns) |
similar (59 ms vs. 81 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 96 B allocs) |
5 times less (40 ns vs. 210 ns) |
similar (98 ms vs. 82 ms) |
similar (7 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) |
17 times less (30 ns vs. 530 ns) |
2 times more (208 ms vs. 81 ms) |
2 times more (15 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 (40 ns vs. 2 μs) |
9 times more (744 ms vs. 81 ms) |
11 times more (58 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 (40 ns vs. 180 ns) |
similar (54 ms vs. 52 ms) |
similar (4 MB vs. 4 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 240 B allocs) |
7 times less (40 ns vs. 300 ns) |
similar (78 ms vs. 53 ms) |
2 times more (10 MB vs. 5 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (20 LLVM lines vs. 800 B allocs) |
17 times less (50 ns vs. 881 ns) |
3 times more (179 ms vs. 54 ms) |
11 times more (48 MB vs. 4 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (68 LLVM lines vs. 3 kB allocs) |
51 times less (60 ns vs. 3 μs) |
18 times more (978 ms vs. 53 ms) |
121 times more (527 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 (30 ns vs. 240 ns) |
similar (62 ms vs. 96 ms) |
2 times less (4 MB 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) |
139 times less (30 ns vs. 4 μs) |
2 times less (111 ms vs. 268 ms) |
4 times less (7 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) |
696 times less (30 ns vs. 21 μs) |
similar (245 ms vs. 331 ms) |
similar (18 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) |
1679 times less (40 ns vs. 67 μs) |
2 times more (959 ms vs. 331 ms) |
2 times more (94 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) |
10 times less (30 ns vs. 310 ns) |
3 times less (63 ms vs. 190 ms) |
4 times less (4 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) |
79 times less (40 ns vs. 3 μs) |
2 times less (112 ms vs. 249 ms) |
3 times less (7 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) |
463 times less (40 ns vs. 19 μs) |
similar (245 ms vs. 305 ms) |
similar (19 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) |
1658 times less (40 ns vs. 66 μs) |
3 times more (1 s vs. 305 ms) |
4 times more (109 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) |
8 times less (40 ns vs. 320 ns) |
similar (54 ms vs. 68 ms) |
similar (4 MB vs. 6 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
8 |
nonempty non-singleton Tuples |
better (32 LLVM lines vs. 9 kB allocs) |
55 times less (50 ns vs. 3 μs) |
similar (85 ms vs. 112 ms) |
similar (14 MB vs. 7 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (239 LLVM lines vs. 229 kB allocs) |
470 times less (70 ns vs. 33 μs) |
similar (329 ms vs. 179 ms) |
15 times more (147 MB vs. 9 MB) |
| unrolled_flatmap(Iterators.reverse, itr) |
Tuple(Iterators.flatmap(Iterators.reverse, itr)) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (816 LLVM lines vs. 3 MB allocs) |
918 times less (260 ns vs. 239 μs) |
19 times more (4 s vs. 179 ms) |
162 times more (2 GB vs. 12 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
1 |
empty singleton Tuple |
better (optimized out vs. 80 B allocs) |
2 times less (40 ns vs. 110 ns) |
similar (70 ms vs. 88 ms) |
2 times less (7 MB vs. 15 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 80 B allocs) |
2 times less (40 ns vs. 110 ns) |
similar (71 ms vs. 87 ms) |
2 times less (7 MB vs. 15 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (10 LLVM lines vs. 160 B allocs) |
3 times less (40 ns vs. 140 ns) |
similar (72 ms vs. 81 ms) |
2 times less (7 MB vs. 17 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 80 B allocs) |
3 times less (40 ns vs. 140 ns) |
similar (73 ms vs. 91 ms) |
2 times less (8 MB vs. 16 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 80 B allocs) |
22 times less (40 ns vs. 891 ns) |
similar (100 ms vs. 91 ms) |
similar (10 MB vs. 16 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 8 kB allocs) |
439 times less (30 ns vs. 13 μs) |
7 times more (704 ms vs. 91 ms) |
2 times more (46 MB vs. 16 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (9 LLVM lines vs. 352 B allocs) |
5 times less (40 ns vs. 220 ns) |
similar (75 ms vs. 87 ms) |
2 times less (8 MB vs. 16 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (137 LLVM lines vs. 4 kB allocs) |
29 times less (70 ns vs. 2 μs) |
similar (140 ms vs. 87 ms) |
similar (10 MB vs. 16 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (2267 LLVM lines vs. 72 kB allocs) |
39 times less (761 ns vs. 30 μs) |
80 times more (7 s vs. 88 ms) |
3 times more (55 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 (40 ns vs. 240 ns) |
similar (75 ms vs. 114 ms) |
2 times less (8 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) |
66 times less (40 ns vs. 3 μs) |
similar (110 ms vs. 114 ms) |
2 times less (10 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) |
1052 times less (40 ns vs. 42 μs) |
18 times more (2 s vs. 113 ms) |
2 times more (48 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) |
5 times less (40 ns vs. 231 ns) |
similar (75 ms vs. 115 ms) |
2 times less (8 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) |
162 times less (30 ns vs. 5 μs) |
similar (110 ms vs. 164 ms) |
2 times less (10 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) |
2509 times less (30 ns vs. 75 μs) |
7 times more (2 s vs. 270 ms) |
similar (48 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) |
7 times less (50 ns vs. 380 ns) |
similar (77 ms vs. 117 ms) |
2 times less (8 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) |
40 times less (220 ns vs. 9 μs) |
similar (151 ms vs. 189 ms) |
2 times less (10 MB vs. 24 MB) |
| unrolled_product(itr, itr) |
Tuple(Iterators.product(itr, itr)) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (8159 LLVM lines vs. 1 MB allocs) |
34 times less (8 μs vs. 276 μs) |
12 times more (4 s vs. 356 ms) |
similar (56 MB vs. 30 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
1 |
empty singleton Tuple |
better (optimized out vs. 80 B allocs) |
2 times less (40 ns vs. 110 ns) |
similar (74 ms vs. 101 ms) |
similar (9 MB vs. 17 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 80 B allocs) |
2 times less (40 ns vs. 100 ns) |
similar (74 ms vs. 102 ms) |
similar (9 MB vs. 17 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (12 LLVM lines vs. 160 B allocs) |
3 times less (40 ns vs. 140 ns) |
similar (74 ms vs. 94 ms) |
2 times less (9 MB vs. 19 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 80 B allocs) |
4 times less (40 ns vs. 180 ns) |
similar (80 ms vs. 106 ms) |
similar (9 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) |
166 times less (40 ns vs. 7 μs) |
6 times more (646 ms vs. 107 ms) |
2 times more (36 MB vs. 18 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (15 LLVM lines vs. 736 B allocs) |
8 times less (40 ns vs. 340 ns) |
similar (86 ms vs. 106 ms) |
similar (9 MB vs. 18 MB) |
| unrolled_product(itr, itr, itr) |
Tuple(Iterators.product(itr, itr, itr)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (1108 LLVM lines vs. 44 kB allocs) |
31 times less (491 ns vs. 15 μs) |
37 times more (4 s vs. 106 ms) |
2 times more (41 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) |
11 times less (40 ns vs. 451 ns) |
similar (83 ms vs. 126 ms) |
2 times less (9 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) |
603 times less (40 ns vs. 24 μs) |
10 times more (1 s vs. 123 ms) |
similar (37 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) |
15 times less (30 ns vs. 460 ns) |
similar (82 ms vs. 128 ms) |
2 times less (9 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) |
1051 times less (40 ns vs. 42 μs) |
3 times more (1 s vs. 331 ms) |
similar (37 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) |
18 times less (50 ns vs. 901 ns) |
similar (89 ms vs. 146 ms) |
2 times less (9 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 (3 μs vs. 93 μs) |
6 times more (3 s vs. 444 ms) |
similar (42 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) |
3 times less (40 ns vs. 130 ns) |
similar (54 ms vs. 46 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 64 B allocs) |
3 times less (40 ns vs. 140 ns) |
similar (54 ms vs. 48 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (12 LLVM lines vs. 160 B allocs) |
4 times less (40 ns vs. 190 ns) |
similar (49 ms vs. 44 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
4 times less (40 ns vs. 160 ns) |
similar (55 ms vs. 45 ms) |
similar (3 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
8 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
12 times less (30 ns vs. 380 ns) |
similar (55 ms vs. 45 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
43 times less (30 ns vs. 1 μs) |
similar (56 ms vs. 45 ms) |
similar (4 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 64 B allocs) |
121 times less (40 ns vs. 5 μs) |
similar (62 ms vs. 45 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (11 LLVM lines vs. 272 B allocs) |
5 times less (50 ns vs. 280 ns) |
similar (51 ms vs. 46 ms) |
similar (5 MB vs. 5 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (68 LLVM lines vs. 848 B allocs) |
22 times less (50 ns vs. 1 μs) |
similar (55 ms vs. 48 ms) |
similar (7 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
32 |
identical nonempty non-singleton Tuples |
better (260 LLVM lines vs. 3 kB allocs) |
83 times less (70 ns vs. 6 μs) |
similar (79 ms vs. 49 ms) |
2 times more (14 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
128 |
identical nonempty non-singleton Tuples |
better (132 LLVM lines vs. 12 kB allocs) |
255 times less (160 ns vs. 41 μs) |
4 times more (209 ms vs. 48 ms) |
7 times more (42 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) |
4 times less (40 ns vs. 180 ns) |
similar (56 ms vs. 49 ms) |
similar (3 MB 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) |
13 times less (40 ns vs. 520 ns) |
similar (55 ms vs. 49 ms) |
similar (4 MB 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) |
45 times less (40 ns vs. 2 μs) |
similar (56 ms vs. 49 ms) |
similar (4 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) |
181 times less (40 ns vs. 7 μs) |
similar (63 ms vs. 50 ms) |
similar (5 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) |
4 times less (40 ns vs. 190 ns) |
similar (56 ms vs. 48 ms) |
similar (3 MB 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) |
22 times less (40 ns vs. 901 ns) |
similar (54 ms vs. 61 ms) |
similar (4 MB 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) |
118 times less (40 ns vs. 5 μs) |
similar (56 ms vs. 72 ms) |
similar (4 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) |
541 times less (30 ns vs. 16 μs) |
similar (63 ms vs. 71 ms) |
similar (5 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) |
7 times less (40 ns vs. 300 ns) |
similar (51 ms vs. 56 ms) |
similar (5 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) |
31 times less (60 ns vs. 2 μs) |
similar (57 ms vs. 71 ms) |
similar (7 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
32 |
nonempty non-singleton Tuples |
better (233 LLVM lines vs. 119 kB allocs) |
131 times less (180 ns vs. 24 μs) |
similar (99 ms vs. 86 ms) |
2 times more (14 MB vs. 6 MB) |
| unrolled_cycle(itr, Val(3)) |
Tuple(Iterators.cycle(itr, 3)) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (1416 LLVM lines vs. 2 MB allocs) |
328 times less (711 ns vs. 234 μs) |
6 times more (577 ms vs. 87 ms) |
5 times more (42 MB vs. 8 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
1 |
empty singleton Tuple |
better (optimized out vs. 320 B allocs) |
28 times less (30 ns vs. 841 ns) |
similar (47 ms vs. 92 ms) |
5 times less (2 MB vs. 11 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
1 |
nonempty singleton Tuple |
better (optimized out vs. 320 B allocs) |
20 times less (40 ns vs. 821 ns) |
similar (47 ms vs. 92 ms) |
5 times less (2 MB vs. 12 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
1 |
nonempty non-singleton Tuple |
better (8 LLVM lines vs. 400 B allocs) |
24 times less (40 ns vs. 971 ns) |
2 times less (42 ms vs. 95 ms) |
4 times less (3 MB vs. 12 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
2 |
identical nonempty singleton Tuples |
better (optimized out vs. 320 B allocs) |
27 times less (30 ns vs. 811 ns) |
similar (47 ms vs. 94 ms) |
5 times less (2 MB 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) |
40 times less (30 ns vs. 1 μs) |
2 times less (70 ms vs. 151 ms) |
6 times less (3 MB vs. 20 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
32 |
identical nonempty singleton Tuples |
better (optimized out vs. 1 kB allocs) |
49 times less (40 ns vs. 2 μs) |
similar (126 ms vs. 156 ms) |
2 times less (7 MB vs. 20 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
128 |
identical nonempty singleton Tuples |
better (optimized out vs. 3 kB allocs) |
127 times less (40 ns vs. 5 μs) |
2 times more (374 ms vs. 156 ms) |
similar (25 MB vs. 20 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
2 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 496 B allocs) |
23 times less (40 ns vs. 922 ns) |
2 times less (42 ms vs. 97 ms) |
4 times less (3 MB vs. 12 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
8 |
identical nonempty non-singleton Tuples |
better (8 LLVM lines vs. 1 kB allocs) |
35 times less (40 ns vs. 1 μs) |
3 times less (54 ms vs. 170 ms) |
4 times less (5 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 (20 LLVM lines vs. 4 kB allocs) |
69 times less (40 ns vs. 3 μs) |
2 times less (73 ms vs. 170 ms) |
similar (14 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 (68 LLVM lines vs. 14 kB allocs) |
135 times less (60 ns vs. 8 μs) |
similar (268 ms vs. 186 ms) |
4 times more (90 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) |
23 times less (40 ns vs. 941 ns) |
2 times less (47 ms vs. 103 ms) |
4 times less (2 MB 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) |
46 times less (30 ns vs. 1 μs) |
2 times less (72 ms vs. 211 ms) |
9 times less (3 MB 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) |
517 times less (30 ns vs. 16 μs) |
2 times less (127 ms vs. 264 ms) |
5 times less (7 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) |
1714 times less (30 ns vs. 51 μs) |
similar (383 ms vs. 353 ms) |
similar (25 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) |
23 times less (40 ns vs. 931 ns) |
2 times less (47 ms vs. 103 ms) |
4 times less (2 MB 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) |
43 times less (40 ns vs. 2 μs) |
3 times less (69 ms vs. 224 ms) |
8 times less (3 MB 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) |
389 times less (40 ns vs. 16 μs) |
2 times less (127 ms vs. 361 ms) |
6 times less (7 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) |
1268 times less (40 ns vs. 51 μs) |
similar (385 ms vs. 363 ms) |
similar (25 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) |
26 times less (40 ns vs. 1 μs) |
2 times less (43 ms vs. 112 ms) |
3 times less (3 MB 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) |
42 times less (50 ns vs. 2 μs) |
4 times less (55 ms vs. 245 ms) |
6 times less (5 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) |
183 times less (70 ns vs. 13 μs) |
4 times less (79 ms vs. 329 ms) |
2 times less (14 MB vs. 36 MB) |
| unrolled_partition(itr, Val(3)) |
Tuple(Iterators.map(Tuple, Iterators.partition(itr, 3))) |
Tuple |
128 |
nonempty non-singleton Tuples |
better (548 LLVM lines vs. 564 kB allocs) |
1162 times less (240 ns vs. 279 μs) |
similar (336 ms vs. 489 ms) |
2 times more (90 MB vs. 36 MB) |