30 template <
class SymbolType >
34template <
class SymbolType >
48 auto setting = variablesSetting.find ( pattern.
getContent ( )[ j + 1 ] );
50 if ( setting != variablesSetting.
end ( ) && repeats [
i + 1 ] != setting->second )
66template <
class SymbolType >
68 auto symbolIter = pattern.
getContent ( ).begin ( );
73 for (
size_t i = 0;
i < nonlinearCompressedBitParallelIndex.
getJumps ( ).size ( ) - 1; ++
i )
74 if (
static_cast < size_t > ( nonlinearCompressedBitParallelIndex.
getJumps ( ) [
i ] ) >
i )
82 if ( symbolVectorIter == nonlinearCompressedBitParallelIndex.
getData ( ).end ( ) )
87 for ( ++ symbolIter; symbolIter != pattern.
getContent ( ).
end ( ); ++ symbolIter ) {
92 for (
unsigned i : ( indexVector << 1 ) )
93 newVector [ nonlinearCompressedBitParallelIndex.
getJumps ( ) [
i ] - 1 ] =
true;
95 indexVector = newVector;
99 symbolVectorIter = nonlinearCompressedBitParallelIndex.
getData ( ).find ( * symbolIter );
101 if ( symbolVectorIter == nonlinearCompressedBitParallelIndex.
getData ( ).end ( ) )
104 indexVector = ( indexVector << 1 ) & symbolVectorIter->second;
110 for (
unsigned i : indexVector )
111 if (
include (
i, nonlinearCompressedBitParallelIndex.
getRepeats ( ), nonlinearCompressedBitParallelIndex.
getJumps ( ), pattern ) )
112 res.insert (
i + 1 );
Definition: NonlinearCompressedBitParallelismPatterns.h:21
static ext::set< unsigned > query(const indexes::arbology::NonlinearCompressedBitParallelTreeIndex< SymbolType > &nonlinearCompressedBitParallelIndex, const tree::PrefixRankedBarNonlinearPattern< SymbolType > &pattern)
Definition: NonlinearCompressedBitParallelismPatterns.h:67
Definition: SparseBoolVector.hpp:27
size_t size() const
Definition: SparseBoolVector.hpp:223
void resize(size_t newSize)
Definition: SparseBoolVector.hpp:212
Class extending the map class from the standard library. Original reason is to allow printing of the ...
Definition: map.hpp:48
std::pair< iterator, bool > insert(const T &key, const R &value)
Insert variant with explicit key and value parameters.
Definition: map.hpp:118
auto end() &
Inherited behavior of end for non-const instance.
Definition: map.hpp:215
Class extending the vector class from the standard library. Original reason is to allow printing of t...
Definition: vector.hpp:45
Compressed bit parallel nonlinear tree index. Stores a bit vector for each symbol of the alphabet....
Definition: NonlinearCompressedBitParallelTreeIndex.h:55
const ext::vector< int > & getJumps() const &
Definition: NonlinearCompressedBitParallelTreeIndex.h:224
const ext::map< common::ranked_symbol< SymbolType >, common::SparseBoolVector > & getData() const &
Definition: NonlinearCompressedBitParallelTreeIndex.h:214
const ext::vector< unsigned > & getRepeats() const &
Definition: NonlinearCompressedBitParallelTreeIndex.h:234
Nonlinear tree pattern represented as linear sequece as result of preorder traversal with additional ...
Definition: PrefixRankedBarNonlinearPattern.h:91
const ext::set< common::ranked_symbol< SymbolType > > & getNonlinearVariables() const &
Definition: PrefixRankedBarNonlinearPattern.h:277
const common::ranked_symbol< SymbolType > & getSubtreeWildcard() const &
Definition: PrefixRankedBarNonlinearPattern.h:259
const ext::vector< common::ranked_symbol< SymbolType > > & getContent() const &
Definition: PrefixRankedBarNonlinearPattern.h:434
const common::ranked_symbol< SymbolType > & getVariablesBar() const &
Definition: PrefixRankedBarNonlinearPattern.h:295
bool include(unsigned i, const ext::vector< unsigned > &repeats, const ext::vector< int > &jumps, const tree::PrefixRankedBarNonlinearPattern< SymbolType > &pattern)
Definition: NonlinearCompressedBitParallelismPatterns.h:35
Definition: BoyerMooreHorspool.h:22
int i
Definition: AllEpsilonClosure.h:118
return res
Definition: MinimizeByPartitioning.h:145
constexpr auto make_pair(T1 &&x, T2 &&y)
Definition: pair.hpp:79
void end()
Definition: measurements.cpp:19