diff --git a/Doxyfile b/Doxyfile index 28474ff..80e8dc8 100644 --- a/Doxyfile +++ b/Doxyfile @@ -42,7 +42,7 @@ DOXYFILE_ENCODING = UTF-8 # title of most generated pages and in a few other places. # The default value is: My Project. -PROJECT_NAME = "Brev" +PROJECT_NAME = "digest" # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version diff --git a/README.md b/README.md index b9c92a2..b5b7483 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,14 @@ our general guidelines: adaptive performs at worst about 10% slower than best adaptive64 performs at worst about 100% slower than best +# Contributing +run +```bash +ninja clang-format +ninja clang-tidy +ninja docs +``` + # Benchmark / Tests ```bash meson setup build diff --git a/docs/build.sh b/docs/build.sh new file mode 100644 index 0000000..7b1a22d --- /dev/null +++ b/docs/build.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +if [ -z "${MESON_SOURCE_ROOT}" ]; then + echo "[ERROR] This script can only be ran with meson!" + exit 1 +fi + +set -euo pipefail + +cd "${MESON_SOURCE_ROOT}" +doxygen diff --git a/docs/html/index.html b/docs/html/index.html index 4a1bd32..68b3a4c 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -5,7 +5,7 @@ -Brev: Main Page +digest: Main Page @@ -23,7 +23,7 @@ -
Brev +
digest
@@ -71,7 +71,7 @@
-
Brev Documentation
+
digest Documentation
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 @@ -
Brev +
digest
@@ -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 @@ -
Brev +
digest
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"