From 8397321f3097241f81a9bc0b8a608cb4da26edab Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Thu, 7 Feb 2019 14:53:56 +0100 Subject: [PATCH] Revert and fix "fix and unify bit parallelism factors algos" This reverts commit b5d9021b39c31bff44f79fc4233480b341b6bdc5. --- alib2algo/src/stringology/query/BitParallelismFactors.h | 6 +++--- .../src/stringology/query/CompressedBitParallelismFactors.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/alib2algo/src/stringology/query/BitParallelismFactors.h b/alib2algo/src/stringology/query/BitParallelismFactors.h index a58aeded56..f71a9cc0f3 100644 --- a/alib2algo/src/stringology/query/BitParallelismFactors.h +++ b/alib2algo/src/stringology/query/BitParallelismFactors.h @@ -50,20 +50,20 @@ ext::set < unsigned > BitParallelismFactors::query ( const indexes::stringology: if ( symbolVectorIter == bitParallelIndex.getData ( ).end ( ) ) return { }; - ext::vector < bool > indexVector = symbolVectorIter->second << 1; + ext::vector < bool > indexVector = symbolVectorIter->second; for ( ++ symbolIter; symbolIter != string.getContent ( ).end ( ); ++ symbolIter ) { symbolVectorIter = bitParallelIndex.getData ( ).find ( * symbolIter ); if ( symbolVectorIter == bitParallelIndex.getData ( ).end ( ) ) return { }; - indexVector = ( indexVector & symbolVectorIter->second ) << 1; + indexVector = ( indexVector << 1 ) & symbolVectorIter->second; } ext::set < unsigned > res; for ( unsigned i = 0; i < indexVector.size ( ); i++ ) if ( indexVector [ i ] ) - res.insert ( i - string.getContent ( ).size ( ) ); + res.insert ( i - string.getContent ( ).size ( ) + 1 ); return res; } diff --git a/alib2algo/src/stringology/query/CompressedBitParallelismFactors.h b/alib2algo/src/stringology/query/CompressedBitParallelismFactors.h index e11f45ff92..474ebe3a4a 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 << 1; + common::SparseBoolVector indexVector = symbolVectorIter->second; for ( ++ symbolIter; symbolIter != string.getContent ( ).end ( ); ++ symbolIter ) { symbolVectorIter = compressedBitParallelIndex.getData ( ).find ( * symbolIter ); if ( symbolVectorIter == compressedBitParallelIndex.getData ( ).end ( ) ) return { }; - indexVector = ( indexVector & symbolVectorIter->second ) << 1; + indexVector = ( indexVector << 1 ) & symbolVectorIter->second; } ext::set < unsigned > res; for ( unsigned i : indexVector ) - res.insert ( i - string.getContent ( ).size ( ) ); + res.insert ( i - string.getContent ( ).size ( ) + 1 ); return res; } -- GitLab