diff --git a/alib2algo/src/stringology/simulations/ExactBitParalelism.h b/alib2algo/src/stringology/simulations/ExactBitParalelism.h index f57c4def54cd014e659f532476a381b935f2ff3b..e68064799f50212dafba427b90d584b2139378a5 100644 --- a/alib2algo/src/stringology/simulations/ExactBitParalelism.h +++ b/alib2algo/src/stringology/simulations/ExactBitParalelism.h @@ -20,12 +20,12 @@ namespace simulations { class ExactBitParalelism { public: template <class SymbolType> - static ext::vector<unsigned int> search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern); + static ext::set<unsigned int> search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern); }; template <class SymbolType> -ext::vector<unsigned int> ExactBitParalelism::search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern) { +ext::set<unsigned int> ExactBitParalelism::search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern) { // preparation stage ext::set<SymbolType> common_alphabet = text.getAlphabet(); @@ -34,7 +34,7 @@ ext::vector<unsigned int> ExactBitParalelism::search(const string::LinearString< ext::map<SymbolType, ext::vector<bool> > D_vectors = BitParalelism::constructDVectors(common_alphabet, pattern); // computation part - ext::vector<unsigned int> result; + ext::set<unsigned int> result; auto B_vector = ext::vector<bool>(pattern.getContent().size(), 1); @@ -42,7 +42,7 @@ ext::vector<unsigned int> ExactBitParalelism::search(const string::LinearString< B_vector = (B_vector << 1) | D_vectors[text.getContent()[i]]; if (B_vector[pattern.getContent().size() - 1] == false) { - result.push_back(i - pattern.getContent().size() + 1); + result.insert(i - pattern.getContent().size() + 1); } } diff --git a/alib2algo/src/stringology/simulations/GeneralizedLevenshteinBitParalelism.h b/alib2algo/src/stringology/simulations/GeneralizedLevenshteinBitParalelism.h index 1de343501237a87f0919b419ee44e5e1e8db828c..cefdc6811141d6bcca92c8bf934cb0b499a08a4b 100644 --- a/alib2algo/src/stringology/simulations/GeneralizedLevenshteinBitParalelism.h +++ b/alib2algo/src/stringology/simulations/GeneralizedLevenshteinBitParalelism.h @@ -20,11 +20,11 @@ namespace simulations { class GeneralizedLevenshteinBitParalelism { public: template <class SymbolType> - static ext::vector<unsigned int> search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors); + static ext::set<unsigned int> search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors); }; template <class SymbolType> -ext::vector<unsigned int> GeneralizedLevenshteinBitParalelism::search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors) { +ext::set<unsigned int> GeneralizedLevenshteinBitParalelism::search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors) { // preparation stage ext::set<SymbolType> common_alphabet = text.getAlphabet(); common_alphabet.insert(pattern.getAlphabet().begin(), pattern.getAlphabet().end()); @@ -35,7 +35,7 @@ ext::vector<unsigned int> GeneralizedLevenshteinBitParalelism::search(const stri V_vector[pattern.getContent().size() - 1] = 1; // computation part - ext::vector<unsigned int> result; + ext::set<unsigned int> result; ext::vector<ext::vector<bool> > B_vectors; for(unsigned int i=0; i<=errors; i++) { @@ -72,7 +72,7 @@ ext::vector<unsigned int> GeneralizedLevenshteinBitParalelism::search(const stri for (const auto & data : B_vectors) { if(data[pattern.getContent().size()-1] == false) { - result.push_back(i); + result.insert(i); break; } } diff --git a/alib2algo/src/stringology/simulations/HammingBitParalelism.h b/alib2algo/src/stringology/simulations/HammingBitParalelism.h index b6716bc8789357c8fa241589a8ded27bc56a5e0f..4cc35489d18c1f342c53a6a39976b2e65a668f91 100644 --- a/alib2algo/src/stringology/simulations/HammingBitParalelism.h +++ b/alib2algo/src/stringology/simulations/HammingBitParalelism.h @@ -20,12 +20,12 @@ namespace simulations { class HammingBitParalelism { public: template <class SymbolType> - static ext::vector<unsigned int> search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors); + static ext::set<unsigned int> search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors); }; template <class SymbolType> -ext::vector<unsigned int> HammingBitParalelism::search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors) { +ext::set<unsigned int> HammingBitParalelism::search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors) { // preparation stage ext::set<SymbolType> common_alphabet = text.getAlphabet(); common_alphabet.insert(pattern.getAlphabet().begin(), pattern.getAlphabet().end()); @@ -33,7 +33,7 @@ ext::vector<unsigned int> HammingBitParalelism::search(const string::LinearStrin ext::map<SymbolType, ext::vector<bool> > D_vectors = BitParalelism::constructDVectors(common_alphabet, pattern); // computation part - ext::vector<unsigned int> result; + ext::set<unsigned int> result; ext::vector<ext::vector<bool> > B_vectors; for(unsigned int i=0; i<=errors; i++) { @@ -51,7 +51,7 @@ ext::vector<unsigned int> HammingBitParalelism::search(const string::LinearStrin for(const auto & B_vector : B_vectors) { if (B_vector[pattern.getContent().size()-1] == false) { - result.push_back(i - pattern.getContent().size() + 1); + result.insert(i - pattern.getContent().size() + 1); break; } } diff --git a/alib2algo/src/stringology/simulations/LevenshteinBitParalelism.h b/alib2algo/src/stringology/simulations/LevenshteinBitParalelism.h index e42990ee9903280c4645616a0bbdcff980bdc635..e4bb906af0c998756908261a974e5521cae68b12 100644 --- a/alib2algo/src/stringology/simulations/LevenshteinBitParalelism.h +++ b/alib2algo/src/stringology/simulations/LevenshteinBitParalelism.h @@ -20,12 +20,12 @@ namespace simulations { class LevenshteinBitParalelism { public: template <class SymbolType> - static ext::vector<unsigned int> search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors); + static ext::set<unsigned int> search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors); }; template <class SymbolType> -ext::vector<unsigned int> LevenshteinBitParalelism::search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors) { +ext::set<unsigned int> LevenshteinBitParalelism::search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors) { // preparation stage ext::set<SymbolType> common_alphabet = text.getAlphabet(); common_alphabet.insert(pattern.getAlphabet().begin(), pattern.getAlphabet().end()); @@ -36,7 +36,7 @@ ext::vector<unsigned int> LevenshteinBitParalelism::search(const string::LinearS V_vector[pattern.getContent().size() - 1] = 1; // computation part - ext::vector<unsigned int> result; + ext::set<unsigned int> result; ext::vector<ext::vector<bool> > B_vectors; for(unsigned int i=0; i<=errors; i++) { @@ -62,7 +62,7 @@ ext::vector<unsigned int> LevenshteinBitParalelism::search(const string::LinearS for (const auto & data : B_vectors) { if(data[pattern.getContent().size()-1] == false) { - result.push_back(i); + result.insert(i); break; } } diff --git a/alib2algo/test-src/stringology/simulations/ExactBitParalelismTest.cpp b/alib2algo/test-src/stringology/simulations/ExactBitParalelismTest.cpp index d0268f8de5f6bdfd9fe6e578521334c1420b852b..4955dc08de9cccad6b081f5074cb4b8d04035ab4 100644 --- a/alib2algo/test-src/stringology/simulations/ExactBitParalelismTest.cpp +++ b/alib2algo/test-src/stringology/simulations/ExactBitParalelismTest.cpp @@ -10,7 +10,7 @@ void ExactBitParalelismTest::testSimple() { auto text = string::LinearString<>("adcabcaabadbbca"); auto pattern = string::LinearString<>("adbbca"); - ext::vector<unsigned int> expected_result = {9}; + ext::set<unsigned int> expected_result = {9}; CPPUNIT_ASSERT(expected_result == stringology::simulations::ExactBitParalelism::search(text, pattern)); } diff --git a/alib2algo/test-src/stringology/simulations/GeneralizedLevenshteinBitParalelismTest.cpp b/alib2algo/test-src/stringology/simulations/GeneralizedLevenshteinBitParalelismTest.cpp index dde416d9eb54659072c9ebf5a3b1adec92929124..025426902bf9408d46b6e01b53678c5c38c00a6a 100644 --- a/alib2algo/test-src/stringology/simulations/GeneralizedLevenshteinBitParalelismTest.cpp +++ b/alib2algo/test-src/stringology/simulations/GeneralizedLevenshteinBitParalelismTest.cpp @@ -10,7 +10,7 @@ void GeneralizedLevenshteinBitParalelismTest::testSimple() { auto text = string::LinearString<>("adbcbaabadbbca"); auto pattern = string::LinearString<>("adbbca"); - ext::vector<unsigned int> expected_result = {2, 3, 4, 5, 6, 8, 10, 11, 12, 13}; + ext::set<unsigned int> expected_result = {2, 3, 4, 5, 6, 8, 10, 11, 12, 13}; auto result = stringology::simulations::GeneralizedLevenshteinBitParalelism::search(text, pattern, 3); CPPUNIT_ASSERT(expected_result == result); } diff --git a/alib2algo/test-src/stringology/simulations/HammingBitParalelismTest.cpp b/alib2algo/test-src/stringology/simulations/HammingBitParalelismTest.cpp index 139b9fdebf5ce7ed71ce5763cd1db28cf8e62b91..cc4e02fe034b0b997e822f7d4c832552bfcb0df0 100644 --- a/alib2algo/test-src/stringology/simulations/HammingBitParalelismTest.cpp +++ b/alib2algo/test-src/stringology/simulations/HammingBitParalelismTest.cpp @@ -10,7 +10,7 @@ void HammingBitParalelismTest::testSimple() { auto text = string::LinearString<>("adcabcaabadbbca"); auto pattern = string::LinearString<>("adbbca"); - ext::vector<unsigned int> expected_result = {1,9}; + ext::set<unsigned int> expected_result = {1,9}; auto result = stringology::simulations::HammingBitParalelism::search(text, pattern, 3); CPPUNIT_ASSERT(expected_result == result); } diff --git a/alib2algo/test-src/stringology/simulations/HammingDynamicProgrammingTest.cpp b/alib2algo/test-src/stringology/simulations/HammingDynamicProgrammingTest.cpp index 2039f8ec2f0035804eec0ffd963ebfd3fe7946f4..8f3a7d978359b16f4af289920352f32996fae08c 100644 --- a/alib2algo/test-src/stringology/simulations/HammingDynamicProgrammingTest.cpp +++ b/alib2algo/test-src/stringology/simulations/HammingDynamicProgrammingTest.cpp @@ -36,7 +36,7 @@ void HammingDynamicProgrammingTest::testSearching() { auto text = string::LinearString<>("patternpettannbalastpettern"); auto pattern = string::LinearString<>("pattern"); - auto expected_result = ext::vector<unsigned int>({0, 7, 20}); + auto expected_result = ext::set<unsigned int>({0, 7, 20}); auto result = stringology::simulations::HammingDynamicProgramming::search(text, pattern, 3); CPPUNIT_ASSERT(expected_result == result); diff --git a/alib2algo/test-src/stringology/simulations/LevenshteinBitParalelismTest.cpp b/alib2algo/test-src/stringology/simulations/LevenshteinBitParalelismTest.cpp index 1284848c8f734fcf63a8e4da2cad655b2b6d3147..829693252fd37fc4c14356cc9ba9ae7dde06301b 100644 --- a/alib2algo/test-src/stringology/simulations/LevenshteinBitParalelismTest.cpp +++ b/alib2algo/test-src/stringology/simulations/LevenshteinBitParalelismTest.cpp @@ -10,7 +10,7 @@ void LevenshteinBitParalelismTest::testSimple() { auto text = string::LinearString<>("adcabcaabadbbca"); auto pattern = string::LinearString<>("adbbca"); - ext::vector<unsigned int> expected_result = {2, 3, 5, 6, 7, 9, 11, 12, 13, 14}; + ext::set<unsigned int> expected_result = {2, 3, 5, 6, 7, 9, 11, 12, 13, 14}; auto result = stringology::simulations::LevenshteinBitParalelism::search(text, pattern, 3); CPPUNIT_ASSERT(expected_result == result); }