diff --git a/alib2algo/src/stringology/query/BNDMOccurrences.h b/alib2algo/src/stringology/query/BNDMOccurrences.h index 5c8b0134b6defc87e721fd69f87fdba1e6b7029d..bc86cc6aa66531e04c2794a44f3053bf04bd2280 100644 --- a/alib2algo/src/stringology/query/BNDMOccurrences.h +++ b/alib2algo/src/stringology/query/BNDMOccurrences.h @@ -49,7 +49,7 @@ ext::set < unsigned > BNDMOccurrences::query ( const indexes::stringology::BitSe ext::bitset < BitmaskBitCount > currentBitmask; - while ( posInSubject <= subjectLength - patternLength ) { + while ( posInSubject + patternLength <= subjectLength ) { size_t posInPattern = bitmaskLength; size_t lastPosOfFactor = bitmaskLength; diff --git a/alib2algo/src/stringology/query/BackwardDAWGMatching.h b/alib2algo/src/stringology/query/BackwardDAWGMatching.h index b8588a29b3f8973c397a9b9b9dc21e7f9e487072..2423b4b131cc95e9e4ad9852640d8a2de7d4fdae 100644 --- a/alib2algo/src/stringology/query/BackwardDAWGMatching.h +++ b/alib2algo/src/stringology/query/BackwardDAWGMatching.h @@ -38,7 +38,7 @@ ext::set < unsigned > BackwardDAWGMatching::match ( const string::LinearString < bool fail; size_t posInSubject = 0; - while ( posInSubject <= subjectSize - patternSize ) { + while ( posInSubject + patternSize <= subjectSize ) { unsigned currentState = suffixAutomaton.getAutomaton ( ).getInitialState ( ); size_t posInPattern = patternSize; diff --git a/alib2algo/src/stringology/query/BackwardOracleMatching.h b/alib2algo/src/stringology/query/BackwardOracleMatching.h index 23deda7ffc2bcefbb58675e74d7812b8731d61c3..7195233a7b236dee7dac9df991a4436bb90e0851 100644 --- a/alib2algo/src/stringology/query/BackwardOracleMatching.h +++ b/alib2algo/src/stringology/query/BackwardOracleMatching.h @@ -40,7 +40,7 @@ ext::set < unsigned > BackwardOracleMatching::match ( const string::LinearString bool fail; size_t posInSubject = 0; - while ( posInSubject <= subjectSize - patternSize ) { + while ( posInSubject + patternSize <= subjectSize ) { StateType currentState = factorOracle.getInitialState ( ); diff --git a/alib2algo/src/stringology/query/WideBNDMOccurrences.h b/alib2algo/src/stringology/query/WideBNDMOccurrences.h index ee5eb814e4539a7ffe0134bd21b7cf8bca5ba715..4ad8d0c32f8c15d60099f32dbe34a38fe1d23756 100644 --- a/alib2algo/src/stringology/query/WideBNDMOccurrences.h +++ b/alib2algo/src/stringology/query/WideBNDMOccurrences.h @@ -48,7 +48,7 @@ ext::set < unsigned > WideBNDMOccurrences::query ( const indexes::stringology::B ext::vector < bool > currentBitmask; currentBitmask.resize ( patternLength ); - while ( posInSubject <= subjectLength - patternLength ) { + while ( posInSubject + patternLength <= subjectLength ) { size_t posInPattern = patternLength; size_t lastPosOfFactor = patternLength;