From 38f78df9557b8085d9d72e4012d0cc103b58609d Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Thu, 21 Mar 2019 16:31:53 +0100 Subject: [PATCH] verbose backward string matching algorithms --- alib2algo/src/stringology/exact/BoyerMoore.h | 7 +++++++ alib2algo/src/stringology/exact/BoyerMooreHorspool.h | 5 +++++ alib2algo/src/stringology/exact/QuickSearch.h | 5 +++++ 3 files changed, 17 insertions(+) diff --git a/alib2algo/src/stringology/exact/BoyerMoore.h b/alib2algo/src/stringology/exact/BoyerMoore.h index 344dfce1b1..1fa39fbd56 100644 --- a/alib2algo/src/stringology/exact/BoyerMoore.h +++ b/alib2algo/src/stringology/exact/BoyerMoore.h @@ -17,6 +17,8 @@ #include <string/properties/BadCharacterShiftTable.h> #include <string/properties/GoodSuffixShiftTable.h> +#include <global/GlobalData.h> + namespace stringology { namespace exact { @@ -45,6 +47,11 @@ ext::set<unsigned> BoyerMoore::match(const string::LinearString < SymbolType >& ext::vector<size_t> gss = string::properties::GoodSuffixShiftTable::gss(pattern); measurements::end ( ); + if(common::GlobalData::verbose) { + common::Streams::log << "bcs = " << bcs << std::endl; + common::Streams::log << "gss = " << gss << std::endl; + } + measurements::start ( "Algorithm", measurements::Type::ALGORITHM ); size_t haystack_offset = 0; while(haystack_offset + pattern.getContent().size() <= string.getContent().size()) { diff --git a/alib2algo/src/stringology/exact/BoyerMooreHorspool.h b/alib2algo/src/stringology/exact/BoyerMooreHorspool.h index 972e66b918..18d6fbfbd5 100644 --- a/alib2algo/src/stringology/exact/BoyerMooreHorspool.h +++ b/alib2algo/src/stringology/exact/BoyerMooreHorspool.h @@ -16,6 +16,8 @@ #include <string/properties/BadCharacterShiftTable.h> +#include <global/GlobalData.h> + namespace stringology { namespace exact { @@ -43,6 +45,9 @@ ext::set<unsigned> BoyerMooreHorspool::match(const string::LinearString < Symbol ext::map<SymbolType, size_t> bcs = string::properties::BadCharacterShiftTable::bcs(pattern); //NOTE: the subjects alphabet must be a subset or equal to the pattern measurements::end ( ); + if(common::GlobalData::verbose) + common::Streams::log << "bcs = " << bcs << std::endl; + measurements::start ( "Algorithm", measurements::Type::ALGORITHM ); size_t haystack_offset = 0; while(haystack_offset + pattern.getContent().size() <= string.getContent().size()) { diff --git a/alib2algo/src/stringology/exact/QuickSearch.h b/alib2algo/src/stringology/exact/QuickSearch.h index 5661584958..58b984f266 100644 --- a/alib2algo/src/stringology/exact/QuickSearch.h +++ b/alib2algo/src/stringology/exact/QuickSearch.h @@ -16,6 +16,8 @@ #include <string/properties/QuickSearchBadCharacterShiftTable.h> +#include <global/GlobalData.h> + namespace stringology { namespace exact { @@ -42,6 +44,9 @@ ext::set<unsigned> QuickSearch::match(const string::LinearString < SymbolType >& ext::map<SymbolType, size_t> bcs = string::properties::QuickSearchBadCharacterShiftTable::qsbcs(pattern); //NOTE: the subjects alphabet must be a subset or equal to the pattern measurements::end ( ); + if(common::GlobalData::verbose) + common::Streams::log << "bcs = " << bcs << std::endl; + measurements::start ( "Algorithm", measurements::Type::ALGORITHM ); size_t i = 0; size_t j; -- GitLab