54template <
class SymbolType = DefaultSymbolType >
137 return this->
template accessComponent < GeneralAlphabet > ( ).get ( );
146 return std::move ( this->
template accessComponent < GeneralAlphabet > ( ).
get ( ) );
163 return this->
template accessComponent < GeneralAlphabet > ( ).remove ( symbol );
197 return out <<
"(NonlinearCompressedBitParallelTreeIndex " << instance.m_vectors <<
", " << instance.m_jumpTable <<
")";
209template <
class SymbolType >
210NonlinearCompressedBitParallelTreeIndex < SymbolType >::NonlinearCompressedBitParallelTreeIndex (
ext::set < common::ranked_symbol < SymbolType > >
alphabet,
ext::map < common::ranked_symbol < SymbolType >,
common::SparseBoolVector > vectors,
ext::vector < int > jumpTable,
ext::vector < unsigned > repeats ) :
core::Components <
NonlinearCompressedBitParallelTreeIndex,
ext::set <
common::ranked_symbol < SymbolType > >, component::Set, GeneralAlphabet > ( std::move (
alphabet ) ), m_vectors ( std::move ( vectors ) ), m_jumpTable ( std::move ( jumpTable ) ), m_repeats ( std::move ( repeats ) ) {
213template <
class SymbolType >
218template <
class SymbolType >
220 return std::move ( m_vectors );
223template <
class SymbolType >
228template <
class SymbolType >
230 return std::move ( m_jumpTable );
233template <
class SymbolType >
238template <
class SymbolType >
240 return std::move ( m_repeats );
243template <
class SymbolType >
251 if ( nonlinearcompressedBitVector.second.size ( ) > index && nonlinearcompressedBitVector.second [ index ] ) {
252 res.push_back ( nonlinearcompressedBitVector.first );
256 }
while (
res.size ( ) == index ++ + 1 );
261template <
class SymbolType >
263 this->m_vectors [ symbol ] = std::move ( data );
277template <
class SymbolType >
291 return content.find ( symbol ) != content.
end ( );
322template <
class SymbolType >
323struct normalize <
indexes::arbology::NonlinearCompressedBitParallelTreeIndex < SymbolType > > {
static common::ranked_symbol< DefaultSymbolType > normalizeRankedSymbol(common::ranked_symbol< SymbolType > &&symbol)
Definition: SymbolNormalize.h:81
static ext::set< common::ranked_symbol< DefaultSymbolType > > normalizeRankedAlphabet(ext::set< common::ranked_symbol< SymbolType > > &&symbols)
Definition: SymbolNormalize.h:59
Definition: SparseBoolVector.hpp:27
Definition: ranked_symbol.hpp:20
Definition: components.hpp:181
static bool available(const indexes::arbology::NonlinearCompressedBitParallelTreeIndex< SymbolType > &, const common::ranked_symbol< SymbolType > &)
Definition: NonlinearCompressedBitParallelTreeIndex.h:302
static void valid(const indexes::arbology::NonlinearCompressedBitParallelTreeIndex< SymbolType > &, const common::ranked_symbol< SymbolType > &)
Definition: NonlinearCompressedBitParallelTreeIndex.h:312
static bool used(const indexes::arbology::NonlinearCompressedBitParallelTreeIndex< SymbolType > &index, const common::ranked_symbol< SymbolType > &symbol)
Definition: NonlinearCompressedBitParallelTreeIndex.h:288
Definition: setComponents.hpp:26
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
bool removeSymbolFromAlphabet(const common::ranked_symbol< SymbolType > &symbol)
Definition: NonlinearCompressedBitParallelTreeIndex.h:162
const ext::vector< int > & getJumps() const &
Definition: NonlinearCompressedBitParallelTreeIndex.h:224
friend ext::ostream & operator<<(ext::ostream &out, const NonlinearCompressedBitParallelTreeIndex &instance)
Definition: NonlinearCompressedBitParallelTreeIndex.h:196
const ext::map< common::ranked_symbol< SymbolType >, common::SparseBoolVector > & getData() const &
Definition: NonlinearCompressedBitParallelTreeIndex.h:214
const ext::set< common::ranked_symbol< SymbolType > > & getAlphabet() const &
Definition: NonlinearCompressedBitParallelTreeIndex.h:136
ext::set< common::ranked_symbol< SymbolType > > && getAlphabet() &&
Definition: NonlinearCompressedBitParallelTreeIndex.h:145
bool operator==(const NonlinearCompressedBitParallelTreeIndex &other) const
Definition: NonlinearCompressedBitParallelTreeIndex.h:184
auto operator<=>(const NonlinearCompressedBitParallelTreeIndex &other) const
Definition: NonlinearCompressedBitParallelTreeIndex.h:173
const ext::vector< unsigned > & getRepeats() const &
Definition: NonlinearCompressedBitParallelTreeIndex.h:234
NonlinearCompressedBitParallelTreeIndex(ext::set< common::ranked_symbol< SymbolType > > alphabet, ext::map< common::ranked_symbol< SymbolType >, common::SparseBoolVector > vectors, ext::vector< int > jumpTable, ext::vector< unsigned > repeats)
Definition: NonlinearCompressedBitParallelTreeIndex.h:210
void setNonlinearCompressedBitVectorForSymbol(common::ranked_symbol< SymbolType > symbol, common::SparseBoolVector data)
Definition: NonlinearCompressedBitParallelTreeIndex.h:262
ext::vector< common::ranked_symbol< SymbolType > > getString() const
Definition: NonlinearCompressedBitParallelTreeIndex.h:244
Definition: BarSymbol.cpp:12
Definition: BoyerMooreHorspool.h:22
return res
Definition: MinimizeByPartitioning.h:145
Definition: normalize.hpp:10
constexpr tuple< Elements &... > tie(Elements &... args) noexcept
Helper of extended tuple of references construction. The tuple is constructed to reffer to values in ...
Definition: tuple.hpp:218
reference_mover< T > make_mover(T ¶m)
Move adaptor construction function specialized to lvalue reference parameter.
Definition: iterator.hpp:468
constexpr auto make_pair(T1 &&x, T2 &&y)
Definition: pair.hpp:79
Definition: CompressedBitParallelTreeIndex.h:40
auto & get(ext::ptr_array< Type, N > &tpl)
Specialisation of get function for pointer arrays.
Definition: ptr_array.hpp:693
static indexes::arbology::NonlinearCompressedBitParallelTreeIndex< > eval(indexes::arbology::NonlinearCompressedBitParallelTreeIndex< SymbolType > &&value)
Definition: NonlinearCompressedBitParallelTreeIndex.h:324
Definition: normalize.hpp:13