You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by al...@apache.org on 2020/02/24 18:14:55 UTC
[incubator-datasketches-characterization] branch fi_merge_time
created (now a574853)
This is an automated email from the ASF dual-hosted git repository.
alsay pushed a change to branch fi_merge_time
in repository https://gitbox.apache.org/repos/asf/incubator-datasketches-characterization.git.
at a574853 frequent items merge time
This branch includes the following new commits:
new a574853 frequent items merge time
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org
[incubator-datasketches-characterization] 01/01: frequent items
merge time
Posted by al...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
alsay pushed a commit to branch fi_merge_time
in repository https://gitbox.apache.org/repos/asf/incubator-datasketches-characterization.git
commit a574853f0f3698f39b414dfc2e7de87a6bc33aaf
Author: AlexanderSaydakov <Al...@users.noreply.github.com>
AuthorDate: Mon Feb 24 10:14:42 2020 -0800
frequent items merge time
---
cpp/matlab/frequent_items_merge_time.m | 20 ++
..._merge_timing_string_lgk10_zipf11_long_copy.tsv | 319 +++++++++++++++++++++
..._merge_timing_string_lgk10_zipf11_long_move.tsv | 319 +++++++++++++++++++++
...merge_timing_string_lgk10_zipf11_short_copy.tsv | 319 +++++++++++++++++++++
...merge_timing_string_lgk10_zipf11_short_move.tsv | 319 +++++++++++++++++++++
cpp/src/frequent_items_merge_timing_profile.cpp | 115 ++++++++
cpp/src/frequent_items_merge_timing_profile.hpp | 34 +++
cpp/src/main.cpp | 2 +
8 files changed, 1447 insertions(+)
diff --git a/cpp/matlab/frequent_items_merge_time.m b/cpp/matlab/frequent_items_merge_time.m
new file mode 100644
index 0000000..6e000aa
--- /dev/null
+++ b/cpp/matlab/frequent_items_merge_time.m
@@ -0,0 +1,20 @@
+clf;
+k=1024;
+
+fi_str_cp_sh=load('../results/frequent_items_merge_timing_string_lgk10_zipf11_short_copy.tsv');
+fi_str_mv_sh=load('../results/frequent_items_merge_timing_string_lgk10_zipf11_short_move.tsv');
+fi_str_cp_ln=load('../results/frequent_items_merge_timing_string_lgk10_zipf11_long_copy.tsv');
+fi_str_mv_ln=load('../results/frequent_items_merge_timing_string_lgk10_zipf11_long_move.tsv');
+
+hold on;
+semilogx(fi_str_cp_sh(:,1), fi_str_cp_sh(:,5), 'linewidth', 2);
+semilogx(fi_str_mv_sh(:,1), fi_str_mv_sh(:,5), 'linewidth', 2);
+semilogx(fi_str_cp_ln(:,1), fi_str_cp_ln(:,5), 'linewidth', 2);
+semilogx(fi_str_mv_ln(:,1), fi_str_mv_ln(:,5), 'linewidth', 2);
+
+set(gca, 'fontsize', 16);
+title 'Merge time of frequent items sketch<std::string>(10)'
+xlabel 'stream size'
+ylabel 'time, nanoseconds'
+legend('zipf 1.1 copy short strings', 'zipf 1.1 move short strings', 'zipf 1.1 copy long strings', 'zipf 1.1 move long strings');
+grid minor on
diff --git a/cpp/results/frequent_items_merge_timing_string_lgk10_zipf11_long_copy.tsv b/cpp/results/frequent_items_merge_timing_string_lgk10_zipf11_long_copy.tsv
new file mode 100644
index 0000000..66b08b2
--- /dev/null
+++ b/cpp/results/frequent_items_merge_timing_string_lgk10_zipf11_long_copy.tsv
@@ -0,0 +1,319 @@
+1 16384 14273.6 110.168 256.104 0 1
+2 12120 14241.7 106.518 379.95 0 1.96469
+3 10161 14317.5 104.845 497.097 0 2.90139
+4 8967 14380.4 101.623 605.442 0 3.80908
+5 8138 14446.2 100.713 736.299 0 4.69661
+6 7517 14463.5 99.0643 868.565 0 5.53891
+7 7030 14059.3 96.5657 1462.59 0 6.38549
+8 6633 14300.6 100.237 1769.18 0 7.22795
+9 6302 14381.6 98.4167 1984.77 0 8.02253
+10 6020 14475.7 97.6744 2160.96 0 8.82442
+11 5776 14345.7 97.3621 2313.19 0 9.60319
+12 5561 14485.9 96.985 2475.45 0 10.3726
+13 5371 14590 97.7328 2800.97 0 11.1434
+14 5201 14477.6 96.3688 3076.14 0 11.896
+15 5047 14646.1 97.2855 3409.75 0 12.6037
+16 4907 14464.2 96.9406 3673.53 0 13.3621
+17 4780 14498.1 96.1359 3886.61 0 14.0477
+18 4662 14540.5 95.1428 4074.43 0 14.7926
+19 4554 14738 98.6409 4318.62 0 15.4877
+20 4454 14880.1 96.8455 4469.91 0 16.2146
+21 4360 14601.1 96.2211 4572.02 0 16.8778
+22 4273 14640.8 96.7066 4735.31 0 17.5844
+23 4191 15073 99.167 4959.91 0 18.24
+24 4114 14907.6 98.0899 5081.67 0 18.9482
+25 4042 14746.4 97.7635 5187.04 0 19.622
+26 3973 15361.9 101.715 5497.36 0 20.2698
+27 3909 16987.7 106.298 6008.7 0 20.935
+28 3847 14681.1 96.8287 5664.15 0 21.6272
+29 3789 16148.3 109.437 6534.18 0 22.2655
+31 3681 15308.1 101.016 6700.9 0 23.5621
+32 3630 15340.2 101.386 6992.84 0 24.2915
+33 3582 15013.7 98.8275 7179.23 0 24.9442
+35 3492 16571.9 108.223 8145.19 0 26.0819
+36 3449 15685.4 103.299 8014.79 0 26.6959
+38 3369 15261.5 98.4206 8157.02 0 27.992
+40 3295 15126.3 96.2898 8259.48 0 29.2662
+41 3259 15082.5 96.7602 8395.83 0 29.8607
+43 3193 15770.4 100.576 8999.06 0 31.2152
+45 3130 15976.7 100.575 9330.03 0 32.3518
+47 3071 16411.9 105.441 9807.55 0 33.4507
+49 3016 16447.6 105.336 10029.8 0 34.7709
+52 2939 16130 101.899 10140.5 0 36.5713
+54 2892 16960.2 107.538 10758.6 0 37.6978
+56 2846 15812 99.099 10389.7 0 38.8823
+59 2782 16202 101.652 10990.3 0 40.5557
+61 2742 16774.3 104.489 11664.8 0 41.7381
+64 2686 16473.6 101.737 12022.7 0 43.5953
+67 2633 19693.5 118.57 14143.2 0 45.3217
+70 2583 19912.9 125.115 15500.2 0 46.8753
+73 2536 17509.9 105.586 14082 0 48.5059
+76 2492 17379.2 103.267 14557 0 50.2183
+79 2451 17200.3 99.8353 14899.2 0 51.8409
+83 2399 17716.5 101.076 15642.8 0 54.0092
+87 2350 19465.5 110.115 17305.1 0 55.9987
+91 2304 18415.4 103.26 16833.3 0 58.25
+95 2262 18267.9 100.596 16912.5 0 60.2732
+99 2222 18798.8 102.024 17373.5 0 62.5986
+103 2184 18891 101.053 17500 0 64.1809
+108 2139 19157.1 101.328 18078.5 0 67.1459
+112 2105 19893.6 102.655 18686.9 0 69.162
+117 2066 19733.3 100.367 18871.7 0 71.6544
+123 2021 20213.8 100.739 19430 0 74.809
+128 1987 20644.7 102.856 20264.2 0 77.1278
+134 1948 21219.7 103.945 21060.1 0 80.0642
+140 1911 22191 105.521 21949.8 0 83.1737
+146 1876 22235.1 104.708 22302.2 0 85.7564
+152 1844 23547.2 109.548 23514.6 0 88.6502
+159 1808 23003.9 104.981 24231.7 0 91.9817
+166 1774 23576.7 105.045 25655 0 95.5192
+173 1743 24676.4 108.139 27535.9 0 98.6064
+181 1709 27728.5 118.204 30568.8 0 102.167
+189 1677 27559.9 115.216 31497.3 0 106.249
+197 1647 27079.5 125.751 31187 0 109.673
+206 1615 26866.9 142.676 31697.2 0 113.596
+215 1586 28074.4 164.231 32844.3 0 117.666
+225 1555 28212.9 178.732 33619.3 0 121.761
+235 1525 28347.5 183.927 34321.3 0 126.448
+245 1498 29076.1 194.264 35174.2 0 130.92
+256 1470 30452.4 202.267 37632 0 135.514
+267 1443 32390.9 209.053 39316 0 140.31
+279 1416 29590.4 190.648 37353.1 0 145.28
+292 1388 35166.4 217.888 43166.4 0 150.713
+304 1364 33276.4 203.943 42261.7 0 155.405
+318 1337 33519.1 198.932 42946.9 0 161.455
+332 1313 36165.3 203.388 45659.6 0 167.03
+347 1288 45618 235.474 54534.2 0 172.953
+362 1264 37945.4 195.44 48017.4 0 179.089
+378 1240 44916.9 212.666 55748.4 0 185.58
+395 1217 61493.8 294.823 75197.2 0 191.909
+412 1195 47764 233.873 65103.8 0 198.527
+431 1172 41804.6 216.694 61157.8 0 205.469
+450 1150 45819.1 237.016 67990.4 0 212.563
+470 1128 38410.5 217.461 62936.2 0 219.355
+490 1108 39546.9 223.366 65231 0 227.497
+512 1087 41992.6 238.341 68910.8 0 235.799
+535 1067 43347.7 245.412 72056.2 0 243.324
+558 1047 42444.1 236.462 72973.3 0 251.683
+583 1027 47337.9 246.818 78930.9 0 261.217
+609 1008 43027.8 228.193 75585.3 0 269.468
+636 989 45467.1 232.628 78859.5 0 278.534
+664 971 45068 219.126 77797.1 0 288.84
+693 953 44184.7 206.269 76834.2 0 298.751
+724 935 49681.3 216.843 83048.1 0 308.523
+756 918 50385.6 210.859 83777.8 0 319.413
+790 900 55430 213.786 89230 0 330.514
+825 883 52225.4 197.721 85782.6 0 341.418
+861 867 54027.7 197.478 89352.9 0 353.547
+899 851 55953 197.076 93235 0 364.813
+939 835 56752.1 195.415 100765 0 377.792
+981 819 57941.4 198.736 110380 0 390.19
+1024 804 58145.5 199.148 117782 0 404.284
+1069 789 57752.9 202.015 122554 0 417.575
+1117 774 58598.2 205.313 126252 0 431.239
+1166 760 58589.5 204.271 130408 0 445.551
+1218 746 61457.1 206.068 133895 0 460.594
+1272 732 63008.2 204.458 138848 0 476.141
+1328 718 72281.3 216.765 152121 0 492.309
+1387 705 76561.7 216.633 156055 0 508.382
+1448 692 70708.1 193.311 149653 0 524.803
+1512 679 83911.6 210.935 166583 0 543.016
+1579 666 82261.3 198.401 162616 0 559.659
+1649 654 91192.7 203.217 173096 0 580.2
+1722 641 88697.3 187.921 170340 0 598.437
+1798 629 87376.8 179.457 170272 0 617.445
+1878 618 88344.7 174.652 171010 0 639.068
+1961 606 91594.1 173.31 175521 0 660.886
+2048 595 93995 173.015 181101 0 680.829
+2139 584 100586 181.312 193329 0 702.553
+2233 573 107894 202.457 219101 0.0122164 717.567
+2332 562 116973 211.423 253162 0.181495 646.671
+2435 552 104232 200.428 279187 0.606884 432.678
+2543 541 87245.8 183.048 287577 0.946396 274.556
+2656 531 87114.9 181.312 297141 0.99435 279.817
+2774 521 88468.3 180.597 303313 1 311.668
+2896 512 92654.3 175.771 308846 1 347.307
+3025 502 98649.4 176.129 317353 1 382.307
+3158 493 102923 172.815 324286 1 419.55
+3298 483 110319 169.212 332035 1 457.058
+3444 474 122165 172.203 342620 1 495.295
+3597 465 131325 170.188 352606 1 535.357
+3756 457 137823 167.448 359392 1 574.035
+3922 448 153775 181.183 385388 1 615.167
+4096 440 146143 166.659 379284 1 655.739
+4277 432 144662 161.846 386685 1.00231 696.266
+4467 424 158778 163.63 406649 1.12028 676.927
+4664 416 170361 164.118 457238 1.80288 367.44
+4871 408 168564 160.931 470380 1.9951 322.36
+5087 400 185335 174.569 499090 2 377.882
+5312 393 163481 169.411 499333 2 436.41
+5547 385 149283 170.571 512675 2 497.595
+5793 378 140437 174.171 516471 2 558.183
+6049 371 139261 171.391 525102 2 618.286
+6317 364 144753 167.581 541591 2 678.945
+6597 357 148350 163.605 555429 2.22129 629.627
+6889 351 161641 160.3 613342 2.91738 343.105
+7194 344 206006 185.718 714323 3 383.047
+7512 338 204237 170.713 689482 3 464.006
+7845 331 260033 193.149 814039 3 549.369
+8192 325 248449 177.319 765578 3 628.329
+8555 319 262614 177.853 784561 3.05329 686.972
+8933 313 295882 177.192 875278 3.80511 396.259
+9329 307 289687 170.102 856958 4 400.046
+9742 302 312695 162.8 879798 4 499.781
+10173 296 290730 153.355 818128 4 599.669
+10624 290 312569 151.985 844010 4.04483 683.99
+11094 285 328632 145.317 900628 4.87018 382.442
+11585 280 345129 151.11 938986 5 446.729
+12098 274 335084 151.467 968223 5 566.723
+12634 269 319903 164.529 1.03535e+06 5.0223 677.082
+13193 264 270765 159.678 1.10067e+06 5.86364 396.178
+13777 259 252633 154.947 1.14293e+06 6 478.641
+14387 255 251267 155.714 1.1718e+06 6 624.902
+15024 250 266144 153.544 1.23105e+06 6.424 553
+15689 245 284849 155.068 1.29598e+06 7 437.951
+16384 241 304203 153.597 1.32997e+06 7 603.203
+17109 236 334110 154.45 1.40992e+06 7.51271 521.246
+17867 232 357228 158.09 1.46036e+06 8 460.621
+18658 227 401612 154.386 1.51283e+06 8.00881 649.233
+19484 223 418359 161.257 1.59087e+06 8.92825 388.345
+20347 219 444767 152.945 1.61903e+06 9 562.904
+21247 215 513986 171.048 1.77137e+06 9.44651 547.312
+22188 211 545299 160.858 1.80074e+06 10 511.166
+23170 207 732952 181.808 2.16599e+06 10.2512 612.362
+24196 203 718202 172.934 2.15177e+06 11 501.626
+25268 199 768769 170.368 2.23776e+06 11.3417 586.08
+26386 195 838472 176.263 2.40437e+06 12 538.097
+27554 192 769495 159.342 2.21248e+06 12.6458 480.599
+28774 188 797356 175.585 2.29297e+06 13 617.218
+30048 185 723951 171.13 2.42481e+06 13.9838 425.697
+31379 181 636768 175.437 2.64122e+06 14.2873 589.768
+32768 178 518275 170.003 2.64979e+06 15 585.618
+34219 174 554713 170.192 2.95578e+06 15.9885 447.874
+35734 171 544386 160.759 2.91002e+06 16.7018 465.333
+37316 168 638071 173.684 3.12218e+06 17.0952 642.542
+38968 165 637115 167.637 3.17922e+06 18 587.327
+40693 162 684852 166.929 3.2751e+06 19 522.698
+42495 159 907528 172.444 3.94129e+06 20 457.428
+44376 156 879115 168.841 3.85497e+06 20.9103 458.712
+46341 153 1.00429e+06 179.249 4.19858e+06 21.8889 447.013
+48393 150 1.14372e+06 176.233 4.45819e+06 22.8933 442.24
+50535 147 1.13573e+06 172.874 4.44873e+06 23.8912 467.497
+52773 144 1.08865e+06 162.549 4.22077e+06 24.9861 490.778
+55109 142 1.38936e+06 179.826 4.90989e+06 26.007 530.099
+57549 139 1.50729e+06 185.985 5.13364e+06 27.0288 611.158
+60097 136 1.38297e+06 170.327 4.87306e+06 28.3456 569.838
+62757 134 1.96634e+06 200.814 6.04443e+06 29.8134 475.784
+65536 131 1.70738e+06 160.988 5.54332e+06 31.0305 566.198
+68438 129 1.70885e+06 158.106 5.43417e+06 32.4729 540.24
+71468 127 1.71609e+06 166.573 5.32801e+06 34.0079 518.165
+74632 124 1.69194e+06 177.171 4.79616e+06 35.1532 612.25
+77936 122 963803 185.728 2.7434e+06 36.3689 582.582
+81386 120 373775 181.762 1.40218e+06 38.6 559.65
+84990 117 343889 181.091 1.47197e+06 40.1453 587.752
+88752 115 357609 167.995 1.6537e+06 41.4783 602.791
+92682 113 422053 169.585 1.95956e+06 43.0973 581.354
+96785 111 524649 170.996 2.31632e+06 44.7477 577.955
+101070 109 647477 164.497 2.6387e+06 46.8716 532.092
+105545 107 703093 155.867 2.85538e+06 49.0187 567.364
+110218 105 984410 165.265 3.5183e+06 51.2667 592.6
+115098 103 1.01058e+06 158.147 3.70189e+06 53.7961 549.951
+120194 101 1.21794e+06 153.061 4.06572e+06 56.2277 582.406
+125515 99 1.46934e+06 167.74 4.65077e+06 58.9798 525.384
+131072 97 1.49444e+06 156.241 4.65548e+06 61.6289 557.278
+136875 95 1.85428e+06 168.671 5.18955e+06 64.5368 546.232
+142935 93 1.67337e+06 158.33 4.59218e+06 67.2796 573.312
+149263 92 748804 170.791 2.18334e+06 71.3913 592.87
+155872 90 488167 187.439 1.81937e+06 75.1778 570.467
+162773 88 682409 183.817 2.47628e+06 77.8523 567.409
+169979 87 761425 163.383 2.72054e+06 80.5862 554.276
+177505 85 876353 160.518 3.18598e+06 83.7647 568.835
+185364 83 1.18827e+06 166.978 3.8474e+06 87.1446 564.47
+193571 82 1.44049e+06 161.031 4.34061e+06 90.9268 596.683
+202141 80 1.79682e+06 164.724 4.91528e+06 95.35 559.5
+211090 79 1.93841e+06 183.878 4.72325e+06 99.7722 603.316
+220436 77 656818 180.289 1.99227e+06 106.455 534.312
+230195 76 616671 170.039 2.13559e+06 110.868 562.895
+240387 74 897135 166.884 2.96146e+06 114.689 574.162
+251030 73 1.22842e+06 159.007 3.70888e+06 119.082 586.301
+262144 72 1.56515e+06 162.251 4.40085e+06 124.014 557.222
+273750 70 1.99706e+06 166.772 5.07887e+06 129.6 574.386
+285870 69 924174 177.243 2.45649e+06 137.768 546.957
+298527 68 1.02554e+06 209.767 3.04528e+06 143.912 588.324
+311744 66 1.22603e+06 177.34 3.55979e+06 149.258 565.939
+325546 65 1.70815e+06 170.755 4.50586e+06 154.892 562.338
+339959 64 2.46453e+06 183.999 5.69739e+06 161.516 575.953
+355010 63 848302 180.87 2.1619e+06 171.413 570.333
+370728 62 1.06656e+06 184.308 3.12624e+06 178.581 559.452
+387141 60 1.75853e+06 213.282 4.72453e+06 185.233 570.117
+404281 59 2.02649e+06 162.665 5.22353e+06 192.61 576.881
+422180 58 830483 165.157 2.20531e+06 204.069 548.81
+440872 57 1.2206e+06 175.745 3.29191e+06 212.439 563.456
+460391 56 1.79538e+06 169.095 4.7188e+06 220.375 538.946
+480774 55 1.8844e+06 191.292 4.19518e+06 231.455 580.164
+502060 54 886093 165.15 2.69124e+06 242.463 537.815
+524288 53 1.89466e+06 183.481 4.76713e+06 251.34 571.698
+547500 52 1.56873e+06 166.106 3.61948e+06 263.846 568.346
+571740 51 1.1842e+06 183.797 3.15412e+06 275.961 560.686
+597053 50 2.2124e+06 190.707 5.30462e+06 286.58 548.66
+623487 49 988878 180.428 2.49378e+06 301.51 559.224
+651091 48 1.51021e+06 164.582 3.97058e+06 313.438 584.229
+679917 47 1.72468e+06 184.408 3.93596e+06 328.319 558.936
+710020 46 1.51139e+06 192.478 4.02602e+06 342.696 556.783
+741455 45 2.14522e+06 186.373 4.65767e+06 357.467 587.911
+774282 45 1.52264e+06 202.844 3.82911e+06 374.289 519.578
+808563 44 1.84493e+06 176.82 4.21314e+06 390.318 579.409
+844361 43 1.42253e+06 166.386 3.72567e+06 407.767 561.86
+881744 42 1.23948e+06 172.683 2.95471e+06 426.857 540.833
+920782 41 1.87773e+06 180.333 4.46124e+06 444.415 574.463
+961548 41 1.06066e+06 173.103 2.72995e+06 465.854 561.098
+1004120 40 1.71918e+06 160.77 3.92085e+06 485.3 558.2
+1048576 39 1.65262e+06 171.199 4.21631e+06 506.795 541.974
+1095000 38 1.22068e+06 191.152 3.17045e+06 530.763 539.211
+1143480 38 1.50008e+06 185.771 3.46155e+06 554.368 567.395
+1194106 37 1.95143e+06 172.365 4.68481e+06 576.838 587.162
+1246974 36 1.83717e+06 174.91 4.51583e+06 603.583 542.306
+1302182 35 1.30326e+06 159.659 3.36511e+06 631.086 579.371
+1359835 35 1.21691e+06 170.646 3.10066e+06 659.514 558.857
+1420040 34 1.08565e+06 167.665 2.72841e+06 689.088 537.735
+1482910 33 1.18327e+06 172.868 3.01852e+06 719.303 585.212
+1548564 33 1.16267e+06 173.22 2.733e+06 752.303 538.758
+1617125 32 1.246e+06 173.591 3.08603e+06 785.344 558.125
+1688722 32 1.36322e+06 184.928 3.35278e+06 819.875 563.188
+1763488 31 1.49277e+06 170.61 3.7889e+06 855.839 586.71
+1841564 30 1.7208e+06 161.821 4.16627e+06 893.4 556.633
+1923097 30 1.54327e+06 156.017 3.6395e+06 934.333 582
+2008240 29 1.22279e+06 166.361 3.01303e+06 976.586 576
+2097152 29 1.79228e+06 171.698 4.17845e+06 1019 510.828
+2190001 28 1.54839e+06 167.74 3.44107e+06 1065.36 511.107
+2286960 28 1.41275e+06 158.787 3.56129e+06 1111.5 592.393
+2388213 27 1.33893e+06 149.79 3.17889e+06 1161.93 600.667
+2493948 27 1.66867e+06 159.015 4.0463e+06 1213.11 515.148
+2604365 26 1.35688e+06 169.293 3.31785e+06 1267.65 575.462
+2719670 26 1.37304e+06 160.459 3.0755e+06 1323.96 564.538
+2840080 25 1.62848e+06 170.939 3.70164e+06 1382.44 570.96
+2965821 25 2.09028e+06 180.627 4.48352e+06 1443.6 581.92
+3097129 24 2.17188e+06 175.859 4.47854e+06 1507.92 529.625
+3234251 24 1.5055e+06 152.757 3.40196e+06 1575.88 525.958
+3377443 23 1.40626e+06 166.785 3.38339e+06 1645.43 566.217
+3526975 23 1.32291e+06 148.346 3.30117e+06 1718.78 572.435
+3683128 22 1.735e+06 158.843 3.90341e+06 1795.14 556.682
+3846194 22 1.31282e+06 153.429 3.23041e+06 1876.18 540.545
+4016479 22 1.42968e+06 147.663 3.32477e+06 1958.86 553.364
+4194304 21 1.63186e+06 149.884 3.81048e+06 2045.52 549.952
+4380002 21 1.44286e+06 153.908 3.53095e+06 2137.14 510.952
+4573921 20 1.4913e+06 153.732 3.4708e+06 2232.1 552.35
+4776426 20 1.51755e+06 152.018 3.7196e+06 2330.75 549.85
+4987896 20 2.37665e+06 154.516 3.93775e+06 2434.15 554.8
+5208729 19 1.32089e+06 150.837 3.15526e+06 2542.84 557
+5439339 19 1.54853e+06 150.765 3.64337e+06 2655.58 568.421
+5680159 18 1.44972e+06 152.633 3.39994e+06 2773.39 597
+5931642 18 1.34539e+06 149.141 3.24294e+06 2896.67 621.667
+6194258 18 1.32161e+06 156.283 3.18217e+06 3026.89 548.556
+6468501 17 1.41765e+06 149.199 3.52829e+06 3160.76 559.471
+6754886 17 1.55153e+06 150.633 3.50588e+06 3300.53 581.765
+7053950 17 1.36912e+06 148.382 3.26494e+06 3447.53 623.294
+7366255 16 1.36225e+06 148.252 3.26956e+06 3600.88 560.75
+7692387 16 1.42106e+06 144.001 3.45825e+06 3760.06 610.625
+8032959 16 1.76062e+06 156.274 3.849e+06 3927.44 525.438
+8388608 16 1.71262e+06 162.447 3.94312e+06 4102 545.375
diff --git a/cpp/results/frequent_items_merge_timing_string_lgk10_zipf11_long_move.tsv b/cpp/results/frequent_items_merge_timing_string_lgk10_zipf11_long_move.tsv
new file mode 100644
index 0000000..01e470e
--- /dev/null
+++ b/cpp/results/frequent_items_merge_timing_string_lgk10_zipf11_long_move.tsv
@@ -0,0 +1,319 @@
+1 16384 15310.6 102.966 168.396 0 1
+2 12120 14159.6 101.361 204.125 0 1.9651
+3 10161 14239.9 105.239 256.766 0 2.90208
+4 8967 14066.2 99.3365 310.026 0 3.80841
+5 8138 14051.4 97.2229 374.171 0 4.70435
+6 7517 14109.6 95.8716 455.634 0 5.55833
+7 7030 14241.5 99.8984 899.289 0 6.38279
+8 6633 14241.1 97.2034 1154.38 0 7.22358
+9 6302 14293.6 96.1247 1294.51 0 8.04284
+10 6020 14378.4 96.5615 1388.37 0 8.80249
+11 5776 14320.6 95.7095 1472.47 0 9.61998
+12 5561 14269 95.0818 1552.06 0 10.3285
+13 5371 14623 96.0858 1799.29 0 11.1594
+14 5201 14365.1 96.3551 2018.65 0 11.9041
+15 5047 14342.6 96.7704 2285.91 0 12.6527
+16 4907 14336.1 96.9406 2486.04 0 13.3436
+17 4780 14401.7 97.1942 2683.89 0 14.1042
+18 4662 14395.8 96.7038 2821.32 0 14.7982
+19 4554 14586.3 97.0922 2946.86 0 15.4752
+20 4454 14763.4 98.0692 3082.17 0 16.1904
+21 4360 14815.6 98.9734 3181.88 0 16.8807
+22 4273 14870.1 99.6 3291.36 0 17.6422
+23 4191 14923.9 99.7583 3393.46 0 18.1801
+24 4114 14611.8 97.4822 3407.39 0 18.9302
+25 4042 14682.6 97.6843 3491.34 0 19.6185
+26 3973 14610.4 95.9941 3558.27 0 20.3554
+27 3909 14701.7 96.3873 3687.64 0 20.9698
+28 3847 14590.6 96.0489 3808.16 0 21.5513
+29 3789 14604.4 96.741 4024.54 0 22.2906
+31 3681 14603.1 96.0819 4431.68 0 23.5911
+32 3630 14677.4 96.1777 4682.09 0 24.2113
+33 3582 14571.7 95.3167 4864.04 0 24.8878
+35 3492 14724.5 96.5881 5223.08 0 26.1429
+36 3449 14863.7 97.1618 5415.48 0 26.7596
+38 3369 14867.6 96.5225 5620.07 0 28.0748
+40 3295 14924.1 96.9575 5817.6 0 29.2944
+41 3259 14885.5 97.2841 5882.48 0 29.9257
+43 3193 14894.5 96.8252 6004.38 0 31.1118
+45 3130 15033.2 97.1033 6134.82 0 32.3006
+47 3071 15201.9 96.8774 6307.07 0 33.5161
+49 3016 16324.6 104.578 6830.24 0 34.7702
+52 2939 16044.6 103.855 7012.25 0 36.4913
+54 2892 15174.3 98.695 6804.98 0 37.6511
+56 2846 15355.6 98.2457 7004.92 0 38.9086
+59 2782 15537.4 99.4468 7289 0 40.541
+61 2742 15627.3 99.2814 7472.28 0 41.663
+64 2686 15432.6 99.0204 7759.49 0 43.4393
+67 2633 15654.4 99.2058 8196.35 0 45.0843
+70 2583 15919.9 100.901 8765.39 0 46.7925
+73 2536 16174.7 101.038 9401.42 0 48.3498
+76 2492 16861.6 104.139 10038.1 0 50.1569
+79 2451 16649.5 102.846 10350.1 0 51.7515
+83 2399 18341.4 108.73 11517.7 0 54.11
+87 2350 18100.9 108.237 11700.4 0 56.0021
+91 2304 16993.5 102.726 11385.4 0 58.2361
+95 2262 17684.4 104.435 11912.9 0 60.2538
+99 2222 17730 103.283 11962.6 0 62.4716
+103 2184 17740.4 104.631 12239 0 64.3723
+108 2139 18062.6 103.415 12407.7 0 67.1323
+112 2105 18643.7 106.507 12876.5 0 68.8732
+117 2066 18376.6 104.12 12814.6 0 71.5755
+123 2021 18352.8 103.217 13099.5 0 74.6274
+128 1987 18551.1 103.458 13356.3 0 77.1037
+134 1948 18602.2 103.78 13664.8 0 80.0303
+140 1911 19215.1 106.13 14273.2 0 83.0387
+146 1876 19419 105.16 14605 0 85.9472
+152 1844 19649.7 105.952 15216.4 0 88.8379
+159 1808 19983.4 106.445 16216.8 0 92.0808
+166 1774 20249.7 108.631 17270.6 0 95.4848
+173 1743 20497.4 109.395 18383.2 0 98.6139
+181 1709 20578.1 108.606 19039.2 0 102.142
+189 1677 21104.4 110.076 19922.5 0 106.062
+197 1647 21916.2 123.763 20777.2 0 109.574
+206 1615 22602.5 142.141 21497.8 0 113.562
+215 1586 23114.8 156.876 22018.9 0 117.836
+225 1555 23535.7 170.398 22595.5 0 122.064
+235 1525 23724.6 174.848 22967.9 0 126.714
+245 1498 24449.9 183.058 23783 0 130.829
+256 1470 25328.6 189.772 24715 0 135.867
+267 1443 25271 189.54 24985.4 0 140.186
+279 1416 26822.7 197.178 26198.4 0 144.987
+292 1388 26401.3 191.194 26319.9 0 150.501
+304 1364 26412.8 188.166 26707.5 0 155.672
+318 1337 27380.7 188.724 27642.5 0 161.462
+332 1313 27280.3 183.879 28051.8 0 167.176
+347 1288 27957.3 181.934 29035.7 0 172.831
+362 1264 28756.3 180.911 30051.4 0 178.864
+378 1240 29059.7 177.993 31621.8 0 185.364
+395 1217 29647.5 181.174 34299.1 0 191.397
+412 1195 30559 188.441 37698.7 0 198.261
+431 1172 29795.2 192.118 39639.9 0 205.54
+450 1150 29628.7 196.808 40911.3 0 212.792
+470 1128 29645.4 201.888 42234.9 0 220.251
+490 1108 29527.1 205.203 43154.3 0 227.563
+512 1087 31031.3 218.317 45988 0 235.476
+535 1067 32291.5 222.868 48068.4 0 243.37
+558 1047 29276 205.982 46114.6 0 251.071
+583 1027 30659.2 211.784 48907.5 0 260.426
+609 1008 38581.3 247.579 58273.8 0 269.65
+636 989 30930.2 201.447 50264.9 0 278.313
+664 971 32987.6 203.597 52479.9 0 288.676
+693 953 34273.9 202.27 53899.3 0 298.655
+724 935 34567.9 194.505 54266.3 0 309.092
+756 918 37857.3 200.704 57922.7 0 319.757
+790 900 36414.4 186.121 56562.2 0 330.01
+825 883 37977.3 185.596 58044.2 0 340.948
+861 867 38784.3 183.968 60139.6 0 353.383
+899 851 40468.9 184.837 64126.9 0 365.013
+939 835 40701.8 186.812 68568.9 0 376.861
+981 819 41300.4 190.889 77188 0 390.792
+1024 804 41557.2 194.125 82699 0 404.068
+1069 789 41887.2 195.851 85447.4 0 417.36
+1117 774 42316.5 199.14 87510.3 0 431.258
+1166 760 43111.8 199.219 90357.9 0 446.667
+1218 746 44193 196.776 92474.5 0 460.101
+1272 732 45427.6 194.236 94413.9 0 476.833
+1328 718 48403.9 196.343 98628.1 0 492.001
+1387 705 49190.1 189.69 99649.6 0 507.901
+1448 692 56177.7 198.866 107835 0 524.957
+1512 679 52680.4 183.794 104224 0 543.467
+1579 666 55036 183.056 106865 0 560.432
+1649 654 56750.8 178.432 108983 0 579.893
+1722 641 59260.5 176.956 112190 0 599.359
+1798 629 62752 176.181 116086 0 618.649
+1878 618 64385.1 174.302 118236 0 639.447
+1961 606 66722.8 172.29 121033 0 658.216
+2048 595 68048.7 173.352 125709 0 680.114
+2139 584 67400.7 173.165 130411 0 703.476
+2233 573 67144.9 176.161 137236 0.0052356 722.51
+2332 562 66948.4 181.442 155196 0.174377 651.231
+2435 552 69865.9 187.902 194217 0.603261 433.674
+2543 541 64977.8 181.779 210617 0.935305 281.031
+2656 531 66576.3 184.17 220687 0.998117 276.586
+2774 521 68445.3 182.477 225749 1 313.303
+2896 512 70543 179.47 228830 1 347.119
+3025 502 74671.3 177.992 234187 1 382.618
+3158 493 79551.7 179.522 242519 1 420.761
+3298 483 84436.9 176.864 248021 1 458.13
+3444 474 86742.6 171.021 248979 1 497.006
+3597 465 90520.4 168.091 250428 1 535.062
+3756 457 96013.1 168.19 256558 1 574.19
+3922 448 103663 164.924 263259 1 615.076
+4096 440 112268 164.273 270452 1 657.445
+4277 432 116028 164.013 278248 1 699.039
+4467 424 120427 164.267 300745 1.1533 661.309
+4664 416 122834 165.028 345464 1.72596 403.728
+4871 408 123922 161.897 367221 1.99265 324.468
+5087 400 122222 172.71 377385 2 377.075
+5312 393 117142 171.202 382590 2 437.094
+5547 385 113847 178.008 398569 2 494.738
+5793 378 108479 177.606 402011 2 561.106
+6049 371 112752 184.112 427795 2 616.922
+6317 364 115058 184.007 433335 2.00275 678.272
+6597 357 122426 180.135 462877 2.22969 624.801
+6889 351 126108 172.301 499558 2.90883 346.197
+7194 344 134628 178.086 539163 2.99709 386.279
+7512 338 140811 168.158 546053 3 465.885
+7845 331 145565 162.219 542278 3 548.647
+8192 325 151068 164.386 544837 3 629.486
+8555 319 158476 161.558 549909 3.05329 686.784
+8933 313 177201 167.36 633527 3.8147 388.47
+9329 307 187971 159.023 652055 4 401.495
+9742 302 197245 159.235 667583 4 503.993
+10173 296 206253 157.456 665385 4 604.666
+10624 290 224255 168.172 699255 4.03793 687.597
+11094 285 225130 156.638 734905 4.86667 383.316
+11585 280 229946 156.105 751589 5 440.154
+12098 274 224956 167.487 794318 5 570.686
+12634 269 208409 171.318 824242 5.02974 677.45
+13193 264 194886 176.64 935053 5.88636 386.894
+13777 259 179815 172.502 969243 6 475.112
+14387 255 178102 179.509 971039 6 616.314
+15024 250 182068 164.05 999096 6.42 558.452
+15689 245 181780 149.42 980110 6.99592 441.139
+16384 241 192328 150.663 1.00156e+06 7 604.606
+17109 236 206017 151.838 1.05916e+06 7.47881 533.225
+17867 232 220082 155.417 1.10881e+06 8 470.284
+18658 227 239485 159.65 1.17477e+06 8.00441 649.295
+19484 223 254655 158.237 1.22815e+06 8.91928 397.063
+20347 219 266973 157.729 1.26436e+06 9 561.511
+21247 215 280535 154.752 1.30194e+06 9.51163 517.702
+22188 211 300289 157.58 1.38652e+06 10 513.009
+23170 207 318749 162.353 1.44578e+06 10.2899 594.739
+24196 203 329695 160.011 1.50509e+06 11 487.286
+25268 199 339101 156.282 1.50542e+06 11.3467 579.467
+26386 195 358769 159.839 1.57718e+06 12 534.082
+27554 192 381875 159.393 1.65495e+06 12.6094 499.385
+28774 188 386665 163.62 1.72327e+06 13.0106 608.559
+30048 185 369243 168.01 1.82806e+06 13.9784 429.324
+31379 181 314039 171.289 1.97464e+06 14.2541 603.492
+32768 178 300449 181.885 2.27924e+06 15 579.135
+34219 174 291862 174.03 2.27917e+06 15.977 445.506
+35734 171 304082 174.07 2.2848e+06 16.6842 465.374
+37316 168 331375 183.171 2.49267e+06 17.0774 648.381
+38968 165 353018 178.431 2.72274e+06 18.0121 594.685
+40693 162 388191 181.331 2.92977e+06 18.9938 517.296
+42495 159 422138 178.84 3.29211e+06 19.9686 463.245
+44376 156 393545 156.306 2.9614e+06 20.9359 447.801
+46341 153 416431 172.228 3.12367e+06 21.8954 454.451
+48393 150 427927 173.574 3.19925e+06 22.9 448.607
+50535 147 458429 175.075 3.36431e+06 23.9048 459.054
+52773 144 475347 173.709 3.45496e+06 25 461.028
+55109 142 498232 174.612 3.67358e+06 26 530.479
+57549 139 509468 172.673 3.66593e+06 27.0288 607.173
+60097 136 525088 174.178 3.88676e+06 28.3382 566.382
+62757 134 551582 178.696 4.07433e+06 29.8284 462.776
+65536 131 576038 178.052 4.17767e+06 31.0153 557.221
+68438 129 592302 178.524 4.33005e+06 32.5194 518.969
+71468 127 601874 179.752 4.41469e+06 33.9843 520.669
+74632 124 569823 181.018 4.00903e+06 35.1613 612.565
+77936 122 542049 237.683 3.51611e+06 36.2459 591.082
+81386 120 313042 213.549 1.64559e+06 38.5583 557.458
+84990 117 231752 177.225 1.24624e+06 40.2137 593.906
+88752 115 257104 178.981 1.42876e+06 41.4783 600.348
+92682 113 292956 179.04 1.68984e+06 42.9912 583.912
+96785 111 371126 197.011 2.21579e+06 44.8288 546.505
+101070 109 535743 191.992 2.56861e+06 46.8899 519.716
+105545 107 448757 174.904 2.52831e+06 49 564.794
+110218 105 492371 181.828 2.83067e+06 51.2286 599.476
+115098 103 517175 176.294 3.00455e+06 53.8447 536.99
+120194 101 573158 173.603 3.32256e+06 56.1485 597.921
+125515 99 622475 179.528 3.739e+06 58.9091 537.232
+131072 97 667742 183.935 4.09059e+06 61.732 532.536
+136875 95 739874 182.057 4.58178e+06 64.6211 536.558
+142935 93 694000 179.17 4.14888e+06 67.1398 624.57
+149263 92 385076 178.52 1.97637e+06 71.5326 564.62
+155872 90 294956 183.088 1.43861e+06 75.0556 569.689
+162773 88 359580 184.939 1.78976e+06 77.8182 566.398
+169979 87 450713 173.538 2.27726e+06 80.5172 578.103
+177505 85 537306 177.715 2.79416e+06 83.5765 571.341
+185364 83 607928 169.067 3.25792e+06 87.1084 577.157
+193571 82 676537 163.479 3.74105e+06 91.0244 579.878
+202141 80 739500 162.275 4.18261e+06 95.425 549.35
+211090 79 729532 169.893 4.06211e+06 99.8608 592.038
+220436 77 360104 172.924 1.64782e+06 106.39 554.065
+230195 76 396382 169.637 1.88012e+06 110.974 546.961
+240387 74 522054 167.802 2.533e+06 114.784 582.216
+251030 73 652932 168.706 3.20679e+06 119.178 543.726
+262144 72 745514 163.706 3.89333e+06 123.958 579.083
+273750 70 818800 167.926 4.45793e+06 129.671 563.114
+285870 69 457145 173.504 2.0232e+06 137.783 549.29
+298527 68 451206 166.22 1.96453e+06 143.985 558.5
+311744 66 612985 166.352 2.77805e+06 149.182 555.909
+325546 65 749431 158.644 3.69237e+06 154.985 555.369
+339959 64 831766 161.551 4.25922e+06 161.562 561.156
+355010 63 453873 168.626 1.85783e+06 171.238 580.603
+370728 62 524161 164.183 2.34321e+06 178.323 586.145
+387141 60 698967 158.394 3.31822e+06 185.25 566.6
+404281 59 855525 157.737 4.30661e+06 192.661 556.847
+422180 58 469345 160.905 1.95262e+06 203.879 555.897
+440872 57 594982 161.991 2.67212e+06 212.158 573.123
+460391 56 851232 159.253 3.83612e+06 220.107 557.893
+480774 55 685218 154.24 3.1694e+06 231.582 573.109
+502060 54 564315 159.584 2.365e+06 242.519 548.87
+524288 53 809830 155.224 3.70219e+06 251.472 569.189
+547500 52 706288 164.702 3.25638e+06 264.019 581
+571740 51 602784 155.308 2.47678e+06 275.882 595.039
+597053 50 884840 156.403 3.94142e+06 286.36 590.02
+623487 49 549122 164.305 2.116e+06 301.592 541.612
+651091 48 769396 157.636 3.21267e+06 313.188 599.292
+679917 47 727745 155.273 3.05306e+06 328.426 572.936
+710020 46 687130 156.506 2.81111e+06 342.652 578.913
+741455 45 801978 153.436 3.50042e+06 357.778 562.911
+774282 45 731600 159.591 2.75809e+06 373.778 568.022
+808563 44 812364 154.485 3.39807e+06 390.409 588.727
+844361 43 838233 164.377 3.12942e+06 407.86 602.279
+881744 42 692595 161.831 2.6181e+06 426.905 577.881
+920782 41 876951 151.02 3.5712e+06 444.024 581.463
+961548 41 571805 146.012 2.1262e+06 465.683 574.366
+1004120 40 826975 150.54 3.49882e+06 485.2 584.525
+1048576 39 857897 156.653 3.35105e+06 506.59 554.179
+1095000 38 651895 152.936 2.28971e+06 530.763 565.5
+1143480 38 699868 151.648 2.6975e+06 554.342 567.579
+1194106 37 915270 150.043 3.65286e+06 577.432 559.081
+1246974 36 911722 152.661 3.50006e+06 603.417 590.25
+1302182 35 767286 150.721 2.86434e+06 630.743 592.4
+1359835 35 676886 150.572 2.3364e+06 659.257 567.543
+1420040 34 653118 149.608 2.20847e+06 689.147 582.176
+1482910 33 632576 146.538 2.25658e+06 719.909 541.636
+1548564 33 665000 147.247 2.28476e+06 751.697 565.606
+1617125 32 666406 145.18 2.27694e+06 785.312 545.625
+1688722 32 726438 143.557 2.47634e+06 820.094 552.25
+1763488 31 790581 148.2 2.88765e+06 856.032 522.032
+1841564 30 959133 149.362 3.50483e+06 893.567 575.367
+1923097 30 888867 144.958 3.2206e+06 933.333 560.867
+2008240 29 711793 148.206 2.39017e+06 976.862 540.862
+2097152 29 902207 143.099 3.245e+06 1018.59 614.103
+2190001 28 778786 145.996 2.94268e+06 1064.57 589.179
+2286960 28 846964 145.969 3.01604e+06 1111.57 583.357
+2388213 27 719148 140.9 2.72307e+06 1162 564.296
+2493948 27 909852 140.687 3.41574e+06 1212 578.704
+2604365 26 768115 144.733 2.584e+06 1268.04 560.154
+2719670 26 765846 140.37 2.60785e+06 1324.38 541.192
+2840080 25 828680 142.347 2.99028e+06 1382.6 594.2
+2965821 25 874680 145.907 3.31656e+06 1443.72 507.92
+3097129 24 893208 141.364 3.27017e+06 1507.58 548
+3234251 24 975375 161.209 3.54954e+06 1575.62 573.958
+3377443 23 800957 142.798 2.60413e+06 1646 542.957
+3526975 23 811870 139.363 2.91917e+06 1718.65 555
+3683128 22 853455 137.853 3.0935e+06 1794.73 591.682
+3846194 22 843682 146.538 2.90386e+06 1875.95 539.227
+4016479 22 868545 147.466 3.112e+06 1958.27 532.727
+4194304 21 943238 144.295 3.31943e+06 2045.29 571.238
+4380002 21 884667 149.969 3.00224e+06 2136.14 566.571
+4573921 20 903600 144.856 3.0694e+06 2231.3 569.15
+4776426 20 1.00985e+06 148.897 3.4994e+06 2331.05 562.4
+4987896 20 898000 145.956 3.195e+06 2434.7 535.1
+5208729 19 889053 154.377 2.95126e+06 2542.05 603.368
+5439339 19 967421 148.921 3.19847e+06 2655.26 567.263
+5680159 18 932556 153.162 2.93394e+06 2773.56 548.778
+5931642 18 897222 149.403 2.95089e+06 2896.72 577
+6194258 18 793167 129.619 2.72561e+06 3026.83 521.389
+6468501 17 847529 130.436 2.81041e+06 3160.06 546.294
+6754886 17 818471 126.568 2.81165e+06 3300.29 577.235
+7053950 17 794000 128.002 2.78265e+06 3446.35 572
+7366255 16 813688 128.941 2.782e+06 3601.19 572.5
+7692387 16 893500 144.497 2.94219e+06 3760.12 589.25
+8032959 16 852438 139.036 2.78744e+06 3926.69 566.875
+8388608 16 924500 139.002 2.96444e+06 4101.44 537.812
diff --git a/cpp/results/frequent_items_merge_timing_string_lgk10_zipf11_short_copy.tsv b/cpp/results/frequent_items_merge_timing_string_lgk10_zipf11_short_copy.tsv
new file mode 100644
index 0000000..01ebb3e
--- /dev/null
+++ b/cpp/results/frequent_items_merge_timing_string_lgk10_zipf11_short_copy.tsv
@@ -0,0 +1,319 @@
+1 16384 14652.6 48.4619 171.143 0 1
+2 12874 14646.3 40.1973 227.124 0 1.96505
+3 11180 14984.8 41.5921 286.404 0 2.90009
+4 10115 14551.4 38.5072 321.008 0 3.80198
+5 9360 14553.3 35.1068 378.846 0 4.69231
+6 8785 14823.1 33.9784 430.734 0 5.54604
+7 8326 15430.1 32.7545 851.069 0 6.38422
+8 7948 15521.6 30.558 1078.51 0 7.20861
+9 7629 15568.4 31.0657 1211.56 0 8.02517
+10 7355 15611.4 30.0884 1307.27 0 8.81564
+11 7115 15694.2 30.5756 1350.95 0 9.57414
+12 6903 15440.8 30.0232 1400.55 0 10.3522
+13 6713 15451.1 30.0107 1610.31 0 11.1245
+14 6542 15801.4 29.7965 1860.59 0 11.899
+15 6387 15178.2 28.819 2031.31 0 12.5906
+16 6245 14762.5 29.0833 2209.13 0 13.3518
+17 6115 14875.1 27.0502 2388.72 0 14.0695
+18 5995 15047.2 28.0697 2462.72 0 14.7741
+19 5883 15178.3 27.2596 2579.47 0 15.4868
+20 5779 15286.6 28.0239 2675.72 0 16.2006
+21 5682 15440 28.2764 2789.86 0 16.9101
+22 5591 14961.2 28.2028 2764.44 0 17.5867
+23 5505 15002.5 27.3585 2819.62 0 18.254
+24 5424 14959.4 27.4859 2898.78 0 18.9864
+25 5347 15047.3 26.8487 2959.98 0 19.599
+26 5275 15249.3 27.0069 2992.99 0 20.2872
+27 5206 15124.3 26.9561 3072.22 0 20.9823
+28 5141 15097.5 26.9959 3173.9 0 21.6123
+29 5078 14969.3 26.8773 3342.65 0 22.3401
+31 4962 15558.4 26.7972 3734.78 0 23.6288
+32 4907 15085.6 26.7284 3874.67 0 24.234
+33 4855 15580.2 27.5817 4104.63 0 24.8622
+35 4757 15668.7 28.3252 4431.78 0 26.1503
+36 4710 15719.1 27.3944 4471.34 0 26.7732
+38 4623 15956.1 27.9267 4817.87 0 28.0415
+40 4541 15496.4 27.3618 4826.25 0 29.2588
+41 4502 15620.6 27.6354 4966.02 0 29.8914
+43 4428 15639.1 27.5204 5101.85 0 31.1585
+45 4359 15502.2 27.7128 5203.49 0 32.2517
+47 4293 15320.8 27.9178 5308.64 0 33.4836
+49 4231 15267.8 27.7061 5413.14 0 34.7334
+52 4145 15776.6 27.902 5645.11 0 36.401
+54 4091 15903 27.5582 5756.29 0 37.5827
+56 4039 15893.8 27.7252 5880.42 0 38.8188
+59 3967 15211.7 27.4083 5958.91 0 40.5495
+61 3921 15683.8 27.6067 6148.94 0 41.7577
+64 3856 15925.1 28.0731 6416.75 0 43.5044
+67 3795 16004.5 28.3051 6841.37 0 45.1713
+70 3738 15848.6 28.43 7219.1 0 46.7737
+73 3683 15244.4 28.4238 7717.35 0 48.4876
+76 3632 15443.8 28.5329 8155.29 0 50.0942
+79 3584 15298 28.7106 8541.29 0 51.7238
+83 3523 15557.8 29.0484 9043.15 0 54.0131
+87 3465 15711.4 29.5766 9359.88 0 56.1968
+91 3412 15518.5 28.8445 9516.12 0 58.0903
+95 3361 15705.4 28.945 9681.94 0 60.3996
+99 3313 15367 29.4402 9828.25 0 62.5008
+103 3268 15923.2 29.5421 10076.8 0 64.3696
+108 3214 16097.7 29.8348 10408.2 0 67.1465
+112 3174 15930.4 29.6916 10493.4 0 69.0942
+117 3126 16370.1 30.3165 10809.7 0 71.7841
+123 3072 16235.7 30.2258 11008.5 0 74.8206
+128 3030 16649.2 31.0179 11421.8 0 77.27
+134 2982 16366.5 31.077 11510.1 0 80.0312
+140 2937 16251.3 31.3342 11771.2 0 82.9946
+146 2894 16242.6 31.4538 12043.9 0 85.7626
+152 2854 16405.4 31.8897 12640.2 0 88.8311
+159 2810 16002.8 32.0911 13274.7 0 92.2078
+166 2768 16470.7 32.5145 14215 0 95.3566
+173 2728 16473.6 33.1289 14958.9 0 98.5913
+181 2686 16269.9 33.5215 15743.9 0 102.243
+189 2646 16972.8 33.9796 16536.3 0 106.024
+197 2608 16646.5 44.535 17067.5 0 109.582
+206 2568 17560.4 61.1087 17649.1 0 113.498
+215 2530 18420.9 76.6357 18288.9 0 117.735
+225 2490 19053.8 91.5109 18839.4 0 122.391
+235 2453 19517.7 98.4986 19536.5 0 126.457
+245 2417 19818 104.197 19895.3 0 130.59
+256 2381 20001.7 109.59 20559 0 135.459
+267 2346 19960.8 110.244 20718.2 0 139.851
+279 2310 19825.5 110.042 21077.1 0 145.309
+292 2274 19938.9 110.262 21623.6 0 150.413
+304 2242 20163.2 109.894 22187.8 0 155.485
+318 2208 20048.9 107.806 22577.4 0 161.315
+332 2175 19958.6 105.19 22879.1 0 166.91
+347 2142 20143.8 103.515 23609.2 0 172.815
+362 2110 20152.6 101.134 24263 0 178.434
+378 2079 20107.7 98.614 25611.8 0 185.357
+395 2047 20227.2 100.416 27756.2 0 191.678
+412 2017 20540.4 104.43 30272.7 0 198.488
+431 1986 20959.2 110.178 32649.5 0 205.491
+450 1956 20728.5 114.551 33590 0 212.628
+470 1927 20808 119.48 34548.5 0 219.987
+490 1899 20759.9 122.364 35384.4 0 227.324
+512 1870 20857.8 125.463 36333.2 0 235.725
+535 1842 21021.2 126.938 37261.1 0 243.592
+558 1815 20941 126.253 38046.8 0 251.662
+583 1788 21023.5 125.474 38887 0 260.718
+609 1761 20943.2 122.69 39427.6 0 269.328
+636 1735 20911.2 120.087 40276.1 0 278.89
+664 1709 21097.1 118.018 41323 0 288.947
+693 1683 20947.1 114.26 41711.2 0 298.426
+724 1658 21139.9 111.834 42728.6 0 309.017
+756 1633 21335 109.28 43761.2 0 319.792
+790 1608 21380 106.746 44928.5 0 330.339
+825 1584 21406.6 104.646 45861.7 0 341.999
+861 1561 21500.3 103.126 47100.6 0 353.566
+899 1538 21522.8 103.096 49301 0 365.542
+939 1515 22377.6 105.705 54208.6 0 377.923
+981 1492 22782.2 107.874 60460.5 0 390.365
+1024 1470 23244.9 110.868 65142.9 0 403.749
+1069 1448 23810.1 113.433 68148.5 0 417.501
+1117 1426 24212.5 114.783 69781.2 0 431.28
+1166 1405 24817.8 116.216 71929.5 0 446.353
+1218 1384 24459.5 113.966 72980.5 0 460.847
+1272 1363 24821.7 112.646 74659.6 0 475.836
+1328 1343 25053.6 110.388 75959.8 0 492.161
+1387 1322 25338.1 107.56 77461.4 0 509.169
+1448 1303 25255.6 104.6 78751.3 0 526.216
+1512 1283 25399.8 101.551 79957.9 0 542.949
+1579 1264 25730.2 99.7291 81976.3 0 560.576
+1649 1245 26073.9 97.2623 83541.4 0 579.144
+1722 1226 25818.9 94.6725 85035.9 0 598.112
+1798 1208 25772.4 92.3566 86378.3 0 618.179
+1878 1190 25841.2 90.6995 88102.5 0 638.757
+1961 1172 25877.1 89.5548 90428.3 0 659.936
+2048 1155 26218.2 89.1454 93648.5 0 680.831
+2139 1137 26699.2 90.0477 97193.5 0 702.212
+2233 1120 27461.6 92.4193 102446 0.00803571 720.341
+2332 1104 27644.9 93.943 109350 0.15308 662.111
+2435 1087 28017.5 96.4325 121050 0.600736 434.849
+2543 1071 28535 98.0781 130747 0.951447 271.008
+2656 1055 28800.9 97.3991 134312 0.997156 279.2
+2774 1039 29237.7 96.576 137805 1 312.136
+2896 1024 29074.2 93.9304 139758 1 346.182
+3025 1008 29699.4 92.3147 143174 1 384.36
+3158 993 29799.6 89.6491 145531 1 419.677
+3298 978 30068.5 87.4549 148075 1 456.818
+3444 964 30484.4 85.7264 151717 1 495.649
+3597 949 30460.5 83.4532 153677 1 533.564
+3756 935 30585 81.6112 156857 1 574.341
+3922 921 30793.7 80.162 160492 1 616.419
+4096 907 30772.9 78.2418 163456 1 656.826
+4277 894 31340 77.1535 167921 1.00112 698.394
+4467 880 31018.2 75.4325 173356 1.14318 666.156
+4664 867 31005.8 74.4622 186717 1.76471 385.374
+4871 854 31817.3 75.1698 196809 1.99883 319.118
+5087 841 33235.4 76.7095 205134 2 377.776
+5312 829 34945.7 79.0797 214136 2 435.483
+5547 816 36186.3 81.1771 223435 2 494.596
+5793 804 37286.1 82.8629 232603 2 558.544
+6049 792 38685.6 83.2438 241650 2 618.346
+6317 780 39326.9 81.865 248729 2.00256 680.409
+6597 769 39957.1 79.8757 258303 2.18986 646.576
+6889 757 40722.6 78.2784 277152 2.92338 342.273
+7194 746 41337.8 76.371 282743 2.99866 383.227
+7512 735 42042.2 74.5284 288272 3 462.355
+7845 724 42273.5 72.7873 293572 3 548.525
+8192 713 43096.8 71.8402 301919 3 630.376
+8555 702 43334.8 69.8179 307821 3.03846 691.782
+8933 692 44247.1 68.8169 329392 3.8237 386.429
+9329 681 44991.2 67.4327 336658 4 400.095
+9742 671 47073 66.2619 342230 4 503.644
+10173 661 50455.4 66.1164 352327 4 605.796
+10624 651 46066.1 64.1698 360126 4.05376 680.008
+11094 641 41351 63.4372 382602 4.85959 389.19
+11585 632 41963.6 63.1894 391019 5 443.101
+12098 622 42871.4 64.5492 400326 5 566.349
+12634 613 46168 67.8278 423452 5.02936 679.643
+13193 604 47309.6 70.4229 445425 5.87417 391.017
+13777 595 48522.7 71.4536 456461 6 473.82
+14387 586 50718.4 71.1424 469879 6.00171 616.852
+15024 577 51327.6 69.2811 480456 6.41248 559.548
+15689 568 53098.6 68.8102 501968 6.99824 440.653
+16384 560 53766.1 66.5495 508436 7 605.938
+17109 552 54873.2 65.4645 530080 7.45471 541.855
+17867 543 55193.4 63.9268 543341 8 467.497
+18658 535 56538.3 63.0391 562105 8.00935 651.262
+19484 527 57290.3 61.386 586545 8.91841 394.567
+20347 519 57988.4 60.5498 596636 9 565.285
+21247 512 58916 59.6349 622521 9.50586 522.738
+22188 504 57692.5 57.8209 626573 10 515.266
+23170 496 59663.3 57.3443 655657 10.2258 622.663
+24196 489 58253.6 56.2896 671110 11 500.434
+25268 482 59381.7 55.5676 695942 11.3278 588.517
+26386 474 59204.6 54.9447 719070 12 534.479
+27554 467 57972.2 54.1531 734730 12.6617 476.325
+28774 460 60010.9 54.9829 773198 13.0043 608.024
+30048 453 64554.1 57.0272 829038 13.9823 435.804
+31379 447 70970.9 59.2946 878284 14.2461 608.519
+32768 440 77468.2 61.6078 941557 15 575.989
+34219 433 80468.8 60.8948 985875 15.9838 443.889
+35734 427 82697.9 59.8648 1.01541e+06 16.5878 506.941
+37316 420 83438.1 58.2233 1.03898e+06 17.1024 629.224
+38968 414 87579.7 57.7482 1.09184e+06 18.0024 584.804
+40693 408 89970.6 56.7377 1.13164e+06 18.9975 519.456
+42495 402 91032.3 55.6326 1.16757e+06 19.9876 463.828
+44376 396 93752.5 54.7949 1.21124e+06 20.9293 444.538
+46341 390 95941 53.7206 1.24783e+06 21.8564 453.431
+48393 384 96950.5 53.0989 1.29397e+06 22.8594 451.315
+50535 378 99071.4 51.9507 1.32691e+06 23.9101 451.217
+52773 373 100383 51.3192 1.36837e+06 24.9598 476.879
+55109 367 102177 50.65 1.41586e+06 26.0082 521.951
+57549 362 102483 50.1692 1.45547e+06 27.0359 609.356
+60097 356 103483 49.9227 1.49928e+06 28.3202 578.736
+62757 351 103866 49.0747 1.54081e+06 29.8462 462.786
+65536 346 103639 49.0795 1.58216e+06 31.0202 560.795
+68438 340 102738 48.2422 1.63657e+06 32.4941 534.412
+71468 335 101200 48.1525 1.66802e+06 33.9821 520.34
+74632 330 93336.4 50.1686 1.53606e+06 35.1303 617.561
+77936 325 69852.3 52.3978 972000 36.2708 600.874
+81386 320 54209.4 53.2955 564572 38.5906 556.9
+84990 316 56310.1 51.5172 556199 40.0854 592.475
+88752 311 62836 52.2131 652450 41.5145 577
+92682 306 69176.5 51.3893 749059 42.9804 589.425
+96785 302 75165.6 50.6128 845563 44.7649 565.182
+101070 297 80447.8 49.9258 943653 46.835 541.956
+105545 293 86511.9 49.4866 1.04429e+06 49 556.84
+110218 288 92319.4 49.2008 1.15055e+06 51.2535 603.549
+115098 284 96352.1 48.0368 1.25369e+06 53.7817 536.82
+120194 280 99839.3 49.4362 1.35025e+06 56.1821 603.404
+125515 276 103453 47.9497 1.44836e+06 58.9384 547.634
+131072 271 103830 47.3459 1.53649e+06 61.7306 522.07
+136875 267 102903 48.5004 1.63757e+06 64.5581 544.112
+142935 263 95874.5 47.8558 1.56144e+06 67.2471 580.536
+149263 259 68579.2 49.7798 810834 71.3398 560.985
+155872 255 65200 50.3031 630102 75.0824 566.961
+162773 252 75075.4 50.1179 791028 77.8294 558.996
+169979 248 84068.5 49.1486 966956 80.4395 562.694
+177505 244 92082 49.8683 1.13338e+06 83.6148 547.779
+185364 241 99622.4 49.1457 1.29944e+06 87.0913 552.954
+193571 237 102722 47.8445 1.44503e+06 91.0633 559.688
+202141 233 105339 46.8883 1.60715e+06 95.2876 584.906
+211090 230 93669.6 50.546 1.48806e+06 99.6957 594.087
+220436 226 66845.1 50.6191 667739 106.15 588.934
+230195 223 77017.9 49.8475 791610 110.848 572.583
+240387 220 87718.2 49.1932 1.02315e+06 114.745 571.855
+251030 216 99300.9 48.8072 1.26241e+06 119.074 561.546
+262144 213 104380 47.7362 1.46434e+06 123.925 555.803
+273750 210 102000 47.3768 1.6147e+06 129.552 578.224
+285870 207 72386.5 48.7942 808333 137.778 567.271
+298527 204 78676.5 47.9718 813946 143.917 562.088
+311744 201 94313.4 49.0618 1.12708e+06 149.164 562.697
+325546 198 103056 47.8089 1.40624e+06 154.823 563.217
+339959 195 101918 47.6699 1.60165e+06 161.579 563.533
+355010 192 72546.9 48.6573 760464 171.146 581.24
+370728 189 88455 52.5609 975804 178.54 572.651
+387141 186 103382 53.0367 1.34358e+06 184.995 569.489
+404281 183 105497 51.6035 1.61511e+06 192.53 576.623
+422180 181 75348.1 49.1241 772403 203.796 564.608
+440872 178 90101.1 50.4108 1.05038e+06 212.062 570.865
+460391 175 106326 51.2593 1.45656e+06 220.097 582.806
+480774 173 88693.6 53.461 1.21479e+06 231.491 571.399
+502060 170 86000 53.1507 928465 242.241 572.012
+524288 167 104928 52.8466 1.40862e+06 251.251 567.581
+547500 165 89260.6 50.7933 1.18855e+06 263.873 563.012
+571740 162 91648.1 51.6062 1.01088e+06 275.944 569.907
+597053 160 105456 51.2914 1.52562e+06 286.231 575.894
+623487 158 79474.7 50.757 805006 301.449 558.766
+651091 155 100310 48.8136 1.29741e+06 313.419 580.619
+679917 153 88993.5 47.7947 1.1529e+06 328.092 571.039
+710020 151 95231.8 47.4707 1.14548e+06 342.497 573.887
+741455 148 95716.2 47.3328 1.36326e+06 357.243 577.601
+774282 146 96630.1 48.2813 1.12061e+06 373.747 582.767
+808563 144 91722.2 46.7315 1.28259e+06 390.188 554.361
+844361 142 98774.6 47.1296 1.1858e+06 407.549 579.479
+881744 140 84271.4 45.9832 994907 426.693 568.679
+920782 138 104130 47.5387 1.40901e+06 443.768 590.957
+961548 135 83740.7 45.5412 894822 465.763 564.659
+1004120 133 96060.2 46.9694 1.34998e+06 484.925 574.571
+1048576 131 102458 46.9916 1.31711e+06 506.374 600.344
+1095000 129 86666.7 45.6656 930829 530.403 586.016
+1143480 128 85101.6 45.2442 1.06322e+06 554.055 567.797
+1194106 126 102532 47.1191 1.45679e+06 576.96 556.532
+1246974 124 100839 47.298 1.32498e+06 603.177 569.25
+1302182 122 94950.8 46.7291 1.13885e+06 630.803 563.943
+1359835 120 88675 46.2353 985325 659.4 558.85
+1420040 118 85067.8 45.8523 916458 688.915 554.017
+1482910 116 84612.1 46.5319 901845 719.759 579.819
+1548564 115 83869.6 45.6195 905687 751.687 573.217
+1617125 113 86531 46.5189 942965 785.186 575.142
+1688722 111 90846.8 45.7107 1.01425e+06 819.901 571.216
+1763488 110 96063.6 44.7613 1.18597e+06 855.755 565.018
+1841564 108 101380 45.3541 1.37131e+06 893.204 557.565
+1923097 106 94358.5 44.4305 1.2352e+06 933.821 595.443
+2008240 105 86371.4 45.5881 955048 976.152 562.181
+2097152 103 99572.8 45.7643 1.28837e+06 1018.5 543.233
+2190001 102 89196.1 45.5646 1.13859e+06 1064.64 574.961
+2286960 100 95930 46.1082 1.16885e+06 1111.6 562.5
+2388213 99 91383.8 45.3841 1.10649e+06 1161.64 583.091
+2493948 97 100206 44.9902 1.31921e+06 1212.29 546.082
+2604365 96 91781.2 45.2787 1.04554e+06 1267.48 575.156
+2719670 94 87478.7 45.4319 1.04923e+06 1323.67 568.489
+2840080 93 92763.4 46.749 1.20652e+06 1382.46 571.333
+2965821 91 96945.1 49.8238 1.26675e+06 1443.38 595.385
+3097129 90 94944.4 47.8151 1.26537e+06 1507.97 595.367
+3234251 89 92224.7 47.2517 1.18671e+06 1575.26 562.876
+3377443 87 90264.4 47.088 1.04713e+06 1646.01 580.218
+3526975 86 95255.8 48.1014 1.1655e+06 1718.62 574.581
+3683128 85 96576.5 47.2034 1.25373e+06 1794.85 574.165
+3846194 83 92710.8 47.8028 1.08846e+06 1875.45 565.337
+4016479 82 95378 47.0941 1.23201e+06 1958.06 583.134
+4194304 81 97345.7 46.4886 1.24591e+06 2045.14 590.049
+4380002 80 94537.5 46.247 1.1855e+06 2136.03 576.375
+4573921 79 94949.4 46.6133 1.18132e+06 2231.41 579.506
+4776426 77 100052 46.9686 1.23786e+06 2330.38 588.481
+4987896 76 98144.7 46.848 1.24691e+06 2433.84 565.711
+5208729 75 93346.7 46.7353 1.1296e+06 2542.47 561.547
+5439339 74 95067.6 47.509 1.22524e+06 2655.26 568.014
+5680159 73 97178.1 45.9181 1.1631e+06 2773.38 598.151
+5931642 72 93958.3 44.758 1.12617e+06 2896.82 574.014
+6194258 71 92802.8 44.8097 1.13717e+06 3025.77 558.789
+6468501 70 94371.4 44.4499 1.15046e+06 3159.87 558.671
+6754886 69 94318.8 44.1984 1.18719e+06 3300.28 580.058
+7053950 67 94238.8 45.4648 1.14888e+06 3446.88 572.03
+7366255 66 94621.2 45.6998 1.14712e+06 3600.29 572.561
+7692387 65 93661.5 44.7761 1.14728e+06 3759.8 574.477
+8032959 64 95656.2 44.1764 1.19073e+06 3926.77 595.203
+8388608 64 94203.1 43.7826 1.18773e+06 4101.2 558.906
diff --git a/cpp/results/frequent_items_merge_timing_string_lgk10_zipf11_short_move.tsv b/cpp/results/frequent_items_merge_timing_string_lgk10_zipf11_short_move.tsv
new file mode 100644
index 0000000..45cb6d0
--- /dev/null
+++ b/cpp/results/frequent_items_merge_timing_string_lgk10_zipf11_short_move.tsv
@@ -0,0 +1,319 @@
+1 16384 15124.3 48.4619 165.039 0 1
+2 12874 14949.9 43.7316 215.162 0 1.96784
+3 11180 14915.7 39.4753 260.018 0 2.90045
+4 10115 14857.8 38.3836 310.826 0 3.80237
+5 9360 14877.1 35.7051 349.573 0 4.69177
+6 8785 14966.6 33.6559 406.261 0 5.55003
+7 8326 15488 31.7594 827.048 0 6.3865
+8 7948 15681.2 33.4833 1057 0 7.20055
+9 7629 15334.6 30.92 1191.77 0 8.01337
+10 7355 15558.7 31.6791 1293.27 0 8.81917
+11 7115 15576.7 29.8473 1320.31 0 9.6059
+12 6903 15403.2 29.5041 1367.96 0 10.3781
+13 6713 14943.2 28.7273 1543.13 0 11.1202
+14 6542 14695.5 28.8793 1744.88 0 11.9121
+15 6387 15052.9 28.2866 1984.5 0 12.605
+16 6245 14467.6 27.9724 2129.06 0 13.3593
+17 6115 15205.9 29.0029 2322.32 0 14.0275
+18 5995 14601.5 27.282 2376.31 0 14.8075
+19 5883 15230.3 28.1722 2471.53 0 15.4987
+20 5779 15055 27.3231 2577.09 0 16.2144
+21 5682 15017.8 26.8014 2591.17 0 16.9065
+22 5591 15347.3 27.3248 2642.46 0 17.6047
+23 5505 15597.8 26.8768 2959.13 0 18.2621
+24 5424 15596.6 26.7868 2946.35 0 19.045
+25 5347 15315.9 26.6991 2858.24 0 19.6035
+26 5275 15741.8 27.8017 2942.37 0 20.3448
+27 5206 14964.5 26.9418 2979.83 0 20.971
+28 5141 14784.9 26.5026 3071.78 0 21.6401
+29 5078 14785.9 26.0556 3210.71 0 22.2519
+31 4962 14772.5 26.1796 3527.01 0 23.6116
+32 4907 14752.2 26.1807 3668.23 0 24.2134
+33 4855 14719.9 26.4207 3835.63 0 24.8754
+35 4757 14620.1 26.6615 4112.89 0 26.0942
+36 4710 15505.5 27.3649 4442.25 0 26.7798
+38 4623 19399.5 38.5544 5433.92 0 27.9686
+40 4541 17072 29.4814 5105.92 0 29.2063
+41 4502 14902.7 26.7632 4759.44 0 29.9947
+43 4428 15083.1 26.3702 4837.62 0 31.0935
+45 4359 14744.2 27.05 4923.38 0 32.3599
+47 4293 14881.2 26.7234 5016.54 0 33.5404
+49 4231 14719.2 26.833 5155.99 0 34.7157
+52 4145 16215.4 28.4727 5599.76 0 36.4854
+54 4091 15532.9 27.5401 5547.3 0 37.7634
+56 4039 15078 26.9471 5583.56 0 38.977
+59 3967 15552.6 27.4083 5784.47 0 40.6476
+61 3921 15417.5 27.4269 5924.25 0 41.7697
+64 3856 15545.1 27.6233 6186.72 0 43.5358
+67 3795 16285.1 28.2619 6772.86 0 45.1552
+70 3738 15413.9 27.5204 6962.55 0 46.8432
+73 3683 15384.2 27.8176 7402.93 0 48.4784
+76 3632 15474.9 27.4497 7766.24 0 50.182
+79 3584 15224.6 27.8417 8112.44 0 51.8304
+83 3523 15412.1 27.7967 8483.96 0 54.0216
+87 3465 15191.3 28.2331 8791.92 0 56.0499
+91 3412 15167.9 28.0072 8930.83 0 58.3438
+95 3361 16309.7 27.6609 9070.51 0 60.3246
+99 3313 15938.7 28.8396 9421.67 0 62.5047
+103 3268 15019.6 28.4221 9460.22 0 64.5483
+108 3214 15051.6 28.426 9640.63 0 67.1985
+112 3174 15364.5 28.8814 9914.93 0 69.0788
+117 3126 15715 29.0287 10165.1 0 71.7674
+123 3072 15748.7 29.1831 10353.8 0 74.6725
+128 3030 16235 29.3936 10552.1 0 77.1884
+134 2982 15426.6 29.4879 10650.9 0 80.0278
+140 2937 15897.2 29.9455 10989.1 0 83.1825
+146 2894 15441.6 30.2373 11285.1 0 86.0871
+152 2854 15436.6 30.8962 11676.2 0 88.7628
+159 2810 16014.2 31.1354 12578.3 0 92.2456
+166 2768 16431.7 31.7636 13266.6 0 95.5553
+173 2728 16198.7 32.3132 14130.9 0 98.548
+181 2686 15924.1 32.5033 14892.4 0 102.407
+189 2646 15894.6 33.4577 15395.7 0 105.928
+197 2608 16667.2 43.554 16030.7 0 109.67
+206 2568 17644.9 60.5038 16702.5 0 113.63
+215 2530 18398.8 75.472 17229.6 0 117.618
+225 2490 19286.7 91.4128 17865.1 0 122.346
+235 2453 19432.5 97.5878 18291.9 0 126.425
+245 2417 19710.8 102.963 18662.8 0 130.691
+256 2381 19787.9 108.499 19073.5 0 135.343
+267 2346 19841.9 108.986 19393 0 140.258
+279 2310 20085.3 110.894 19980.5 0 145.406
+292 2274 20365 111.774 20582.2 0 150.812
+304 2242 19994.2 108.796 20583 0 155.492
+318 2208 20109.1 107.304 21061.1 0 161.424
+332 2175 20197.7 105.557 21611 0 166.933
+347 2142 20409.9 104.291 22150.8 0 173.183
+362 2110 20310.9 101.486 22675.4 0 178.912
+378 2079 20221.3 98.7883 23952.9 0 185.27
+395 2047 21929.7 107.186 27269.2 0 191.59
+412 2017 20523.5 104.592 28481.9 0 198.243
+431 1986 20662.1 109.742 30506 0 205.403
+450 1956 20637 114.86 31640.6 0 212.536
+470 1927 20684 119.66 32689.7 0 219.987
+490 1899 20742.5 123.193 33429.7 0 227.514
+512 1870 20744.4 126.261 34449.2 0 235.32
+535 1842 20671 126.685 35111.8 0 243.726
+558 1815 20977.4 127.854 36427.5 0 251.888
+583 1788 20582.8 124.78 36563.2 0 260.496
+609 1761 20725.2 123.561 37453.7 0 269.853
+636 1735 20896.3 121.124 38297.4 0 279.361
+664 1709 20818.6 118.291 38897 0 288.884
+693 1683 20865.1 114.908 39623.9 0 298.418
+724 1658 20919.8 111.823 40171.3 0 308.466
+756 1633 20965.7 109.135 41039.8 0 319.805
+790 1608 20921.6 106.014 41645.5 0 330.394
+825 1584 21025.9 104.167 42755.1 0 341.819
+861 1561 21177.5 103.434 44041.6 0 352.787
+899 1538 21704.8 104.473 46445.4 0 365.233
+939 1515 21866 105.544 50825.7 0 377.548
+981 1492 22791.6 108.724 57060.3 0 390.46
+1024 1470 22906.1 110.843 61425.2 0 403.886
+1069 1448 23589.1 114.13 64447.5 0 417.602
+1117 1426 23599.6 115.246 66122.7 0 431.403
+1166 1405 23896.1 115.707 67607.1 0 446.186
+1218 1384 24184.2 114.305 69035.4 0 460.871
+1272 1363 24468.8 113.267 70593.5 0 476.323
+1328 1343 24827.3 110.768 72027.6 0 492.463
+1387 1322 25039.3 108.199 73368.4 0 508.458
+1448 1303 24989.3 104.768 74402.9 0 525.665
+1512 1283 25240.8 102.348 75850.4 0 543.544
+1579 1264 25352.1 99.6019 76949.4 0 561.782
+1649 1245 25380.7 96.8746 78340.6 0 578.479
+1722 1226 25613.4 94.9994 80059.5 0 598.983
+1798 1208 25596.9 92.7447 81553.8 0 618.656
+1878 1190 25731.9 90.8838 82868.1 0 638.414
+1961 1172 25710.8 89.5147 84732.1 0 659.485
+2048 1155 25927.3 88.8194 86806.1 0 681.323
+2139 1137 26358 89.8812 91047.5 0 703.857
+2233 1120 26836.6 91.9643 95941.1 0.0178571 715.935
+2332 1104 27592.4 94.751 104001 0.178442 648.935
+2435 1087 27920 97.391 116024 0.624655 422.787
+2543 1071 28407.1 97.5678 123391 0.94211 275.315
+2656 1055 28565.9 97.378 127535 1 276.67
+2774 1039 28956.7 96.0667 130217 1 313.33
+2896 1024 29117.2 94.0204 132895 1 346.962
+3025 1008 29255 91.5745 134733 1 383.296
+3158 993 29984.9 89.9555 138352 1 420.041
+3298 978 29878.3 87.7464 140492 1 457.507
+3444 964 30052.9 85.6396 142479 1 493.872
+3597 949 30304.5 83.4198 145255 1 534.506
+3756 935 30461 81.5015 147596 1 574.222
+3922 921 30710.1 79.9242 150515 1 615.466
+4096 907 30695.7 78.2004 153505 1 656.63
+4277 894 30825.5 76.8564 156979 1.00447 694.893
+4467 880 30951.1 75.5042 162993 1.14205 666.022
+4664 867 31149.9 74.8626 176889 1.78201 375.874
+4871 854 31867.7 74.8713 184809 1.99649 320.636
+5087 841 33014.3 76.3752 192646 2 377.943
+5312 829 34513.9 79.1455 202639 2 434.168
+5547 816 35529.4 81.3682 211607 2 496.571
+5793 804 36722.6 82.7135 219927 2 557.526
+6049 792 37895.2 82.1797 226124 2 618.239
+6317 780 38553.8 81.4495 235417 2.00128 680.508
+6597 769 39734.7 79.8507 246187 2.20806 636.189
+6889 757 40624.8 78.1895 263376 2.92734 341.305
+7194 746 40982.6 75.828 267349 3 384.05
+7512 735 41946.9 74.4097 273118 3 467.288
+7845 724 42400.6 72.7141 277615 3 546.82
+8192 713 42949.5 71.0833 283509 3 629.143
+8555 702 43703.7 70.0998 292815 3.04416 689.456
+8933 692 44173.4 68.1355 308847 3.79046 400.642
+9329 681 44732.7 67.0012 314934 3.99853 398.869
+9742 671 45620 66.0716 321835 4 502.68
+10173 661 47121 64.8891 328147 4 605.847
+10624 651 48428.6 63.9408 335790 4.04762 684.063
+11094 641 44237.1 63.1316 358743 4.86895 385.452
+11585 632 42125 62.917 367886 5 447.277
+12098 622 43064.3 64.1234 376984 5 569.502
+12634 613 44942.9 67.2876 393825 5.02284 683.135
+13193 604 47160.6 70.0105 420935 5.87748 388.119
+13777 595 48865.5 70.7792 434202 6 478.511
+14387 586 50015.4 70.6547 442474 6 618.788
+15024 577 51443.7 69.2553 458908 6.46274 537.523
+15689 568 51857.4 67.8123 468803 6.99824 437.354
+16384 560 53269.6 66.3868 476875 7 606.511
+17109 552 54094.2 64.7374 493888 7.49638 527.424
+17867 543 55289.1 63.4324 511116 7.99816 462.418
+18658 535 55786.9 62.3621 522503 8.00561 648.536
+19484 527 56963.9 60.9693 544397 8.9203 392.915
+20347 519 58215.8 60.4589 561270 9 567.89
+21247 512 58570.3 58.8434 573789 9.49219 529.781
+22188 504 59234.1 57.8816 592758 10 515.069
+23170 496 59082.7 56.7 603998 10.2843 598.978
+24196 489 58842.5 55.9194 624415 10.998 501.544
+25268 482 58867.2 55.3944 644840 11.2925 597.637
+26386 474 58542.2 54.94 661536 12 532.918
+27554 467 58888.7 53.9523 686099 12.7002 462.403
+28774 460 59923.9 54.1451 710163 13.0065 606.78
+30048 453 64125.8 55.9869 763137 13.9691 438.623
+31379 447 71022.4 58.6146 821935 14.2438 612.678
+32768 440 76270.5 60.8718 882436 15.0023 578.427
+34219 433 79219.4 60.1528 920192 15.9931 441.695
+35734 427 80955.5 58.5041 949112 16.6253 490.012
+37316 420 83797.6 57.9786 979950 17.0905 632.626
+38968 414 85082.1 56.2812 1.01838e+06 18.0072 591.536
+40693 408 87985.3 55.4894 1.05913e+06 18.9926 513.132
+42495 402 90313.4 55.0727 1.0965e+06 19.9726 465.604
+44376 396 92176.8 53.3503 1.12786e+06 20.9116 454.253
+46341 390 96261.5 52.6431 1.16884e+06 21.8692 454.167
+48393 384 96661.5 51.378 1.20131e+06 22.8802 446.862
+50535 378 98127 50.9817 1.23542e+06 23.8942 461.899
+52773 373 99992 50.401 1.27839e+06 24.9732 470.421
+55109 367 101297 49.7365 1.30451e+06 25.9973 536.88
+57549 362 102461 48.9688 1.34389e+06 27.0387 595.235
+60097 356 104138 48.9084 1.38892e+06 28.3371 575.242
+62757 351 104533 48.014 1.4237e+06 29.8575 460.84
+65536 346 102832 47.1278 1.45281e+06 31.026 549.798
+68438 340 102912 47.0824 1.51059e+06 32.4529 545.968
+71468 335 101140 47.4049 1.54402e+06 33.997 518.51
+74632 330 93524.2 47.7289 1.41586e+06 35.1182 619.612
+77936 325 69267.7 50.4413 918086 36.2585 586.665
+81386 320 53156.2 52.2922 537275 38.5344 567.862
+84990 316 53699.4 50.4845 532051 40.0949 600.022
+88752 311 61086.8 49.9283 624814 41.4598 599.257
+92682 306 67339.9 49.9826 712261 43.0425 588.549
+96785 302 73576.2 49.2169 812305 44.8146 556.536
+101070 297 79532 47.9683 904912 46.8721 536.236
+105545 293 85542.7 47.4968 996198 49.0171 567.362
+110218 288 90781.2 47.0239 1.08583e+06 51.2674 590.556
+115098 284 96552.8 46.3152 1.17764e+06 53.8169 533.806
+120194 280 100061 47.0014 1.27042e+06 56.1893 591.818
+125515 276 103862 46.6566 1.35522e+06 58.9674 531.188
+131072 271 104542 47.0039 1.43909e+06 61.6937 550.83
+136875 267 103858 45.6807 1.53057e+06 64.5393 546.049
+142935 263 95635 46.2657 1.45303e+06 67.2624 585.494
+149263 259 65725.9 48.6056 745880 71.4981 568.475
+155872 255 62160.8 47.7015 603616 75.0745 559.557
+162773 252 73246 48.4329 761897 77.7976 557.183
+169979 248 81883.1 47.146 914254 80.4194 568.395
+177505 244 92086.1 47.7767 1.08151e+06 83.5492 561.426
+185364 241 98485.5 45.6565 1.21495e+06 87.0954 556.967
+193571 237 102595 46.2971 1.34769e+06 91.038 576.654
+202141 233 104751 46.1447 1.48394e+06 95.3176 560.966
+211090 230 94243.5 47.2828 1.39483e+06 99.7348 581.713
+220436 226 65199.1 48.0642 647500 106.296 565.969
+230195 223 74188.3 47.4579 756596 110.839 572.04
+240387 220 86836.4 48.3926 974014 114.686 557.927
+251030 216 97463 47.7293 1.18565e+06 119.074 558.273
+262144 213 103516 46.6337 1.3707e+06 123.925 575.606
+273750 210 102300 48.163 1.50503e+06 129.586 576.319
+285870 207 70850.2 47.8883 756942 137.923 549.952
+298527 204 77455.9 47.776 784029 143.912 571.319
+311744 201 92766.2 47.0288 1.06597e+06 149.159 556.746
+325546 198 103071 46.9463 1.32277e+06 154.793 565.747
+339959 195 102062 45.2636 1.49437e+06 161.513 559.908
+355010 192 70578.1 47.6649 708167 171.318 560.906
+370728 189 85005.3 47.3877 904365 178.487 568.513
+387141 186 101113 46.042 1.22786e+06 185.086 565.817
+404281 183 103732 45.8031 1.46702e+06 192.59 549.683
+422180 181 72105 46.8106 718000 203.873 559.53
+440872 178 89342.7 46.4985 981674 212.163 575.691
+460391 175 104269 45.6456 1.35159e+06 220.166 555.84
+480774 173 86843.9 45.6478 1.13562e+06 231.301 587.832
+502060 170 83482.4 47.4602 872365 242.306 563.965
+524288 167 103551 44.4907 1.30312e+06 251.281 580.449
+547500 165 85436.4 47.1902 1.08248e+06 264.133 562.758
+571740 162 88821 45.091 946840 275.796 574.389
+597053 160 104119 44.0681 1.40143e+06 286.144 581.712
+623487 158 77348.1 47.5045 769627 301.494 561.576
+651091 155 100574 45.4647 1.2064e+06 313.265 585.697
+679917 153 87411.8 44.5493 1.08771e+06 328.124 573.131
+710020 151 95112.6 44.8286 1.06152e+06 342.503 567.894
+741455 148 94783.8 46.1964 1.26822e+06 357.338 569
+774282 146 93938.4 44.2002 1.04364e+06 373.795 558.87
+808563 144 93173.6 43.8941 1.22922e+06 390.125 559.132
+844361 142 98197.2 45.2587 1.13047e+06 407.803 570.324
+881744 140 83814.3 45.1048 936971 426.686 561.764
+920782 138 102594 44.703 1.30709e+06 444.087 562.319
+961548 135 83563 45.4488 855600 465.741 560.304
+1004120 133 95834.6 43.4691 1.24742e+06 485.135 577.94
+1048576 131 101366 44.1719 1.24118e+06 506.489 573.397
+1095000 129 85976.7 45.9107 886504 530.434 568.798
+1143480 128 85257.8 43.5776 978648 553.891 566.578
+1194106 126 103127 45.3294 1.36788e+06 577.222 557.095
+1246974 124 101774 44.9692 1.26409e+06 603.185 564.185
+1302182 122 94926.2 44.6825 1.07307e+06 630.754 586.705
+1359835 120 89400 43.8583 925692 659.383 568.05
+1420040 118 84355.9 44.3584 864492 688.975 565.466
+1482910 116 82689.7 45.6386 868681 719.733 580.655
+1548564 115 82878.3 43.1488 865696 751.704 573.635
+1617125 113 87212.4 45.7109 914752 785.239 554.336
+1688722 111 89225.2 44.7863 959324 820.072 563.964
+1763488 110 96736.4 44.1459 1.11785e+06 855.682 573.227
+1841564 108 102056 44.4192 1.28823e+06 893.352 557.917
+1923097 106 92924.5 44.2086 1.16892e+06 933.613 584.623
+2008240 105 86038.1 44.4033 908286 976.438 565.171
+2097152 103 98417.5 44.2892 1.20884e+06 1018.53 586.01
+2190001 102 89852.9 42.6507 1.07083e+06 1064.75 562.314
+2286960 100 95460 43.752 1.10183e+06 1111.63 583.26
+2388213 99 88444.4 43.2322 1.03411e+06 1161.55 565.091
+2493948 97 100206 42.8939 1.23572e+06 1212.67 578.196
+2604365 96 91937.5 43.1577 995750 1267.52 576.688
+2719670 94 87531.9 42.4807 983904 1323.81 581.33
+2840080 93 94053.8 43.8607 1.13942e+06 1382.16 576.376
+2965821 91 95989 43.8694 1.18922e+06 1443.86 556.956
+3097129 90 98155.6 43.8923 1.19596e+06 1508.06 550.356
+3234251 89 91528.1 44.2537 1.10853e+06 1575.31 570.742
+3377443 87 91770.1 45.9663 1.00266e+06 1645.93 562.046
+3526975 86 96395.3 45.2286 1.11976e+06 1718.94 574.814
+3683128 85 94670.6 42.0166 1.17532e+06 1794.98 551.6
+3846194 83 96698.8 45.3045 1.0503e+06 1875.17 576.735
+4016479 82 92975.6 44.3606 1.11365e+06 1958.82 555.61
+4194304 81 97123.5 44.0999 1.17995e+06 2045.23 572.753
+4380002 80 96362.5 46.4486 1.143e+06 2136.4 575.862
+4573921 79 97291.1 44.1858 1.12016e+06 2231.44 566.405
+4776426 77 98142.9 44.4767 1.15795e+06 2330.58 563.026
+4987896 76 96565.8 44.2459 1.17807e+06 2434.24 555.171
+5208729 75 93160 45.3355 1.06285e+06 2542.8 589.373
+5439339 74 96486.5 44.3617 1.1693e+06 2655.58 570.149
+5680159 73 94465.8 44.6944 1.10071e+06 2773.41 582.63
+5931642 72 92402.8 44.6007 1.06297e+06 2897.5 590.806
+6194258 71 93014.1 44.7498 1.07369e+06 3026.07 551.465
+6468501 70 95071.4 45.1187 1.13521e+06 3160.29 547.7
+6754886 69 94565.2 44.4122 1.12191e+06 3300.57 573.768
+7053950 67 96268.7 44.3835 1.12243e+06 3447.21 595.955
+7366255 66 94697 45.5218 1.08126e+06 3600.71 569.5
+7692387 65 95215.4 44.2951 1.10966e+06 3759.97 572.169
+8032959 64 95171.9 44.8602 1.11152e+06 3927.73 567.766
+8388608 64 94093.8 45.5677 1.10409e+06 4101.72 556.062
diff --git a/cpp/src/frequent_items_merge_timing_profile.cpp b/cpp/src/frequent_items_merge_timing_profile.cpp
new file mode 100644
index 0000000..4a3b8ef
--- /dev/null
+++ b/cpp/src/frequent_items_merge_timing_profile.cpp
@@ -0,0 +1,115 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#include <iostream>
+#include <algorithm>
+#include <random>
+#include <chrono>
+#include <sstream>
+
+#include <frequent_items_sketch.hpp>
+
+#include "frequent_items_merge_timing_profile.hpp"
+#include "zipf_distribution.hpp"
+
+namespace datasketches {
+
+void frequent_items_merge_timing_profile::run() {
+ const unsigned lg_min_stream_len = 0;
+ const unsigned lg_max_stream_len = 23;
+ const unsigned ppo = 16;
+
+ const unsigned lg_max_trials = 14;
+ const unsigned lg_min_trials = 4;
+
+ const unsigned lg_max_sketch_size = 10;
+
+ const unsigned zipf_lg_range = 13; // range: 8K values for 1K sketch
+ const double zipf_exponent = 1.1;
+ zipf_distribution zipf(1 << zipf_lg_range, zipf_exponent);
+ const unsigned long long high_bit = 1ULL << 63;
+
+ const size_t num_sketches = 32;
+
+ size_t max_len = 1 << lg_max_stream_len;
+ std::vector<std::string> values(max_len);
+ std::unique_ptr<frequent_items_sketch<std::string>> sketches[num_sketches];
+
+ std::cout << "StreamLen\tTrials\tBuild\tUpdate\tMerge\tMaxErr\tNumItems" << std::endl;
+
+ size_t stream_length = 1 << lg_min_stream_len;
+ while (stream_length <= 1 << lg_max_stream_len) {
+ std::chrono::nanoseconds build_time_ns(0);
+ std::chrono::nanoseconds update_time_ns(0);
+ std::chrono::nanoseconds merge_time_ns(0);
+ unsigned num_items = 0;
+ unsigned max_error = 0;
+
+ const size_t num_trials = get_num_trials(stream_length, lg_min_stream_len, lg_max_stream_len, lg_min_trials, lg_max_trials);
+
+ for (size_t t = 0; t < num_trials; t++) {
+ const auto start_build(std::chrono::high_resolution_clock::now());
+ for (size_t i = 0; i < num_sketches; i++) {
+ sketches[i] = std::unique_ptr<frequent_items_sketch<std::string>>(new frequent_items_sketch<std::string>(lg_max_sketch_size));
+ }
+ frequent_items_sketch<std::string> merge_sketch(lg_max_sketch_size);
+ const auto finish_build(std::chrono::high_resolution_clock::now());
+ build_time_ns += std::chrono::duration_cast<std::chrono::nanoseconds>(finish_build - start_build);
+
+ // prepare values to exclude cost from the update loop
+ // set the highest bit in 64-bit value to make strings longer so we can compare copying and moving better
+ for (size_t i = 0; i < stream_length; i++) values[i] = std::to_string(zipf.sample() | high_bit);
+
+ // spray input evenly across all sketches to be merged
+ const auto start_update(std::chrono::high_resolution_clock::now());
+ size_t i = 0;
+ for (size_t j = 0; j < stream_length; j++) {
+ sketches[i]->update(values[j]);
+ i++;
+ if (i == num_sketches) i = 0;
+ }
+ const auto finish_update(std::chrono::high_resolution_clock::now());
+ update_time_ns += std::chrono::duration_cast<std::chrono::nanoseconds>(finish_update - start_update);
+
+ const auto start_merge(std::chrono::high_resolution_clock::now());
+ for (size_t i = 0; i < num_sketches; i++) {
+ //merge_sketch.merge(*sketches[i]);
+ merge_sketch.merge(std::move(*sketches[i]));
+ }
+ const auto finish_merge(std::chrono::high_resolution_clock::now());
+ merge_time_ns += std::chrono::duration_cast<std::chrono::nanoseconds>(finish_merge - start_merge);
+
+ num_items += merge_sketch.get_num_active_items();
+ max_error += merge_sketch.get_maximum_error();
+ }
+
+ std::cout << stream_length << "\t"
+ << num_trials << "\t"
+ << (double) build_time_ns.count() / num_trials << "\t"
+ << (double) update_time_ns.count() / num_trials / stream_length << "\t"
+ << (double) merge_time_ns.count() / num_trials << "\t"
+ << (double) max_error / num_trials << "\t"
+ << (double) num_items / num_trials
+ << std::endl;
+
+ stream_length = pwr_2_law_next(ppo, stream_length);
+ }
+}
+
+}
diff --git a/cpp/src/frequent_items_merge_timing_profile.hpp b/cpp/src/frequent_items_merge_timing_profile.hpp
new file mode 100644
index 0000000..e8f9cdb
--- /dev/null
+++ b/cpp/src/frequent_items_merge_timing_profile.hpp
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#ifndef FREQUENT_ITEMS_MERGE_TIMING_PROFILE_HPP_
+#define FREQUENT_ITEMS_MERGE_TIMING_PROFILE_HPP_
+
+#include "job_profile.hpp"
+
+namespace datasketches {
+
+class frequent_items_merge_timing_profile: public job_profile {
+public:
+ void run();
+};
+
+}
+
+#endif
diff --git a/cpp/src/main.cpp b/cpp/src/main.cpp
index 3879073..43d5b0d 100644
--- a/cpp/src/main.cpp
+++ b/cpp/src/main.cpp
@@ -34,6 +34,7 @@
#include "kll_merge_timing_profile.hpp"
#include "frequent_items_sketch_timing_profile.hpp"
+#include "frequent_items_merge_timing_profile.hpp"
#include "kll_sketch_accuracy_profile.hpp"
#include "kll_merge_accuracy_profile.hpp"
@@ -69,6 +70,7 @@ int main(int argc, char **argv) {
job_profile::add("kll-merge-timing-float", job_profile_ptr(new kll_merge_timing_profile<float>()));
job_profile::add("kll-merge-timing-string", job_profile_ptr(new kll_merge_timing_profile<std::string>()));
job_profile::add("fi-sketch-timing", job_profile_ptr(new frequent_items_sketch_timing_profile()));
+ job_profile::add("fi-merge-timing", job_profile_ptr(new frequent_items_merge_timing_profile()));
job_profile::add("cpc-sketch-accuracy", job_profile_ptr(new cpc_sketch_accuracy_profile()));
job_profile::add("cpc-union-accuracy", job_profile_ptr(new cpc_union_accuracy_profile()));
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org