8 #ifndef INCLUDED_SDSL_CSA_UNCOMPRESSED
9 #define INCLUDED_SDSL_CSA_UNCOMPRESSED
44 template <
class t_alphabet_strat =
byte_alphabet>
69 typedef typename alphabet_type::char_type
char_type;
90 const typename alphabet_type::char2comp_type &
char2comp = m_alphabet.char2comp;
91 const typename alphabet_type::comp2char_type &
comp2char = m_alphabet.comp2char;
92 const typename alphabet_type::C_type &
C = m_alphabet.C;
93 const typename alphabet_type::sigma_type &
sigma = m_alphabet.sigma;
110 , m_alphabet(csa.m_alphabet)
119 std::string text_file =
cache_file_name(key_text<alphabet_type::int_width>(), config);
145 bool empty()
const {
return m_sa.empty(); }
175 *
this = std::move(tmp);
188 m_sa = std::move(csa.m_sa);
189 m_isa = std::move(csa.m_isa);
190 m_alphabet = std::move(csa.m_alphabet);
198 return (m_sa == other.m_sa) && (m_isa == other.m_isa) && (m_alphabet == other.m_alphabet);
212 written_bytes += m_sa.serialize(out, child,
"m_sa");
213 written_bytes += m_isa.serialize(out, child,
"m_isa");
214 written_bytes += m_alphabet.serialize(out, child,
"m_alphabet");
216 return written_bytes;
226 template <
typename archive_t>
234 template <
typename archive_t>
257 if (cc == 0 and c != 0)
262 while (lower_b + 1 < upper_b)
271 return lower_b -
C[cc] + 1;
274 return psi[lower_b] < i;
290 if (cc == 0 and c != 0)
292 if (
C[cc] + i - 1 <
C[((
size_type)1) + cc]) {
return psi[
C[cc] + i - 1]; }
A wrapper for the bwt of a compressed suffix array that is based on the function.
A class for the uncompressed suffix array (SA).
bwt_of_csa_psi< csa_bitcompressed > bwt_type
csa_bitcompressed & operator=(csa_bitcompressed &&csa)
Assignment Move Operator.
csa_bitcompressed()
Default constructor.
const alphabet_type::char2comp_type & char2comp
bool operator==(csa_bitcompressed const &other) const noexcept
Equality operator.
traverse_csa_saisa< csa_bitcompressed, false > lf_type
const alphabet_type::C_type & C
const alphabet_type::comp2char_type & comp2char
_isa_sampling< csa_bitcompressed, 0 > isa_sample_type
const sa_sample_type & sa_sample
void load(std::istream &in)
_sa_order_sampling< csa_bitcompressed, 0 > sa_sample_type
bool empty() const
Returns if the data structure is empty.
const_reference * pointer
size_type get_sample_dens() const
value_type operator[](size_type i) const
[]-operator
csa_bitcompressed(const csa_bitcompressed &csa)
Copy constructor.
csa_bitcompressed & operator=(const csa_bitcompressed &csa)
Assignment Operator.
const alphabet_type::sigma_type & sigma
bool operator!=(csa_bitcompressed const &other) const noexcept
Inequality operator.
size_type size() const
Number of elements in the instance.
csa_bitcompressed csa_type
alphabet_type::string_type string_type
size_type serialize(std::ostream &out, structure_tree_node *v=nullptr, std::string name="") const
Serialize to a stream.
csa_bitcompressed(csa_bitcompressed &&csa)
Move constructor.
csa_bitcompressed(cache_config &config)
Constructor.
random_access_const_iterator< csa_bitcompressed > const_iterator
traverse_csa_saisa< csa_bitcompressed, true > psi_type
text_of_csa< csa_bitcompressed > text_type
const isa_sample_type & isa_sample
alphabet_type::char_type char_type
const_iterator begin() const
Returns a const_iterator to the first element.
const pointer const_pointer
void CEREAL_LOAD_FUNCTION_NAME(archive_t &ar)
const_iterator end() const
Returns a const_iterator to the element after the last element.
ptrdiff_t difference_type
const value_type const_reference
static size_type max_size()
Returns the largest size that csa_bitcompressed can ever have.
void CEREAL_SAVE_FUNCTION_NAME(archive_t &ar) const
const_reference reference
alphabet_type::comp_char_type comp_char_type
t_alphabet_strat alphabet_type
first_row_of_csa< csa_bitcompressed > first_row_type
int_vector ::size_type size_type
alphabet_type::alphabet_category alphabet_category
uint64_t size() const
Returns the number of elements currently stored.
A generic vector class for integers of width .
static size_type max_size() noexcept
Maximum size of the int_vector.
Generic iterator for a random access container.
static void add_size(structure_tree_node *v, uint64_t value)
static structure_tree_node * add_child(structure_tree_node *v, const std::string &name, const std::string &type)
A helper class for the function for (compressed) suffix arrays which provide also the inverse suffix...
csa_alphabet_strategy.hpp includes different strategy classes for representing an alphabet of a CSA.
csa_sampling_strategy.hpp includes different strategy classes for suffix array sampling in the CSAs.
int_vector.hpp contains the sdsl::int_vector class.
iterators.hpp contains an generic iterator for random access containers.
Namespace for the succinct data structure library.
std::string cache_file_name(const std::string &key, const cache_config &config)
Returns the file name of the resource.
Contains declarations and definitions of data structure concepts.
Helper class for construction process.
suffix_array_helper.hpp contains some helper classes for CSTs
util.hpp contains some helper methods for int_vector and other stuff like demangle class names.