From 2b1d08ed25cdb5fdfbc65d3c83da7635d20c5535 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Thu, 24 Mar 2016 15:11:51 +0100 Subject: [PATCH] more granularity in BMH algorighm measurements --- alib2algo/src/stringology/exact/BoyerMooreHorspool.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/alib2algo/src/stringology/exact/BoyerMooreHorspool.cpp b/alib2algo/src/stringology/exact/BoyerMooreHorspool.cpp index 5678acaab7..7cb4981b8b 100644 --- a/alib2algo/src/stringology/exact/BoyerMooreHorspool.cpp +++ b/alib2algo/src/stringology/exact/BoyerMooreHorspool.cpp @@ -13,6 +13,7 @@ #include <alphabet/Symbol.h> #include <map> +#include <measure> namespace stringology { @@ -25,8 +26,12 @@ std::set<unsigned> BoyerMooreHorspool::match(const string::String& subject, cons std::set<unsigned> BoyerMooreHorspool::match(const string::LinearString& string, const string::LinearString& pattern) { std::set<unsigned> occ; + + measurements::start ( "Preprocess", measurements::Type::PREPROCESS ); std::map<alphabet::Symbol, size_t> bcs = BadCharacterShiftTable::bcs(pattern); //NOTE: the subjects alphabet must be a subset or equal to the pattern + measurements::end ( ); + measurements::start ( "Algorithm", measurements::Type::ALGORITHM ); size_t haystack_offset = 0; while(haystack_offset + pattern.getContent().size() <= string.getContent().size()) { size_t i = pattern.getContent().size(); @@ -39,6 +44,8 @@ std::set<unsigned> BoyerMooreHorspool::match(const string::LinearString& string, haystack_offset += bcs[string.getContent()[haystack_offset + pattern.getContent().size() - 1]]; //std::cout << haystack_offset << std::endl; } + measurements::end ( ); + return occ; } -- GitLab