diff --git a/alib2algo/src/stringology/query/BitParallelismFactors.h b/alib2algo/src/stringology/query/BitParallelismFactors.h index f2e2b84a0eeb620af70ee078bd869c8a916823e4..a58aeded56c77a60c3267d184f422ae6f3a11af2 100644 --- a/alib2algo/src/stringology/query/BitParallelismFactors.h +++ b/alib2algo/src/stringology/query/BitParallelismFactors.h @@ -50,14 +50,14 @@ ext::set < unsigned > BitParallelismFactors::query ( const indexes::stringology: if ( symbolVectorIter == bitParallelIndex.getData ( ).end ( ) ) return { }; - ext::vector < bool > indexVector = symbolVectorIter->second; + ext::vector < bool > indexVector = symbolVectorIter->second << 1; for ( ++ symbolIter; symbolIter != string.getContent ( ).end ( ); ++ symbolIter ) { symbolVectorIter = bitParallelIndex.getData ( ).find ( * symbolIter ); if ( symbolVectorIter == bitParallelIndex.getData ( ).end ( ) ) return { }; - indexVector = ( indexVector << 1 ) & symbolVectorIter->second; + indexVector = ( indexVector & symbolVectorIter->second ) << 1; } ext::set < unsigned > res; diff --git a/alib2algo/src/stringology/query/CompressedBitParallelismFactors.h b/alib2algo/src/stringology/query/CompressedBitParallelismFactors.h index 474ebe3a4ad4beed6727b589d1ea11af43409217..e11f45ff9200ff184819c6cffd194abb27a73380 100644 --- a/alib2algo/src/stringology/query/CompressedBitParallelismFactors.h +++ b/alib2algo/src/stringology/query/CompressedBitParallelismFactors.h @@ -51,20 +51,20 @@ ext::set < unsigned > CompressedBitParallelismFactors::query ( const indexes::st if ( symbolVectorIter == compressedBitParallelIndex.getData ( ).end ( ) ) return { }; - common::SparseBoolVector indexVector = symbolVectorIter->second; + common::SparseBoolVector indexVector = symbolVectorIter->second << 1; for ( ++ symbolIter; symbolIter != string.getContent ( ).end ( ); ++ symbolIter ) { symbolVectorIter = compressedBitParallelIndex.getData ( ).find ( * symbolIter ); if ( symbolVectorIter == compressedBitParallelIndex.getData ( ).end ( ) ) return { }; - indexVector = ( indexVector << 1 ) & symbolVectorIter->second; + indexVector = ( indexVector & symbolVectorIter->second ) << 1; } ext::set < unsigned > res; for ( unsigned i : indexVector ) - res.insert ( i - string.getContent ( ).size ( ) + 1 ); + res.insert ( i - string.getContent ( ).size ( ) ); return res; }