diff --git a/docs/html/md_README.html b/docs/html/md_README.html
index 9e53112..d1a68aa 100644
--- a/docs/html/md_README.html
+++ b/docs/html/md_README.html
@@ -5,7 +5,7 @@
-
Brev: Digest
+
digest: Digest
@@ -23,7 +23,7 @@
-
@@ -123,11 +123,15 @@
adaptive performs at worst about 10% slower than best
adaptive64 performs at worst about 100% slower than best
+Contributing
+run
ninja clang-format
+
ninja clang-tidy
+
ninja docs
+
Benchmark / Tests
meson setup build
cd build && meson compile
-
this will generate proper executables for benchmark/testing
-fix digester array
+ this will generate proper executables for benchmark/testing
diff --git a/docs/html/pages.html b/docs/html/pages.html
index ffce51d..7167bd9 100644
--- a/docs/html/pages.html
+++ b/docs/html/pages.html
@@ -5,7 +5,7 @@
-Brev: Related Pages
+digest: Related Pages
@@ -23,7 +23,7 @@
-
diff --git a/docs/html/search/all_0.js b/docs/html/search/all_0.js
index 3076d80..734e427 100644
--- a/docs/html/search/all_0.js
+++ b/docs/html/search/all_0.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['benchmark_20tests_0',['Benchmark / Tests',['../md_README.html#autotoc_md6',1,'']]]
+ ['benchmark_20tests_0',['Benchmark / Tests',['../md_README.html#autotoc_md7',1,'']]]
];
diff --git a/docs/html/search/all_1.js b/docs/html/search/all_1.js
index d822be1..7488b1c 100644
--- a/docs/html/search/all_1.js
+++ b/docs/html/search/all_1.js
@@ -1,5 +1,6 @@
var searchData=
[
['code_0',['Implementation (Most of the documentation is in the code)',['../md_README.html#autotoc_md1',1,'']]],
- ['correct_20tt_20data_5fstructure_20tt_1',['Selecting the correct <tt>data_structure</tt>',['../md_README.html#autotoc_md5',1,'']]]
+ ['contributing_1',['Contributing',['../md_README.html#autotoc_md6',1,'']]],
+ ['correct_20tt_20data_5fstructure_20tt_2',['Selecting the correct <tt>data_structure</tt>',['../md_README.html#autotoc_md5',1,'']]]
];
diff --git a/docs/html/search/all_8.js b/docs/html/search/all_8.js
index 48fffdb..d885131 100644
--- a/docs/html/search/all_8.js
+++ b/docs/html/search/all_8.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['tests_0',['Benchmark / Tests',['../md_README.html#autotoc_md6',1,'']]],
+ ['tests_0',['Benchmark / Tests',['../md_README.html#autotoc_md7',1,'']]],
['the_20correct_20tt_20data_5fstructure_20tt_1',['Selecting the correct <tt>data_structure</tt>',['../md_README.html#autotoc_md5',1,'']]],
['the_20documentation_20is_20in_20the_20code_2',['Implementation (Most of the documentation is in the code)',['../md_README.html#autotoc_md1',1,'']]],
['tt_20data_5fstructure_20tt_3',['Selecting the correct <tt>data_structure</tt>',['../md_README.html#autotoc_md5',1,'']]]
diff --git a/docs/latex/md_README.tex b/docs/latex/md_README.tex
index 71c97b0..23bf0fe 100644
--- a/docs/latex/md_README.tex
+++ b/docs/latex/md_README.tex
@@ -57,13 +57,19 @@ \chapter{Digest}
\end{DoxyItemize}
adaptive performs at worst about 10\% slower than best ~\newline
- adaptive64 performs at worst about 100\% slower than best\hypertarget{md_README_autotoc_md6}{}\doxysection{\texorpdfstring{Benchmark / Tests}{Benchmark / Tests}}\label{md_README_autotoc_md6}
+ adaptive64 performs at worst about 100\% slower than best\hypertarget{md_README_autotoc_md6}{}\doxysection{\texorpdfstring{Contributing}{Contributing}}\label{md_README_autotoc_md6}
+run
+\begin{DoxyCode}{0}
+\DoxyCodeLine{ninja\ clang-\/format}
+\DoxyCodeLine{ninja\ clang-\/tidy}
+\DoxyCodeLine{ninja\ docs}
+
+\end{DoxyCode}
+\hypertarget{md_README_autotoc_md7}{}\doxysection{\texorpdfstring{Benchmark / Tests}{Benchmark / Tests}}\label{md_README_autotoc_md7}
\begin{DoxyCode}{0}
\DoxyCodeLine{meson\ setup\ build}
\DoxyCodeLine{cd\ build\ \&\&\ meson\ compile}
\end{DoxyCode}
- this will generate proper executables for benchmark/testing
-
-fix digester array
\ No newline at end of file
+ this will generate proper executables for benchmark/testing
\ No newline at end of file
diff --git a/docs/latex/refman.tex b/docs/latex/refman.tex
index 4e43248..bbfa808 100644
--- a/docs/latex/refman.tex
+++ b/docs/latex/refman.tex
@@ -156,7 +156,7 @@
linkcolor=blue,%
citecolor=blue,%
unicode,%
- pdftitle={Brev},%
+ pdftitle={digest},%
pdfsubject={}%
}
% Custom commands used by the header
@@ -193,7 +193,7 @@
\begin{titlepage}
\vspace*{7cm}
\begin{center}%
- {\Large Brev}\\
+ {\Large digest}\\
\vspace*{1cm}
{\large Generated by Doxygen 1.10.0}\\
\end{center}
diff --git a/include/digest/digester.hpp b/include/digest/digester.hpp
index 6dbeb9d..9e2b541 100644
--- a/include/digest/digester.hpp
+++ b/include/digest/digester.hpp
@@ -1,12 +1,10 @@
#ifndef DIGESTER_HPP
#define DIGESTER_HPP
-#include
#include
#include
#include
#include
-#include
namespace digest {
@@ -232,265 +230,25 @@ template class Digester {
const char *get_sequence() { return seq; }
protected:
- std::array actg = {
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0, // all in hex:
- 0,
- 1,
- 0,
- 1,
- 0,
- 0,
- 0,
- 1,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0, // 41 = 'A', 43 = 'C', 47
- // = 'G'
- 0,
- 0,
- 0,
- 0,
- 1,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0, // 54 = 'T'
- 0,
- 1,
- 0,
- 1,
- 0,
- 0,
- 0,
- 1,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0, // 61 = 'a', 63 = 'c',
- // 67 = 'g'
- 0,
- 0,
- 0,
- 0,
- 1,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0, // 74 = 't'
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
+ // 0x41 = 'A', 0x43 = 'C', 0x47 = 'G' 0x54 = 'T'
+ // 0x61 = 'a', 0x63 = 'c', 0x67 = 'g' 0x74 = 't'
+ std::array actg{
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // NOLINT
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // NOLINT
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // NOLINT
+ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, // NOLINT
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // NOLINT
+ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, // NOLINT
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // NOLINT
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // NOLINT
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // NOLINT
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // NOLINT
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // NOLINT
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // NOLINT
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // NOLINT
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // NOLINT
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // NOLINT
};
/**
diff --git a/tests/approximation/approx.py b/tests/approximation/approx.py
new file mode 100644
index 0000000..b83dd42
--- /dev/null
+++ b/tests/approximation/approx.py
@@ -0,0 +1,22 @@
+from fractions import Fraction
+
+# 1/k + 2/k + 3/k + ... + k/k
+def lb0(k):
+ assert k > 0
+ return Fraction(k+1,2)
+
+# 1/k + 2/(k+1) + 3/(k+2) + ... + k/(2k-1)
+# linear with slope approaching 1-log(2)
+def lb1(k):
+ assert k > 0
+ return sum(Fraction(i+1,k+i) for i in range(k))
+
+# add
+def lb2(k):
+ a = lb1(k)
+
+
+from itertools import count
+# from math import log
+for k in count(1,100):
+ print(k, float(lb0(k) / lb1(k)))
diff --git a/tests/bench/benchmark.cpp b/tests/bench/benchmark.cpp
index 9d6a404..68c8ce0 100644
--- a/tests/bench/benchmark.cpp
+++ b/tests/bench/benchmark.cpp
@@ -150,7 +150,7 @@ static void BM_ThreadMod(benchmark::State &state) {
}
}
BENCHMARK(BM_ThreadMod)
- ->Args({1})
+ ->Args({1})
->ArgsProduct({benchmark::CreateDenseRange(2, 64, 2)})
->UseRealTime()
->Iterations(16);
@@ -169,7 +169,7 @@ static void BM_ThreadWind(benchmark::State &state) {
}
}
BENCHMARK(BM_ThreadWind)
- ->Args({1})
+ ->Args({1})
->ArgsProduct({benchmark::CreateDenseRange(2, 64, 2)})
->UseRealTime()
->Iterations(16);
@@ -188,7 +188,7 @@ static void BM_ThreadSync(benchmark::State &state) {
}
}
BENCHMARK(BM_ThreadSync)
- ->Args({1})
+ ->Args({1})
->ArgsProduct({benchmark::CreateDenseRange(2, 64, 2)})
->UseRealTime()
->Iterations(16);
diff --git a/tests/bench/out2.txt b/tests/bench/out2.txt
index 8ba3615..9958239 100644
--- a/tests/bench/out2.txt
+++ b/tests/bench/out2.txt
@@ -1,42 +1,126 @@
-------------------------------------------------------------------------------------
-Benchmark Time CPU Iterations
-------------------------------------------------------------------------------------
-BM_NtHashRoll/4/iterations:16 525823563 ns 523864037 ns 16
-BM_NtHashRoll/15/iterations:16 540320933 ns 538108657 ns 16
-BM_NtHashRoll/31/iterations:16 595853493 ns 593640859 ns 16
-BM_ModMinRoll/4/iterations:16 808201924 ns 804918373 ns 16
-BM_ModMinRoll/15/iterations:16 781303301 ns 778000266 ns 16
-BM_ModMinRoll/31/iterations:16 872530580 ns 868955697 ns 16
-BM_ModMinRoll/16/iterations:16 781739101 ns 778525982 ns 16
-BM_WindowMinRoll/4/11/iterations:16 1094515920 ns 1090060115 ns 16
-BM_WindowMinRoll/15/10/iterations:16 1082492590 ns 1077808452 ns 16
-BM_WindowMinRoll/31/15/iterations:16 1130982667 ns 1126383167 ns 16
-BM_WindowMinRoll/16/16/iterations:16 1017281443 ns 1013186464 ns 16
-BM_SyncmerRoll/4/12/iterations:16 1157861516 ns 1152829354 ns 16
-BM_SyncmerRoll/15/11/iterations:16 1162637159 ns 1157592076 ns 16
-BM_SyncmerRoll/31/16/iterations:16 1192278236 ns 1186885724 ns 16
-BM_SyncmerRoll/16/16/iterations:16 1105144963 ns 1100258180 ns 16
-BM_ThreadMod/1/iterations:16/real_time 762733087 ns 272686 ns 16
-BM_ThreadMod/2/iterations:16/real_time 381279469 ns 175064 ns 16
-BM_ThreadMod/4/iterations:16/real_time 195192158 ns 340592 ns 16
-BM_ThreadMod/8/iterations:16/real_time 109710589 ns 782561 ns 16
-BM_ThreadMod/16/iterations:16/real_time 76397777 ns 1575984 ns 16
-BM_ThreadMod/32/iterations:16/real_time 45323804 ns 2640770 ns 16
-BM_ThreadMod/64/iterations:16/real_time 42301625 ns 4821215 ns 16
-BM_ThreadMod/128/iterations:16/real_time 44003755 ns 9971386 ns 16
-BM_ThreadWind/1/iterations:16/real_time 1040755227 ns 2345807 ns 16
-BM_ThreadWind/2/iterations:16/real_time 510378554 ns 119358 ns 16
-BM_ThreadWind/4/iterations:16/real_time 251954630 ns 149401 ns 16
-BM_ThreadWind/8/iterations:16/real_time 138267666 ns 369747 ns 16
-BM_ThreadWind/16/iterations:16/real_time 94592348 ns 955399 ns 16
-BM_ThreadWind/32/iterations:16/real_time 58459759 ns 1969980 ns 16
-BM_ThreadWind/64/iterations:16/real_time 52992120 ns 4027659 ns 16
-BM_ThreadWind/128/iterations:16/real_time 54682508 ns 9089638 ns 16
-BM_ThreadSync/1/iterations:16/real_time 1119603097 ns 2377927 ns 16
-BM_ThreadSync/2/iterations:16/real_time 550888211 ns 137407 ns 16
-BM_ThreadSync/4/iterations:16/real_time 273458973 ns 208040 ns 16
-BM_ThreadSync/8/iterations:16/real_time 147253394 ns 471453 ns 16
-BM_ThreadSync/16/iterations:16/real_time 90406746 ns 990708 ns 16
-BM_ThreadSync/32/iterations:16/real_time 61018780 ns 1851053 ns 16
-BM_ThreadSync/64/iterations:16/real_time 51618010 ns 4109694 ns 16
-BM_ThreadSync/128/iterations:16/real_time 49648151 ns 7804714 ns 16
+2024-03-11T15:48:37-04:00
+Running ./bench
+Run on (32 X 2793.44 MHz CPU s)
+CPU Caches:
+ L1 Data 32 KiB (x32)
+ L1 Instruction 32 KiB (x32)
+ L2 Unified 4096 KiB (x32)
+ L3 Unified 16384 KiB (x1)
+Load Average: 2.04, 0.89, 0.37
+-----------------------------------------------------------------------------------
+Benchmark Time CPU Iterations
+-----------------------------------------------------------------------------------
+BM_NtHashRoll/4/iterations:16 488326550 ns 486660987 ns 16
+BM_NtHashRoll/15/iterations:16 488269761 ns 486605096 ns 16
+BM_NtHashRoll/31/iterations:16 560209170 ns 558265316 ns 16
+BM_ModMinRoll/4/iterations:16 792274415 ns 789088142 ns 16
+BM_ModMinRoll/15/iterations:16 769873828 ns 767093610 ns 16
+BM_ModMinRoll/31/iterations:16 864220545 ns 860623912 ns 16
+BM_ModMinRoll/16/iterations:16 768140763 ns 764840436 ns 16
+BM_WindowMinRoll/4/11/iterations:16 1082708567 ns 1077449362 ns 16
+BM_WindowMinRoll/15/10/iterations:16 1092122287 ns 1087261841 ns 16
+BM_WindowMinRoll/31/15/iterations:16 1133436874 ns 1128456482 ns 16
+BM_WindowMinRoll/16/16/iterations:16 1013972670 ns 1010269686 ns 16
+BM_SyncmerRoll/4/12/iterations:16 1170857653 ns 1166238303 ns 16
+BM_SyncmerRoll/15/11/iterations:16 1159458309 ns 1154858550 ns 16
+BM_SyncmerRoll/31/16/iterations:16 1193101600 ns 1188518229 ns 16
+BM_SyncmerRoll/16/16/iterations:16 1106454849 ns 1102663873 ns 16
+BM_ThreadMod/1/iterations:16/real_time 764028639 ns 124947 ns 16
+BM_ThreadMod/2/iterations:16/real_time 388342336 ns 94318 ns 16
+BM_ThreadMod/4/iterations:16/real_time 193518102 ns 204730 ns 16
+BM_ThreadMod/6/iterations:16/real_time 131670877 ns 430985 ns 16
+BM_ThreadMod/8/iterations:16/real_time 99760935 ns 644856 ns 16
+BM_ThreadMod/10/iterations:16/real_time 84165841 ns 833139 ns 16
+BM_ThreadMod/12/iterations:16/real_time 79542249 ns 951422 ns 16
+BM_ThreadMod/14/iterations:16/real_time 71483463 ns 1309682 ns 16
+BM_ThreadMod/16/iterations:16/real_time 74585393 ns 1451701 ns 16
+BM_ThreadMod/18/iterations:16/real_time 68744779 ns 1714248 ns 16
+BM_ThreadMod/20/iterations:16/real_time 67862168 ns 1916493 ns 16
+BM_ThreadMod/22/iterations:16/real_time 63237444 ns 2095228 ns 16
+BM_ThreadMod/24/iterations:16/real_time 57962388 ns 2122806 ns 16
+BM_ThreadMod/26/iterations:16/real_time 53645268 ns 2038030 ns 16
+BM_ThreadMod/28/iterations:16/real_time 49566656 ns 2432564 ns 16
+BM_ThreadMod/30/iterations:16/real_time 47056168 ns 2701114 ns 16
+BM_ThreadMod/32/iterations:16/real_time 44212237 ns 2011024 ns 16
+BM_ThreadMod/34/iterations:16/real_time 41924730 ns 2041936 ns 16
+BM_ThreadMod/36/iterations:16/real_time 46700969 ns 2110182 ns 16
+BM_ThreadMod/38/iterations:16/real_time 44872850 ns 2249445 ns 16
+BM_ThreadMod/40/iterations:16/real_time 42833075 ns 2337149 ns 16
+BM_ThreadMod/42/iterations:16/real_time 43032512 ns 2521089 ns 16
+BM_ThreadMod/44/iterations:16/real_time 41206881 ns 2487833 ns 16
+BM_ThreadMod/46/iterations:16/real_time 40467501 ns 2420205 ns 16
+BM_ThreadMod/48/iterations:16/real_time 38744494 ns 2624925 ns 16
+BM_ThreadMod/50/iterations:16/real_time 39107397 ns 2894651 ns 16
+BM_ThreadMod/52/iterations:16/real_time 37722602 ns 2873192 ns 16
+BM_ThreadMod/54/iterations:16/real_time 36166370 ns 2955721 ns 16
+BM_ThreadMod/56/iterations:16/real_time 36548391 ns 3064014 ns 16
+BM_ThreadMod/58/iterations:16/real_time 35230264 ns 3091536 ns 16
+BM_ThreadMod/60/iterations:16/real_time 35514876 ns 3255670 ns 16
+BM_ThreadMod/62/iterations:16/real_time 34256443 ns 3102645 ns 16
+BM_ThreadMod/64/iterations:16/real_time 34638628 ns 3288292 ns 16
+BM_ThreadWind/1/iterations:16/real_time 1029524937 ns 1726088 ns 16
+BM_ThreadWind/2/iterations:16/real_time 500829354 ns 164938 ns 16
+BM_ThreadWind/4/iterations:16/real_time 256929815 ns 231248 ns 16
+BM_ThreadWind/6/iterations:16/real_time 168954000 ns 442592 ns 16
+BM_ThreadWind/8/iterations:16/real_time 135348111 ns 536353 ns 16
+BM_ThreadWind/10/iterations:16/real_time 105143383 ns 664207 ns 16
+BM_ThreadWind/12/iterations:16/real_time 92448100 ns 817020 ns 16
+BM_ThreadWind/14/iterations:16/real_time 80920309 ns 954127 ns 16
+BM_ThreadWind/16/iterations:16/real_time 79124823 ns 1087721 ns 16
+BM_ThreadWind/18/iterations:16/real_time 77136680 ns 1138756 ns 16
+BM_ThreadWind/20/iterations:16/real_time 68556592 ns 1687913 ns 16
+BM_ThreadWind/22/iterations:16/real_time 62077060 ns 1741471 ns 16
+BM_ThreadWind/24/iterations:16/real_time 60553491 ns 1798480 ns 16
+BM_ThreadWind/26/iterations:16/real_time 59648231 ns 1906929 ns 16
+BM_ThreadWind/28/iterations:16/real_time 51442400 ns 2314333 ns 16
+BM_ThreadWind/30/iterations:16/real_time 54892242 ns 2424885 ns 16
+BM_ThreadWind/32/iterations:16/real_time 51958039 ns 1885105 ns 16
+BM_ThreadWind/34/iterations:16/real_time 52255556 ns 2006208 ns 16
+BM_ThreadWind/36/iterations:16/real_time 54530889 ns 2155146 ns 16
+BM_ThreadWind/38/iterations:16/real_time 52313820 ns 2391695 ns 16
+BM_ThreadWind/40/iterations:16/real_time 48047781 ns 2428929 ns 16
+BM_ThreadWind/42/iterations:16/real_time 50035745 ns 2505153 ns 16
+BM_ThreadWind/44/iterations:16/real_time 44214442 ns 2745762 ns 16
+BM_ThreadWind/46/iterations:16/real_time 43091133 ns 2816743 ns 16
+BM_ThreadWind/48/iterations:16/real_time 42087764 ns 2994046 ns 16
+BM_ThreadWind/50/iterations:16/real_time 49268201 ns 3043427 ns 16
+BM_ThreadWind/52/iterations:16/real_time 43601468 ns 3029398 ns 16
+BM_ThreadWind/54/iterations:16/real_time 42855129 ns 3149652 ns 16
+BM_ThreadWind/56/iterations:16/real_time 44070929 ns 3216588 ns 16
+BM_ThreadWind/58/iterations:16/real_time 43900147 ns 3213260 ns 16
+BM_ThreadWind/60/iterations:16/real_time 44766292 ns 3513169 ns 16
+BM_ThreadWind/62/iterations:16/real_time 44985130 ns 3431792 ns 16
+BM_ThreadWind/64/iterations:16/real_time 37458062 ns 3471601 ns 16
+BM_ThreadSync/1/iterations:16/real_time 1132117122 ns 3240816 ns 16
+BM_ThreadSync/2/iterations:16/real_time 557052717 ns 188632 ns 16
+BM_ThreadSync/4/iterations:16/real_time 277482554 ns 234502 ns 16
+BM_ThreadSync/6/iterations:16/real_time 183979556 ns 374984 ns 16
+BM_ThreadSync/8/iterations:16/real_time 143759161 ns 544724 ns 16
+BM_ThreadSync/10/iterations:16/real_time 115702257 ns 660451 ns 16
+BM_ThreadSync/12/iterations:16/real_time 100495622 ns 828676 ns 16
+BM_ThreadSync/14/iterations:16/real_time 86859941 ns 937002 ns 16
+BM_ThreadSync/16/iterations:16/real_time 69723710 ns 1192133 ns 16
+BM_ThreadSync/18/iterations:16/real_time 72101459 ns 1362785 ns 16
+BM_ThreadSync/20/iterations:16/real_time 77400818 ns 1260391 ns 16
+BM_ThreadSync/22/iterations:16/real_time 74080870 ns 1643245 ns 16
+BM_ThreadSync/24/iterations:16/real_time 67312166 ns 1526794 ns 16
+BM_ThreadSync/26/iterations:16/real_time 67782298 ns 2006863 ns 16
+BM_ThreadSync/28/iterations:16/real_time 60264438 ns 2253472 ns 16
+BM_ThreadSync/30/iterations:16/real_time 61887562 ns 2865193 ns 16
+BM_ThreadSync/32/iterations:16/real_time 49787298 ns 1938137 ns 16
+BM_ThreadSync/34/iterations:16/real_time 56919053 ns 2124627 ns 16
+BM_ThreadSync/36/iterations:16/real_time 59000820 ns 2214320 ns 16
+BM_ThreadSync/38/iterations:16/real_time 55029631 ns 2304321 ns 16
+BM_ThreadSync/40/iterations:16/real_time 53047150 ns 2421898 ns 16
+BM_ThreadSync/42/iterations:16/real_time 52601278 ns 2454518 ns 16
+BM_ThreadSync/44/iterations:16/real_time 52687958 ns 2603747 ns 16
+BM_ThreadSync/46/iterations:16/real_time 47781050 ns 2932369 ns 16
+BM_ThreadSync/48/iterations:16/real_time 49009547 ns 2802805 ns 16
+BM_ThreadSync/50/iterations:16/real_time 46899319 ns 3082350 ns 16
+BM_ThreadSync/52/iterations:16/real_time 47796413 ns 3215932 ns 16
+BM_ThreadSync/54/iterations:16/real_time 46912536 ns 3147312 ns 16
+BM_ThreadSync/56/iterations:16/real_time 46369061 ns 3360936 ns 16
+BM_ThreadSync/58/iterations:16/real_time 46642005 ns 3259197 ns 16
+BM_ThreadSync/60/iterations:16/real_time 46853945 ns 3293540 ns 16
+BM_ThreadSync/62/iterations:16/real_time 46114385 ns 3417827 ns 16
+BM_ThreadSync/64/iterations:16/real_time 47715366 ns 3431074 ns 16
diff --git a/tests/test/test.cpp b/tests/test/test.cpp
index cd22826..15bd800 100644
--- a/tests/test/test.cpp
+++ b/tests/test/test.cpp
@@ -1,4 +1,3 @@
-// #include "nthash.hpp"
#include "digest/data_structure.hpp"
#include "digest/mod_minimizer.hpp"
#include "digest/syncmer.hpp"