9#include <string/LinearString.h>
31 template <
class SymbolType >
36template <
class SymbolType >
38 if (
string.getContent ( ).empty ( ) ) {
39 if ( bitParallelIndex.
getData ( ).begin ( ) == bitParallelIndex.
getData ( ).end ( ) )
45 auto symbolIter =
string.getContent ( ).begin ( );
47 if ( symbolVectorIter == bitParallelIndex.
getData ( ).end ( ) )
52 for ( ++ symbolIter; symbolIter !=
string.getContent ( ).
end ( ); ++ symbolIter ) {
53 symbolVectorIter = bitParallelIndex.
getData ( ).find ( * symbolIter );
54 if ( symbolVectorIter == bitParallelIndex.
getData ( ).end ( ) )
57 indexVector = ( indexVector << 1 ) & symbolVectorIter->second;
61 for (
unsigned i = 0;
i < indexVector.size ( );
i++ )
62 if ( indexVector [
i ] )
63 res.insert (
i -
string.getContent ( ).size ( ) + 1 );
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
Class extending the vector class from the standard library. Original reason is to allow printing of t...
Definition: vector.hpp:45
Bit parallel string index. Stores a bit vector for each symbol of the alphabet. The bit vector of sym...
Definition: BitParallelIndex.h:51
const ext::map< SymbolType, ext::vector< bool > > & getData() const &
Definition: BitParallelIndex.h:170
Linear string.
Definition: LinearString.h:57
Definition: BitParallelismFactors.h:23
static ext::set< unsigned > query(const indexes::stringology::BitParallelIndex< SymbolType > &bitParallelIndex, const string::LinearString< SymbolType > &string)
Definition: BitParallelismFactors.h:37
int i
Definition: AllEpsilonClosure.h:118
return res
Definition: MinimizeByPartitioning.h:145
void end()
Definition: measurements.cpp:19
Definition: ArithmeticCompression.h:18