26#include <ext/iostream>
52template <
class SymbolType = DefaultSymbolType >
95 return this->
template accessComponent < GeneralAlphabet > ( ).get ( );
104 return std::move ( this->
template accessComponent < GeneralAlphabet > ( ).
get ( ) );
121 return this->
template accessComponent < GeneralAlphabet > ( ).remove ( symbol );
155 return out <<
"(CompressedBitParallelIndex " << instance.m_vectors <<
")";
167template <
class SymbolType >
171template <
class SymbolType >
176template <
class SymbolType >
178 return std::move ( m_vectors );
181template <
class SymbolType >
187 for (
const std::pair < const SymbolType, common::SparseBoolVector > & compressedBitVector : m_vectors )
188 if ( compressedBitVector.second.size ( ) > index && compressedBitVector.second [ index ] ) {
189 res.push_back ( compressedBitVector.first );
193 }
while (
res.size ( ) == index ++ + 1 );
198template <
class SymbolType >
200 this->m_vectors [ symbol ] = std::move ( data );
214template <
class SymbolType >
227 return content.find( symbol ) != content.
end();
257template <
class SymbolType >
263 for ( std::pair < SymbolType, common::SparseBoolVector > && vector :
ext::make_mover ( std::move ( value ).getData ( ) ) )
static ext::set< DefaultSymbolType > normalizeAlphabet(ext::set< SymbolType > &&symbols)
Definition: SymbolNormalize.h:50
static DefaultSymbolType normalizeSymbol(SymbolType &&symbol)
Definition: SymbolNormalize.h:68
Definition: SparseBoolVector.hpp:27
Definition: components.hpp:181
static void valid(const indexes::stringology::CompressedBitParallelIndex< SymbolType > &, const SymbolType &)
Definition: CompressedBitParallelIndex.h:248
static bool available(const indexes::stringology::CompressedBitParallelIndex< SymbolType > &, const SymbolType &)
Definition: CompressedBitParallelIndex.h:238
static bool used(const indexes::stringology::CompressedBitParallelIndex< SymbolType > &index, const SymbolType &symbol)
Definition: CompressedBitParallelIndex.h:225
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 string index. Stores a bit vector for each symbol of the alphabet....
Definition: CompressedBitParallelIndex.h:53
CompressedBitParallelIndex(ext::set< SymbolType > alphabet, ext::map< SymbolType, common::SparseBoolVector > vectors)
Definition: CompressedBitParallelIndex.h:168
const ext::set< SymbolType > & getAlphabet() const &
Definition: CompressedBitParallelIndex.h:94
ext::set< SymbolType > && getAlphabet() &&
Definition: CompressedBitParallelIndex.h:103
ext::vector< SymbolType > getString() const
Definition: CompressedBitParallelIndex.h:182
auto operator==(const CompressedBitParallelIndex &other) const
Definition: CompressedBitParallelIndex.h:142
void setCompressedBitVectorForSymbol(SymbolType symbol, common::SparseBoolVector data)
Definition: CompressedBitParallelIndex.h:199
bool removeSymbolFromAlphabet(const SymbolType &symbol)
Definition: CompressedBitParallelIndex.h:120
const ext::map< SymbolType, common::SparseBoolVector > & getData() const &
Definition: CompressedBitParallelIndex.h:172
friend ext::ostream & operator<<(ext::ostream &out, const CompressedBitParallelIndex &instance)
Definition: CompressedBitParallelIndex.h:154
auto operator<=>(const CompressedBitParallelIndex &other) const
Definition: CompressedBitParallelIndex.h:131
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::CompressedBitParallelIndex< > eval(indexes::stringology::CompressedBitParallelIndex< SymbolType > &&value)
Definition: CompressedBitParallelIndex.h:259
Definition: normalize.hpp:13