9#include <string/LinearString.h>
32 template <
class SymbolType >
36template <
class SymbolType >
38 if (
string.getContent ( ).empty ( ) ) {
39 if ( compressedBitParallelIndex.
getData ( ).begin ( ) == compressedBitParallelIndex.
getData ( ).end ( ) )
45 auto symbolIter =
string.getContent ( ).begin ( );
48 if ( symbolVectorIter == compressedBitParallelIndex.
getData ( ).end ( ) )
53 for ( ++ symbolIter; symbolIter !=
string.getContent ( ).
end ( ); ++ symbolIter ) {
54 symbolVectorIter = compressedBitParallelIndex.
getData ( ).find ( * symbolIter );
55 if ( symbolVectorIter == compressedBitParallelIndex.
getData ( ).end ( ) )
58 indexVector = ( indexVector << 1 ) & symbolVectorIter->second;
63 for (
unsigned i : indexVector )
64 res.insert (
i -
string.getContent ( ).size ( ) + 1 );
Definition: SparseBoolVector.hpp:27
Class extending the map class from the standard library. Original reason is to allow printing of the ...
Definition: map.hpp:48
Representation of integer sequence usable in foreach form of for loop.
Definition: foreach.hpp:408
virtual_pointer_to_integer< IntegralType > begin()
Getter of the begin iterator into the sequence.
Definition: foreach.hpp:447
virtual_pointer_to_integer< IntegralType > end()
Getter of the end iterator into the sequence.
Definition: foreach.hpp:457
Compressed bit parallel string index. Stores a bit vector for each symbol of the alphabet....
Definition: CompressedBitParallelIndex.h:53
const ext::map< SymbolType, common::SparseBoolVector > & getData() const &
Definition: CompressedBitParallelIndex.h:172
Linear string.
Definition: LinearString.h:57
Definition: CompressedBitParallelismFactors.h:23
static ext::set< unsigned > query(const indexes::stringology::CompressedBitParallelIndex< SymbolType > &compressedBitParallelIndex, const string::LinearString< SymbolType > &string)
Definition: CompressedBitParallelismFactors.h:37
int i
Definition: AllEpsilonClosure.h:118
return res
Definition: MinimizeByPartitioning.h:145
void end()
Definition: measurements.cpp:19
Definition: ArithmeticCompression.h:18