From 5cb7ac755bcb367f1f2908af3b14749020e479ec Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Tue, 6 Dec 2016 09:13:55 +0100 Subject: [PATCH] move tree properties comput. algorithms elsewhere --- aarbology2/src/aarbology.cpp | 4 +-- .../src/arbology/exact/BoyerMooreHorspool.cpp | 16 ++++++------ ...neUsingBadCharacterShiftAndBorderArray.cpp | 18 ++++++------- .../ExactNonlinearTreePatternAutomaton.cpp | 4 +-- .../src/arbology/exact/ExactPatternMatch.cpp | 18 ++++++------- .../exact/ExactPatternMatchingAutomaton.cpp | 4 +-- .../src/arbology/exact/KnuthMorrisPratt.cpp | 12 ++++----- .../exact/ReversedBoyerMooreHorspool.cpp | 26 +++++++++---------- .../src/arbology/transform/BeginToEndIndex.h | 6 ++--- .../properties}/BadCharacterShiftTable.cpp | 8 +++--- .../properties}/BadCharacterShiftTable.h | 8 +++--- .../properties}/BorderArrayNaive.cpp | 8 +++--- .../properties}/BorderArrayNaive.h | 8 +++--- .../properties}/ExactSubtreeRepeatsNaive.cpp | 8 +++--- .../properties}/ExactSubtreeRepeatsNaive.h | 8 +++--- .../ReversedBadCharacterShiftTable.cpp | 8 +++--- .../ReversedBadCharacterShiftTable.h | 8 +++--- .../properties}/SubtreeJumpTable.cpp | 8 +++--- .../properties}/SubtreeJumpTable.h | 8 +++--- 19 files changed, 94 insertions(+), 94 deletions(-) rename alib2algo/src/{arbology/exact => tree/properties}/BadCharacterShiftTable.cpp (90%) rename alib2algo/src/{arbology/exact => tree/properties}/BadCharacterShiftTable.h (97%) rename alib2algo/src/{arbology/exact => tree/properties}/BorderArrayNaive.cpp (86%) rename alib2algo/src/{arbology/exact => tree/properties}/BorderArrayNaive.h (98%) rename alib2algo/src/{arbology/exact => tree/properties}/ExactSubtreeRepeatsNaive.cpp (98%) rename alib2algo/src/{arbology/exact => tree/properties}/ExactSubtreeRepeatsNaive.h (95%) rename alib2algo/src/{arbology/exact => tree/properties}/ReversedBadCharacterShiftTable.cpp (98%) rename alib2algo/src/{arbology/exact => tree/properties}/ReversedBadCharacterShiftTable.h (93%) rename alib2algo/src/{arbology/exact => tree/properties}/SubtreeJumpTable.cpp (90%) rename alib2algo/src/{arbology/exact => tree/properties}/SubtreeJumpTable.h (97%) diff --git a/aarbology2/src/aarbology.cpp b/aarbology2/src/aarbology.cpp index db0043ca7f..b9dd5e1681 100644 --- a/aarbology2/src/aarbology.cpp +++ b/aarbology2/src/aarbology.cpp @@ -28,7 +28,7 @@ #include <arbology/exact/ExactSubtreeAutomaton.h> #include <arbology/exact/ExactTreePatternAutomaton.h> #include <arbology/exact/ExactNonlinearTreePatternAutomaton.h> -#include <arbology/exact/ExactSubtreeRepeatsNaive.h> +#include <tree/properties/ExactSubtreeRepeatsNaive.h> #include <arbology/transform/BeginToEndIndex.h> int main ( int argc, char * argv[] ) { @@ -246,7 +246,7 @@ int main ( int argc, char * argv[] ) { measurements::end ( ); measurements::start ( "Algorithm", measurements::Type::MAIN ); - tree::Tree res = arbology::exact::ExactSubtreeRepeatsNaive::repeats ( subject ); + tree::Tree res = tree::properties::ExactSubtreeRepeatsNaive::repeats ( subject ); measurements::end ( ); measurements::start ( "Output write", measurements::Type::AUXILIARY ); diff --git a/alib2algo/src/arbology/exact/BoyerMooreHorspool.cpp b/alib2algo/src/arbology/exact/BoyerMooreHorspool.cpp index 90d4d1f7ea..2df5634ce4 100644 --- a/alib2algo/src/arbology/exact/BoyerMooreHorspool.cpp +++ b/alib2algo/src/arbology/exact/BoyerMooreHorspool.cpp @@ -6,9 +6,9 @@ */ #include "BoyerMooreHorspool.h" -#include "BadCharacterShiftTable.h" -#include "SubtreeJumpTable.h" -#include "ExactSubtreeRepeatsNaive.h" +#include <tree/properties/BadCharacterShiftTable.h> +#include <tree/properties/SubtreeJumpTable.h> +#include <tree/properties/ExactSubtreeRepeatsNaive.h> #include <tree/Tree.h> #include <tree/ranked/PrefixRankedBarTree.h> @@ -34,8 +34,8 @@ auto BoyerMooreHorspoolPrefixRankedBarTreePrefixRankedBarTree = BoyerMooreHorspo std::set < unsigned > BoyerMooreHorspool::match ( const tree::PrefixRankedBarTree < > & subject, const tree::PrefixRankedBarPattern < > & pattern ) { std::set < unsigned > occ; - std::map < std::ranked_symbol < >, size_t > bcs = BadCharacterShiftTable::bcs ( pattern ); //NOTE: the subjects alphabet must be a subset or equal to the pattern - std::vector < int > subjectSubtreeJumpTable = SubtreeJumpTable::compute ( subject ); + std::map < std::ranked_symbol < >, size_t > bcs = tree::properties::BadCharacterShiftTable::bcs ( pattern ); //NOTE: the subjects alphabet must be a subset or equal to the pattern + std::vector < int > subjectSubtreeJumpTable = tree::properties::SubtreeJumpTable::compute ( subject ); // index to the subject unsigned i = 0; @@ -77,11 +77,11 @@ auto BoyerMooreHorspoolPrefixRankedBarTreePrefixRankedBarPattern = BoyerMooreHor std::set < unsigned > BoyerMooreHorspool::match ( const tree::PrefixRankedBarTree < > & subject, const tree::PrefixRankedBarNonlinearPattern < > & pattern ) { std::set < unsigned > occ; - std::map < std::ranked_symbol < >, size_t > bcs = BadCharacterShiftTable::bcs ( pattern ); //NOTE: the subjects alphabet must be a subset or equal to the pattern - std::vector < int > subjectSubtreeJumpTable = SubtreeJumpTable::compute ( subject ); + std::map < std::ranked_symbol < >, size_t > bcs = tree::properties::BadCharacterShiftTable::bcs ( pattern ); //NOTE: the subjects alphabet must be a subset or equal to the pattern + std::vector < int > subjectSubtreeJumpTable = tree::properties::SubtreeJumpTable::compute ( subject ); std::map < std::ranked_symbol < >, alphabet::Symbol > variablesSetting; - tree::PrefixRankedBarTree < > repeats = ExactSubtreeRepeatsNaive::repeats ( subject ); + tree::PrefixRankedBarTree < > repeats = tree::properties::ExactSubtreeRepeatsNaive::repeats ( subject ); // index to the subject unsigned i = 0; diff --git a/alib2algo/src/arbology/exact/DeadZoneUsingBadCharacterShiftAndBorderArray.cpp b/alib2algo/src/arbology/exact/DeadZoneUsingBadCharacterShiftAndBorderArray.cpp index e7ceb02e94..436381fbdf 100644 --- a/alib2algo/src/arbology/exact/DeadZoneUsingBadCharacterShiftAndBorderArray.cpp +++ b/alib2algo/src/arbology/exact/DeadZoneUsingBadCharacterShiftAndBorderArray.cpp @@ -6,9 +6,9 @@ */ #include "DeadZoneUsingBadCharacterShiftAndBorderArray.h" -#include "ReversedBadCharacterShiftTable.h" -#include "BorderArrayNaive.h" -#include "SubtreeJumpTable.h" +#include <tree/properties/ReversedBadCharacterShiftTable.h> +#include <tree/properties/BorderArrayNaive.h> +#include <tree/properties/SubtreeJumpTable.h> #include <tree/Tree.h> #include <tree/ranked/PrefixRankedBarTree.h> @@ -35,9 +35,9 @@ auto DeadZoneUsingBadCharacterShiftAndBorderArrayPrefixRankedBarTreePrefixRanked std::set < unsigned > DeadZoneUsingBadCharacterShiftAndBorderArray::match ( const tree::PrefixRankedBarTree < > & subject, const tree::PrefixRankedBarPattern < > & pattern ) { std::set < unsigned > occ; - std::map < std::ranked_symbol < >, size_t > bbcs = ReversedBadCharacterShiftTable::bcs ( pattern ); // NOTE: the subjects alphabet must be a subset or equal to the pattern - std::vector < size_t > fba = BorderArrayNaive::ba ( pattern ); - std::vector < int > subjectSubtreeJumpTable = SubtreeJumpTable::compute ( subject ); + std::map < std::ranked_symbol < >, size_t > bbcs = tree::properties::ReversedBadCharacterShiftTable::bcs ( pattern ); // NOTE: the subjects alphabet must be a subset or equal to the pattern + std::vector < size_t > fba = tree::properties::BorderArrayNaive::ba ( pattern ); + std::vector < int > subjectSubtreeJumpTable = tree::properties::SubtreeJumpTable::compute ( subject ); match_rec ( occ, subject, pattern, fba, bbcs, subjectSubtreeJumpTable, 0, subject.getContent ( ).size ( ) - pattern.getContent ( ).size ( ) + 1 ); return occ; @@ -85,9 +85,9 @@ auto DeadZoneUsingBadCharacterShiftAndBorderArrayPrefixRankedTreePrefixRankedTre std::set < unsigned > DeadZoneUsingBadCharacterShiftAndBorderArray::match ( const tree::PrefixRankedTree < > & subject, const tree::PrefixRankedPattern < > & pattern ) { std::set < unsigned > occ; - std::map < std::ranked_symbol < >, size_t > bbcs = ReversedBadCharacterShiftTable::bcs ( pattern ); // NOTE: the subjects alphabet must be a subset or equal to the pattern - std::vector < size_t > fba = BorderArrayNaive::ba ( pattern ); - std::vector < int > subjectSubtreeJumpTable = SubtreeJumpTable::compute ( subject ); + std::map < std::ranked_symbol < >, size_t > bbcs = tree::properties::ReversedBadCharacterShiftTable::bcs ( pattern ); // NOTE: the subjects alphabet must be a subset or equal to the pattern + std::vector < size_t > fba = tree::properties::BorderArrayNaive::ba ( pattern ); + std::vector < int > subjectSubtreeJumpTable = tree::properties::SubtreeJumpTable::compute ( subject ); match_rec ( occ, subject, pattern, fba, bbcs, subjectSubtreeJumpTable, 0, subject.getContent ( ).size ( ) - pattern.getContent ( ).size ( ) + 1 ); return occ; diff --git a/alib2algo/src/arbology/exact/ExactNonlinearTreePatternAutomaton.cpp b/alib2algo/src/arbology/exact/ExactNonlinearTreePatternAutomaton.cpp index 46331981f9..f082bec2fd 100644 --- a/alib2algo/src/arbology/exact/ExactNonlinearTreePatternAutomaton.cpp +++ b/alib2algo/src/arbology/exact/ExactNonlinearTreePatternAutomaton.cpp @@ -11,7 +11,7 @@ #include <automaton/Automaton.h> #include <automaton/PDA/InputDrivenNPDA.h> -#include "ExactSubtreeRepeatsNaive.h" +#include <tree/properties/ExactSubtreeRepeatsNaive.h> #include <deque> #include <alphabet/RankedSymbol.h> @@ -62,7 +62,7 @@ automaton::InputDrivenNPDA < > ExactNonlinearTreePatternAutomaton::constructInte alphabet::Symbol S = alphabet::symbolFrom ( 'S' ); automaton::InputDrivenNPDA < > res ( label::labelFrom ( 0 ), S ); - tree::PrefixRankedTree < > repeats = ExactSubtreeRepeatsNaive::repeats ( tree ); + tree::PrefixRankedTree < > repeats = tree::properties::ExactSubtreeRepeatsNaive::repeats ( tree ); std::map < alphabet::Symbol, unsigned > repeatsToIds; int maxId = 0; diff --git a/alib2algo/src/arbology/exact/ExactPatternMatch.cpp b/alib2algo/src/arbology/exact/ExactPatternMatch.cpp index 1d7b5f91a2..47f61b8408 100644 --- a/alib2algo/src/arbology/exact/ExactPatternMatch.cpp +++ b/alib2algo/src/arbology/exact/ExactPatternMatch.cpp @@ -17,8 +17,8 @@ #include <tree/ranked/PrefixRankedBarNonlinearPattern.h> #include <tree/unranked/UnrankedTree.h> #include <tree/unranked/UnrankedPattern.h> -#include "SubtreeJumpTable.h" -#include "ExactSubtreeRepeatsNaive.h" +#include <tree/properties/SubtreeJumpTable.h> +#include <tree/properties/ExactSubtreeRepeatsNaive.h> #include <deque> #include <foreach> @@ -131,7 +131,7 @@ std::set < unsigned > ExactPatternMatch::match ( const tree::RankedTree < > & su unsigned i = 0; std::set < unsigned > occ; - tree::RankedTree < > repeats = ExactSubtreeRepeatsNaive::repeats ( subject ); + tree::RankedTree < > repeats = tree::properties::ExactSubtreeRepeatsNaive::repeats ( subject ); matchInternal ( i, occ, subject.getContent ( ), pattern.getContent ( ), pattern.getSubtreeWildcard ( ), pattern.getNonlinearVariables ( ), repeats.getContent ( ) ); return occ; @@ -140,7 +140,7 @@ std::set < unsigned > ExactPatternMatch::match ( const tree::RankedTree < > & su auto ExactPatternMatchRankedNonlinearPattern = ExactPatternMatch::RegistratorWrapper < std::set < unsigned >, tree::RankedTree < >, tree::RankedNonlinearPattern < > > ( ExactPatternMatch::match ); std::set < unsigned > ExactPatternMatch::match ( const tree::PrefixRankedTree < > & subject, const tree::PrefixRankedPattern < > & pattern ) { - std::vector < int > subjectSubtreeJumpTable = SubtreeJumpTable::compute ( subject ); + std::vector < int > subjectSubtreeJumpTable = tree::properties::SubtreeJumpTable::compute ( subject ); std::set < unsigned > occ; @@ -167,10 +167,10 @@ std::set < unsigned > ExactPatternMatch::match ( const tree::PrefixRankedTree < auto ExactPatternMatchPrefixRankedPattern = ExactPatternMatch::RegistratorWrapper < std::set < unsigned >, tree::PrefixRankedTree < >, tree::PrefixRankedPattern < > > ( ExactPatternMatch::match ); std::set < unsigned > ExactPatternMatch::match ( const tree::PrefixRankedTree < > & subject, const tree::PrefixRankedNonlinearPattern < > & pattern ) { - std::vector < int > subjectSubtreeJumpTable = SubtreeJumpTable::compute ( subject ); + std::vector < int > subjectSubtreeJumpTable = tree::properties::SubtreeJumpTable::compute ( subject ); std::map < std::ranked_symbol < >, alphabet::Symbol > variablesSetting; - tree::PrefixRankedTree < > repeats = ExactSubtreeRepeatsNaive::repeats ( subject ); + tree::PrefixRankedTree < > repeats = tree::properties::ExactSubtreeRepeatsNaive::repeats ( subject ); std::set < unsigned > occ; @@ -206,7 +206,7 @@ std::set < unsigned > ExactPatternMatch::match ( const tree::PrefixRankedTree < auto ExactPatternMatchPrefixRankedNonlinearPattern = ExactPatternMatch::RegistratorWrapper < std::set < unsigned >, tree::PrefixRankedTree < >, tree::PrefixRankedNonlinearPattern < > > ( ExactPatternMatch::match ); std::set < unsigned > ExactPatternMatch::match ( const tree::PrefixRankedBarTree < > & subject, const tree::PrefixRankedBarPattern < > & pattern ) { - std::vector < int > subjectSubtreeJumpTable = SubtreeJumpTable::compute ( subject ); + std::vector < int > subjectSubtreeJumpTable = tree::properties::SubtreeJumpTable::compute ( subject ); std::set < unsigned > occ; @@ -235,10 +235,10 @@ std::set < unsigned > ExactPatternMatch::match ( const tree::PrefixRankedBarTree auto ExactPatternMatchPrefixRankedBarPattern = ExactPatternMatch::RegistratorWrapper < std::set < unsigned >, tree::PrefixRankedBarTree < >, tree::PrefixRankedBarPattern < > > ( ExactPatternMatch::match ); std::set < unsigned > ExactPatternMatch::match ( const tree::PrefixRankedBarTree < > & subject, const tree::PrefixRankedBarNonlinearPattern < > & pattern ) { - std::vector < int > subjectSubtreeJumpTable = SubtreeJumpTable::compute ( subject ); + std::vector < int > subjectSubtreeJumpTable = tree::properties::SubtreeJumpTable::compute ( subject ); std::map < std::ranked_symbol < >, alphabet::Symbol > variablesSetting; - tree::PrefixRankedBarTree < > repeats = ExactSubtreeRepeatsNaive::repeats ( subject ); + tree::PrefixRankedBarTree < > repeats = tree::properties::ExactSubtreeRepeatsNaive::repeats ( subject ); std::set < unsigned > occ; diff --git a/alib2algo/src/arbology/exact/ExactPatternMatchingAutomaton.cpp b/alib2algo/src/arbology/exact/ExactPatternMatchingAutomaton.cpp index d790eab30f..bb64edba77 100644 --- a/alib2algo/src/arbology/exact/ExactPatternMatchingAutomaton.cpp +++ b/alib2algo/src/arbology/exact/ExactPatternMatchingAutomaton.cpp @@ -7,7 +7,7 @@ #include "ExactPatternMatchingAutomaton.h" #include "ExactSubtreeMatchingAutomaton.h" -#include "SubtreeJumpTable.h" +#include <tree/properties/SubtreeJumpTable.h> #include <tree/ranked/RankedTree.h> #include <tree/ranked/RankedPattern.h> @@ -80,7 +80,7 @@ automaton::NPDA < > ExactPatternMatchingAutomaton::construct ( const tree::Prefi res.addTransition ( label::labelFrom ( 0 ), alphabet::Symbol ( alphabet::RankedSymbol < > { symbol } ), std::vector < alphabet::Symbol > ( 1, alphabet::symbolFrom ( 'T' ) ), label::labelFrom ( 0 ), std::vector < alphabet::Symbol > ( ( size_t ) symbol.getRank ( ), alphabet::symbolFrom ( 'T' ) ) ); } - std::vector < int > patternSubtreeJumpTable = SubtreeJumpTable::compute ( pattern ); + std::vector < int > patternSubtreeJumpTable = tree::properties::SubtreeJumpTable::compute ( pattern ); int i = 1; diff --git a/alib2algo/src/arbology/exact/KnuthMorrisPratt.cpp b/alib2algo/src/arbology/exact/KnuthMorrisPratt.cpp index a9cd1448dc..8810d77956 100644 --- a/alib2algo/src/arbology/exact/KnuthMorrisPratt.cpp +++ b/alib2algo/src/arbology/exact/KnuthMorrisPratt.cpp @@ -6,8 +6,8 @@ */ #include "KnuthMorrisPratt.h" -#include "BorderArrayNaive.h" -#include "SubtreeJumpTable.h" +#include <tree/properties/BorderArrayNaive.h> +#include <tree/properties/SubtreeJumpTable.h> #include <tree/Tree.h> #include <tree/ranked/PrefixRankedBarTree.h> @@ -33,8 +33,8 @@ auto KnuthMorrisPrattPrefixRankedBarTreePrefixRankedBarTree = KnuthMorrisPratt:: std::set < unsigned > KnuthMorrisPratt::match ( const tree::PrefixRankedBarTree < > & subject, const tree::PrefixRankedBarPattern < > & pattern ) { std::set < unsigned > occ; - std::vector < size_t > ba = BorderArrayNaive::ba ( pattern ); - std::vector < int > subjectSubtreeJumpTable = SubtreeJumpTable::compute ( subject ); + std::vector < size_t > ba = tree::properties::BorderArrayNaive::ba ( pattern ); + std::vector < int > subjectSubtreeJumpTable = tree::properties::SubtreeJumpTable::compute ( subject ); // index to the subject unsigned i = 0; @@ -82,8 +82,8 @@ auto KnuthMorrisPrattPrefixRankedTreePrefixRankedTree = KnuthMorrisPratt::Regist std::set < unsigned > KnuthMorrisPratt::match ( const tree::PrefixRankedTree < > & subject, const tree::PrefixRankedPattern < > & pattern ) { std::set < unsigned > occ; - std::vector < size_t > ba = BorderArrayNaive::ba ( pattern ); - std::vector < int > subjectSubtreeJumpTable = SubtreeJumpTable::compute ( subject ); + std::vector < size_t > ba = tree::properties::BorderArrayNaive::ba ( pattern ); + std::vector < int > subjectSubtreeJumpTable = tree::properties::SubtreeJumpTable::compute ( subject ); // index to the subject unsigned i = 0; diff --git a/alib2algo/src/arbology/exact/ReversedBoyerMooreHorspool.cpp b/alib2algo/src/arbology/exact/ReversedBoyerMooreHorspool.cpp index 7d7574f9c4..135aaede2d 100644 --- a/alib2algo/src/arbology/exact/ReversedBoyerMooreHorspool.cpp +++ b/alib2algo/src/arbology/exact/ReversedBoyerMooreHorspool.cpp @@ -6,9 +6,9 @@ */ #include "ReversedBoyerMooreHorspool.h" -#include "ReversedBadCharacterShiftTable.h" -#include "SubtreeJumpTable.h" -#include "ExactSubtreeRepeatsNaive.h" +#include <tree/properties/ReversedBadCharacterShiftTable.h> +#include <tree/properties/SubtreeJumpTable.h> +#include <tree/properties/ExactSubtreeRepeatsNaive.h> #include <tree/Tree.h> #include <tree/ranked/PrefixRankedTree.h> @@ -37,8 +37,8 @@ auto ReversedBoyerMooreHorspoolPrefixRankedBarTreePrefixRankedBarTree = Reversed std::set < unsigned > ReversedBoyerMooreHorspool::match ( const tree::PrefixRankedBarTree < > & subject, const tree::PrefixRankedBarPattern < > & pattern ) { std::set < unsigned > occ; - std::map < std::ranked_symbol < >, size_t > bcs = ReversedBadCharacterShiftTable::bcs ( pattern ); // NOTE: the subjects alphabet must be a subset or equal to the pattern - std::vector < int > subjectSubtreeJumpTable = SubtreeJumpTable::compute ( subject ); + std::map < std::ranked_symbol < >, size_t > bcs = tree::properties::ReversedBadCharacterShiftTable::bcs ( pattern ); // NOTE: the subjects alphabet must be a subset or equal to the pattern + std::vector < int > subjectSubtreeJumpTable = tree::properties::SubtreeJumpTable::compute ( subject ); // index to the subject int i = ( int ) subject.getContent ( ).size ( ) - pattern.getContent ( ).size ( ) + 1; @@ -80,11 +80,11 @@ auto ReversedBoyerMooreHorspoolPrefixRankedBarTreePrefixRankedBarPattern = Rever std::set < unsigned > ReversedBoyerMooreHorspool::match ( const tree::PrefixRankedBarTree < > & subject, const tree::PrefixRankedBarNonlinearPattern < > & pattern ) { std::set < unsigned > occ; - std::map < std::ranked_symbol < >, size_t > bcs = ReversedBadCharacterShiftTable::bcs ( pattern ); // NOTE: the subjects alphabet must be a subset or equal to the pattern - std::vector < int > subjectSubtreeJumpTable = SubtreeJumpTable::compute ( subject ); + std::map < std::ranked_symbol < >, size_t > bcs = tree::properties::ReversedBadCharacterShiftTable::bcs ( pattern ); // NOTE: the subjects alphabet must be a subset or equal to the pattern + std::vector < int > subjectSubtreeJumpTable = tree::properties::SubtreeJumpTable::compute ( subject ); std::map < std::ranked_symbol < >, alphabet::Symbol > variablesSetting; - tree::PrefixRankedBarTree < > repeats = ExactSubtreeRepeatsNaive::repeats ( subject ); + tree::PrefixRankedBarTree < > repeats = tree::properties::ExactSubtreeRepeatsNaive::repeats ( subject ); // index to the subject int i = ( int ) subject.getContent ( ).size ( ) - pattern.getContent ( ).size ( ) + 1; @@ -144,8 +144,8 @@ auto ReversedBoyerMooreHorspoolPrefixRankedBarTreePrefixRankedTree = ReversedBoy std::set < unsigned > ReversedBoyerMooreHorspool::match ( const tree::PrefixRankedTree < > & subject, const tree::PrefixRankedPattern < > & pattern ) { std::set < unsigned > occ; - std::map < std::ranked_symbol < >, size_t > bcs = ReversedBadCharacterShiftTable::bcs ( pattern ); // NOTE: the subjects alphabet must be a subset or equal to the pattern - std::vector < int > subjectSubtreeJumpTable = SubtreeJumpTable::compute ( subject ); + std::map < std::ranked_symbol < >, size_t > bcs = tree::properties::ReversedBadCharacterShiftTable::bcs ( pattern ); // NOTE: the subjects alphabet must be a subset or equal to the pattern + std::vector < int > subjectSubtreeJumpTable = tree::properties::SubtreeJumpTable::compute ( subject ); // index to the subject int i = ( int ) subject.getContent ( ).size ( ) - pattern.getContent ( ).size ( ) + 1; @@ -186,11 +186,11 @@ auto ReversedBoyerMooreHorspoolPrefixRankedBarTreePrefixRankedPattern = Reversed std::set < unsigned > ReversedBoyerMooreHorspool::match ( const tree::PrefixRankedTree < > & subject, const tree::PrefixRankedNonlinearPattern < > & pattern ) { std::set < unsigned > occ; - std::map < std::ranked_symbol < >, size_t > bcs = ReversedBadCharacterShiftTable::bcs ( pattern ); // NOTE: the subjects alphabet must be a subset or equal to the pattern - std::vector < int > subjectSubtreeJumpTable = SubtreeJumpTable::compute ( subject ); + std::map < std::ranked_symbol < >, size_t > bcs = tree::properties::ReversedBadCharacterShiftTable::bcs ( pattern ); // NOTE: the subjects alphabet must be a subset or equal to the pattern + std::vector < int > subjectSubtreeJumpTable = tree::properties::SubtreeJumpTable::compute ( subject ); std::map < std::ranked_symbol < >, alphabet::Symbol > variablesSetting; - tree::PrefixRankedTree < > repeats = ExactSubtreeRepeatsNaive::repeats ( subject ); + tree::PrefixRankedTree < > repeats = tree::properties::ExactSubtreeRepeatsNaive::repeats ( subject ); // index to the subject int i = ( int ) subject.getContent ( ).size ( ) - pattern.getContent ( ).size ( ) + 1; diff --git a/alib2algo/src/arbology/transform/BeginToEndIndex.h b/alib2algo/src/arbology/transform/BeginToEndIndex.h index a44e3880f3..da025a2da8 100644 --- a/alib2algo/src/arbology/transform/BeginToEndIndex.h +++ b/alib2algo/src/arbology/transform/BeginToEndIndex.h @@ -12,7 +12,7 @@ #include <core/multipleDispatch.hpp> #include <tree/TreeFeatures.h> -#include <arbology/exact/SubtreeJumpTable.h> +#include <tree/properties/SubtreeJumpTable.h> #include <tree/Tree.h> #include <tree/ranked/PrefixRankedBarTree.h> @@ -41,7 +41,7 @@ public: template < class SymbolType, class RankType > std::set < unsigned > BeginToEndIndex::transform ( const tree::PrefixRankedBarTree < SymbolType, RankType > & subject, const std::set < unsigned > & indexes ) { - std::vector < int > subjectSubtreeJumpTable = exact::SubtreeJumpTable::compute ( subject ); + std::vector < int > subjectSubtreeJumpTable = tree::properties::SubtreeJumpTable::compute ( subject ); std::set < unsigned > res; for ( unsigned index : indexes ) @@ -52,7 +52,7 @@ std::set < unsigned > BeginToEndIndex::transform ( const tree::PrefixRankedBarTr template < class SymbolType, class RankType > std::set < unsigned > BeginToEndIndex::transform ( const tree::PrefixRankedTree < SymbolType, RankType > & subject, const std::set < unsigned > & indexes ) { - std::vector < int > subjectSubtreeJumpTable = exact::SubtreeJumpTable::compute ( subject ); + std::vector < int > subjectSubtreeJumpTable = tree::properties::SubtreeJumpTable::compute ( subject ); std::set < unsigned > res; for ( unsigned index : indexes ) diff --git a/alib2algo/src/arbology/exact/BadCharacterShiftTable.cpp b/alib2algo/src/tree/properties/BadCharacterShiftTable.cpp similarity index 90% rename from alib2algo/src/arbology/exact/BadCharacterShiftTable.cpp rename to alib2algo/src/tree/properties/BadCharacterShiftTable.cpp index c617622526..413c76d9d3 100644 --- a/alib2algo/src/arbology/exact/BadCharacterShiftTable.cpp +++ b/alib2algo/src/tree/properties/BadCharacterShiftTable.cpp @@ -10,9 +10,9 @@ #include <tree/ranked/PrefixRankedBarPattern.h> #include <tree/ranked/PrefixRankedBarNonlinearPattern.h> -namespace arbology { +namespace tree { -namespace exact { +namespace properties { std::map < std::ranked_symbol < >, size_t > BadCharacterShiftTable::bcs ( const tree::RankedTreeWrapper & pattern ) { return dispatch ( pattern.getData ( ) ); @@ -21,6 +21,6 @@ std::map < std::ranked_symbol < >, size_t > BadCharacterShiftTable::bcs ( const auto BadCharacterShiftTablePrefixRankedBarPattern = BadCharacterShiftTable::RegistratorWrapper < std::map < std::ranked_symbol < >, size_t >, tree::PrefixRankedBarPattern < > > ( BadCharacterShiftTable::bcs ); auto BadCharacterShiftTablePrefixRankedBarNonlinearPattern = BadCharacterShiftTable::RegistratorWrapper < std::map < std::ranked_symbol < >, size_t >, tree::PrefixRankedBarNonlinearPattern < > > ( BadCharacterShiftTable::bcs ); -} /* namespace exact */ +} /* namespace properties */ -} /* namespace arbology */ +} /* namespace tree */ diff --git a/alib2algo/src/arbology/exact/BadCharacterShiftTable.h b/alib2algo/src/tree/properties/BadCharacterShiftTable.h similarity index 97% rename from alib2algo/src/arbology/exact/BadCharacterShiftTable.h rename to alib2algo/src/tree/properties/BadCharacterShiftTable.h index fd3f357208..124e0d4ca6 100644 --- a/alib2algo/src/arbology/exact/BadCharacterShiftTable.h +++ b/alib2algo/src/tree/properties/BadCharacterShiftTable.h @@ -16,9 +16,9 @@ #include <set> #include <map> -namespace arbology { +namespace tree { -namespace exact { +namespace properties { /** * Computation of BCS table for BMH from MI(E+\eps)-EVY course 2014 @@ -102,8 +102,8 @@ std::map < std::ranked_symbol < SymbolType, RankType >, size_t > BadCharacterShi return bcs; } -} /* namespace exact */ +} /* namespace properties */ -} /* namespace arbology */ +} /* namespace tree */ #endif /* _ARBOLOGY_BAD_CHARACTER_SHIFT_TABLE_H_ */ diff --git a/alib2algo/src/arbology/exact/BorderArrayNaive.cpp b/alib2algo/src/tree/properties/BorderArrayNaive.cpp similarity index 86% rename from alib2algo/src/arbology/exact/BorderArrayNaive.cpp rename to alib2algo/src/tree/properties/BorderArrayNaive.cpp index b6a574c280..8163b735d9 100644 --- a/alib2algo/src/arbology/exact/BorderArrayNaive.cpp +++ b/alib2algo/src/tree/properties/BorderArrayNaive.cpp @@ -7,9 +7,9 @@ #include "BorderArrayNaive.h" -namespace arbology { +namespace tree { -namespace exact { +namespace properties { std::vector < size_t > BorderArrayNaive::ba ( const tree::Tree & pattern ) { return dispatch ( pattern.getData ( ) ); @@ -18,6 +18,6 @@ std::vector < size_t > BorderArrayNaive::ba ( const tree::Tree & pattern ) { auto BorderArrayPrefixRankedBarPattern = BorderArrayNaive::RegistratorWrapper < std::vector < size_t >, tree::PrefixRankedBarPattern < > > ( BorderArrayNaive::ba ); auto BorderArrayPrefixRankedPattern = BorderArrayNaive::RegistratorWrapper < std::vector < size_t >, tree::PrefixRankedPattern < > > ( BorderArrayNaive::ba ); -} /* namespace exact */ +} /* namespace properties */ -} /* namespace arbology */ +} /* namespace tree */ diff --git a/alib2algo/src/arbology/exact/BorderArrayNaive.h b/alib2algo/src/tree/properties/BorderArrayNaive.h similarity index 98% rename from alib2algo/src/arbology/exact/BorderArrayNaive.h rename to alib2algo/src/tree/properties/BorderArrayNaive.h index 8724366dc4..0de4e1ee15 100644 --- a/alib2algo/src/arbology/exact/BorderArrayNaive.h +++ b/alib2algo/src/tree/properties/BorderArrayNaive.h @@ -20,9 +20,9 @@ #include <tree/ranked/PrefixRankedBarPattern.h> #include <tree/ranked/PrefixRankedPattern.h> -namespace arbology { +namespace tree { -namespace exact { +namespace properties { /** * Computation of BCS table for BMH from MI(E+\eps)-EVY course 2014 @@ -150,8 +150,8 @@ std::vector < size_t > BorderArrayNaive::ba ( const tree::PrefixRankedPattern < return res; } -} /* namespace exact */ +} /* namespace properties */ -} /* namespace arbology */ +} /* namespace tree */ #endif /* _ARBOLOGY_BORDER_ARRAY_NAIVE_H_ */ diff --git a/alib2algo/src/arbology/exact/ExactSubtreeRepeatsNaive.cpp b/alib2algo/src/tree/properties/ExactSubtreeRepeatsNaive.cpp similarity index 98% rename from alib2algo/src/arbology/exact/ExactSubtreeRepeatsNaive.cpp rename to alib2algo/src/tree/properties/ExactSubtreeRepeatsNaive.cpp index 47205eef2d..9c14e08469 100644 --- a/alib2algo/src/arbology/exact/ExactSubtreeRepeatsNaive.cpp +++ b/alib2algo/src/tree/properties/ExactSubtreeRepeatsNaive.cpp @@ -14,9 +14,9 @@ #include <tree/Tree.h> #include <global/GlobalData.h> -namespace arbology { +namespace tree { -namespace exact { +namespace properties { tree::Tree ExactSubtreeRepeatsNaive::repeats ( const tree::Tree & tree ) { return dispatch ( tree.getData ( ) ); @@ -112,6 +112,6 @@ tree::PrefixRankedBarTree < > ExactSubtreeRepeatsNaive::repeats ( const tree::Pr auto ExactRepeatsNaivePrefixRankedBarTree = ExactSubtreeRepeatsNaive::RegistratorWrapper < tree::PrefixRankedBarTree < >, tree::PrefixRankedBarTree < > > ( ExactSubtreeRepeatsNaive::repeats ); -} /* namespace exact */ +} /* namespace properties */ -} /* namespace arbology */ +} /* namespace tree */ diff --git a/alib2algo/src/arbology/exact/ExactSubtreeRepeatsNaive.h b/alib2algo/src/tree/properties/ExactSubtreeRepeatsNaive.h similarity index 95% rename from alib2algo/src/arbology/exact/ExactSubtreeRepeatsNaive.h rename to alib2algo/src/tree/properties/ExactSubtreeRepeatsNaive.h index dda3b4a524..2378926916 100644 --- a/alib2algo/src/arbology/exact/ExactSubtreeRepeatsNaive.h +++ b/alib2algo/src/tree/properties/ExactSubtreeRepeatsNaive.h @@ -17,9 +17,9 @@ #include <tree> #include <alphabet/RankedSymbol.h> -namespace arbology { +namespace tree { -namespace exact { +namespace properties { /** * Simple computation of subtree repeats @@ -46,8 +46,8 @@ public: }; -} /* namespace exact */ +} /* namespace properties */ -} /* namespace arbology */ +} /* namespace tree */ #endif /* _ARBOLOGY_SUBTREE_REPEATS_NAIVE_H_ */ diff --git a/alib2algo/src/arbology/exact/ReversedBadCharacterShiftTable.cpp b/alib2algo/src/tree/properties/ReversedBadCharacterShiftTable.cpp similarity index 98% rename from alib2algo/src/arbology/exact/ReversedBadCharacterShiftTable.cpp rename to alib2algo/src/tree/properties/ReversedBadCharacterShiftTable.cpp index c0f7dca523..25e5d2188e 100644 --- a/alib2algo/src/arbology/exact/ReversedBadCharacterShiftTable.cpp +++ b/alib2algo/src/tree/properties/ReversedBadCharacterShiftTable.cpp @@ -12,9 +12,9 @@ #include <tree/ranked/PrefixRankedPattern.h> #include <tree/ranked/PrefixRankedNonlinearPattern.h> -namespace arbology { +namespace tree { -namespace exact { +namespace properties { std::map < std::ranked_symbol < >, size_t > ReversedBadCharacterShiftTable::bcs ( const tree::RankedTreeWrapper & pattern ) { return dispatch ( pattern.getData ( ) ); @@ -132,6 +132,6 @@ std::map < std::ranked_symbol < >, size_t > ReversedBadCharacterShiftTable::bcs auto ReversedBadCharacterShiftTablePrefixRankedNonlinearPattern = ReversedBadCharacterShiftTable::RegistratorWrapper < std::map < std::ranked_symbol < >, size_t >, tree::PrefixRankedNonlinearPattern < > > ( ReversedBadCharacterShiftTable::bcs ); -} /* namespace exact */ +} /* namespace properties */ -} /* namespace arbology */ +} /* namespace tree */ diff --git a/alib2algo/src/arbology/exact/ReversedBadCharacterShiftTable.h b/alib2algo/src/tree/properties/ReversedBadCharacterShiftTable.h similarity index 93% rename from alib2algo/src/arbology/exact/ReversedBadCharacterShiftTable.h rename to alib2algo/src/tree/properties/ReversedBadCharacterShiftTable.h index 4bd37d117b..0eb08f2487 100644 --- a/alib2algo/src/arbology/exact/ReversedBadCharacterShiftTable.h +++ b/alib2algo/src/tree/properties/ReversedBadCharacterShiftTable.h @@ -16,9 +16,9 @@ #include <set> #include <map> -namespace arbology { +namespace tree { -namespace exact { +namespace properties { /** * Computation of BCS table for BMH from MI(E+\eps)-EVY course 2014 @@ -39,8 +39,8 @@ public: }; -} /* namespace exact */ +} /* namespace properties */ -} /* namespace arbology */ +} /* namespace tree */ #endif /* _ARBOLOGY_REVERSED_BAD_CHARACTER_SHIFT_TABLE_H_ */ diff --git a/alib2algo/src/arbology/exact/SubtreeJumpTable.cpp b/alib2algo/src/tree/properties/SubtreeJumpTable.cpp similarity index 90% rename from alib2algo/src/arbology/exact/SubtreeJumpTable.cpp rename to alib2algo/src/tree/properties/SubtreeJumpTable.cpp index e591786075..cd756d6f64 100644 --- a/alib2algo/src/arbology/exact/SubtreeJumpTable.cpp +++ b/alib2algo/src/tree/properties/SubtreeJumpTable.cpp @@ -7,9 +7,9 @@ #include "SubtreeJumpTable.h" -namespace arbology { +namespace tree { -namespace exact { +namespace properties { std::vector < int > SubtreeJumpTable::compute ( const tree::RankedTreeWrapper & subject ) { return dispatch ( subject.getData ( ) ); @@ -20,6 +20,6 @@ auto SubtreeSizesPrefixRankedBarPattern = SubtreeJumpTable::RegistratorWrapper < auto SubtreeSizesPrefixRankedTree = SubtreeJumpTable::RegistratorWrapper < std::vector < int >, tree::PrefixRankedTree < > > ( SubtreeJumpTable::compute ); auto SubtreeSizesPrefixRankedPattern = SubtreeJumpTable::RegistratorWrapper < std::vector < int >, tree::PrefixRankedPattern < > > ( SubtreeJumpTable::compute ); -} /* namespace exact */ +} /* namespace properties */ -} /* namespace arbology */ +} /* namespace tree */ diff --git a/alib2algo/src/arbology/exact/SubtreeJumpTable.h b/alib2algo/src/tree/properties/SubtreeJumpTable.h similarity index 97% rename from alib2algo/src/arbology/exact/SubtreeJumpTable.h rename to alib2algo/src/tree/properties/SubtreeJumpTable.h index 9bf88690b9..6aa2e84e14 100644 --- a/alib2algo/src/arbology/exact/SubtreeJumpTable.h +++ b/alib2algo/src/tree/properties/SubtreeJumpTable.h @@ -19,9 +19,9 @@ #include <tree/ranked/PrefixRankedBarTree.h> #include <tree/ranked/PrefixRankedBarPattern.h> -namespace arbology { +namespace tree { -namespace exact { +namespace properties { class SubtreeJumpTable : public std::SingleDispatch < SubtreeJumpTable, std::vector < int >, const tree::RankedTreeBase & > { template < class T > @@ -125,8 +125,8 @@ int SubtreeJumpTable::buildDataPointersPrefixRankedInternal ( std::vector < int return index; } -} /* namespace exact */ +} /* namespace properties */ -} /* namespace arbology */ +} /* namespace tree */ #endif /* _SUBTREE_JUMP_TABLE_H_ */ -- GitLab