diff --git a/aarbology2/src/aarbology.cpp b/aarbology2/src/aarbology.cpp index db0043ca7f94b7b4b0c9eb28c15a695d52f10188..b9dd5e16811e3406471a771a1f959d3ed91d0e67 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 90d4d1f7eaf2c3b3e64f24017b2ace5e4dbf6335..2df5634ce4a2552b971fdc8044d552d05032b39a 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 e7ceb02e9417d184f93b404397ffd892469a8140..436381fbdf14f41c2ac6a3b02b74af4721b2b4d5 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 46331981f91e71f0029c30d675b3d37afb44de16..f082bec2fd21f5c9458317f2ed2f0bfa4cd837ab 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 1d7b5f91a2c4040ec1025c1218621a7165136244..47f61b84088e4386f36507a63f5a5753ce47db9c 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 d790eab30fc3f1f8187baca753692a9c35c7e882..bb64edba7796ca9662774767a6df9e5f806da014 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 a9cd1448dcb8a3215d526f9f0b3a717945ef5452..8810d779564d7a0c0af37c277094eb7a291bf400 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 7d7574f9c4ce09bd2a44012e6eed9238d4f50c5a..135aaede2d068b171cc39fd7570d49ac608819d3 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 a44e3880f3d67b69266cc60a92333d5686de52cd..da025a2da8ba53d1f638e2551962a9932213c531 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 c617622526667e39d84a1bcea0ab36dd030748b8..413c76d9d34581144b9e9d772228076723ab4c70 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 fd3f35720843cf2d77c0502c93167de853028371..124e0d4ca6a698a103079b5486310f2b96a6e93c 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 b6a574c2804e670065f6ba5dcbc06d5cf930a2c5..8163b735d9add1a0f733ab59e317e5daf000db74 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 8724366dc41cbb0eb4eeafaba8df3b8f92db77b6..0de4e1ee15f6c73dcf5c26728eeec4da6098e89c 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 47205eef2db8b59716db8008abf0d184f2db8d14..9c14e084694117a5fc756eb08345c7b033a769e2 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 dda3b4a524b1a2e0aa4e0c3a7452a611ab671365..237892691693a0e75bd151b77af605a273fcffcd 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 c0f7dca5236ee7ee0c51fb0173ec0e58d740e9cd..25e5d2188e77b322907cbc134afd0e73fd45eb6a 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 4bd37d117b3082574c7e157fdc78613d239dbcb8..0eb08f2487375d9e6302ed9183bc8158fbb317d5 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 e5917860750cadd29278926ec13b8efbc6374136..cd756d6f64501ac712c8bd717981eaf0704b9c3b 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 9bf88690b9096265646c2de44d9b8a0fb3e8f384..6aa2e84e1415ff34a277878128a578357c5ef9b2 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_ */