26#include <ext/algorithm>
27#include <ext/iostream>
38#include <string/LinearString.h>
55template <
class SymbolType = DefaultSymbolType >
126 return std::move ( m_string ).getAlphabet ( );
142 return m_string.removeSymbol ( symbol );
176 return out <<
"(PositionHeap " << instance.m_trie <<
")";
188template <
class SymbolType >
190 checkTrie ( this->m_trie );
193template <
class SymbolType >
196 if ( ! getAlphabet ( ).count ( child.first ) )
198 checkTrie ( child.second );
202template <
class SymbolType >
207template <
class SymbolType >
209 return std::move ( m_trie );
212template <
class SymbolType >
217template <
class SymbolType >
219 return std::move ( m_string );
222template <
class SymbolType >
225 this->m_trie = std::move ( trie ).clone ( );
234template <
class SymbolType >
235struct normalize <
indexes::stringology::PositionHeap < common::ranked_symbol < SymbolType > > > {
256template <
class SymbolType >
Definition: ranked_symbol.hpp:20
Basic exception from which all other exceptions are derived.
Definition: CommonException.h:21
Class introducing a trie with interface trying to be close to the interface of standard library conta...
Definition: trie.hpp:47
static ext::trie< DefaultSymbolType, unsigned > normalizeTrie(ext::trie< SymbolType, unsigned > &&trie)
Definition: IndexesNormalize.h:60
static ext::trie< common::ranked_symbol< DefaultSymbolType >, unsigned > normalizeRankedTrie(ext::trie< common::ranked_symbol< SymbolType >, unsigned > &&trie)
Definition: IndexesNormalize.h:70
Position heap string index. Tree like representation of all suffixes. The suffixes are themselves rep...
Definition: PositionHeap.h:56
PositionHeap(ext::trie< SymbolType, unsigned > trie, string::LinearString< SymbolType > string)
Definition: PositionHeap.h:189
const ext::trie< SymbolType, unsigned > & getRoot() const &
Definition: PositionHeap.h:203
ext::set< SymbolType > && getAlphabet() &&
Definition: PositionHeap.h:125
const string::LinearString< SymbolType > & getString() const &
Definition: PositionHeap.h:213
auto operator<=>(const PositionHeap &other) const
Definition: PositionHeap.h:152
bool operator==(const PositionHeap &other) const
Definition: PositionHeap.h:163
friend ext::ostream & operator<<(ext::ostream &out, const PositionHeap &instance)
Definition: PositionHeap.h:175
void setTree(ext::trie< SymbolType, unsigned > trie)
Definition: PositionHeap.h:223
const ext::set< SymbolType > & getAlphabet() const &
Definition: PositionHeap.h:116
bool removeSymbolFromEdgeAlphabet(const SymbolType &symbol)
Definition: PositionHeap.h:141
Linear string.
Definition: LinearString.h:57
const ext::set< SymbolType > & getAlphabet() const &
Definition: LinearString.h:103
typename T::SymbolType SymbolType
Definition: ReachableStates.h:176
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
std::string to_string(const T &value)
To string method designated for objects that can be casted to string.
Definition: string.hpp:131
Definition: CompressedBitParallelTreeIndex.h:40
Definition: RandomStringFactory.cpp:12
Definition: ArithmeticCompression.h:18
static indexes::stringology::PositionHeap< > eval(indexes::stringology::PositionHeap< SymbolType > &&value)
Definition: PositionHeap.h:258
static indexes::stringology::PositionHeap< > eval(indexes::stringology::PositionHeap< common::ranked_symbol< SymbolType > > &&value)
Definition: PositionHeap.h:243
static indexes::stringology::PositionHeap< common::ranked_symbol< DefaultSymbolType > > evalRanked(indexes::stringology::PositionHeap< common::ranked_symbol< SymbolType > > &&value)
Definition: PositionHeap.h:236
Definition: normalize.hpp:13