26#include <ext/iostream>
50template <
class SymbolType = DefaultSymbolType >
93 return this->
template accessComponent < GeneralAlphabet > ( ).get ( );
102 return std::move ( this->
template accessComponent < GeneralAlphabet > ( ).
get ( ) );
119 return this->
template accessComponent < GeneralAlphabet > ( ).remove ( symbol );
153 return out <<
"(BitParallelIndex " << instance.m_vectors <<
")";
165template <
class SymbolType >
169template <
class SymbolType >
174template <
class SymbolType >
176 return std::move ( m_vectors );
179template <
class SymbolType >
186 if ( bitVector.second.size ( ) > index && bitVector.second [ index ] ) {
187 res.push_back ( bitVector.first );
191 }
while (
res.size ( ) == index ++ + 1 );
196template <
class SymbolType >
198 this->m_vectors [ symbol ] = std::move ( data );
212template <
class SymbolType >
225 return content.find( symbol ) != content.
end();
255template <
class SymbolType >
static ext::set< DefaultSymbolType > normalizeAlphabet(ext::set< SymbolType > &&symbols)
Definition: SymbolNormalize.h:50
static DefaultSymbolType normalizeSymbol(SymbolType &&symbol)
Definition: SymbolNormalize.h:68
Definition: components.hpp:181
static bool available(const indexes::stringology::BitParallelIndex< SymbolType > &, const SymbolType &)
Definition: BitParallelIndex.h:236
static void valid(const indexes::stringology::BitParallelIndex< SymbolType > &, const SymbolType &)
Definition: BitParallelIndex.h:246
static bool used(const indexes::stringology::BitParallelIndex< SymbolType > &index, const SymbolType &symbol)
Definition: BitParallelIndex.h:223
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
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::set< SymbolType > & getAlphabet() const &
Definition: BitParallelIndex.h:92
friend ext::ostream & operator<<(ext::ostream &out, const BitParallelIndex &instance)
Definition: BitParallelIndex.h:152
ext::vector< SymbolType > getString() const
Definition: BitParallelIndex.h:180
const ext::map< SymbolType, ext::vector< bool > > & getData() const &
Definition: BitParallelIndex.h:170
bool removeSymbolFromAlphabet(const SymbolType &symbol)
Definition: BitParallelIndex.h:118
BitParallelIndex(ext::set< SymbolType > alphabet, ext::map< SymbolType, ext::vector< bool > > vectors)
Definition: BitParallelIndex.h:166
bool operator==(const BitParallelIndex &other) const
Definition: BitParallelIndex.h:140
ext::set< SymbolType > && getAlphabet() &&
Definition: BitParallelIndex.h:101
void setBitVectorForSymbol(SymbolType symbol, ext::vector< bool > data)
Definition: BitParallelIndex.h:197
auto operator<=>(const BitParallelIndex &other) const
Definition: BitParallelIndex.h:129
Definition: BarSymbol.cpp:12
typename T::SymbolType SymbolType
Definition: ReachableStates.h:176
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
Definition: ArithmeticCompression.h:18
static indexes::stringology::BitParallelIndex< > eval(indexes::stringology::BitParallelIndex< SymbolType > &&value)
Definition: BitParallelIndex.h:257
Definition: normalize.hpp:13