Skip to content

Occurrence Table

These are mainly a wrapper around RankVector giving them additional functionality. More specific for the FM-Index they provide the 'C' array. GenericOccTable is the direct translation of RankVector and adding a 'C' array. All others are special implementations that haven't been refactored yet.

OccTable (fmindex_collection::OccTable)

Classes fulfilling this concept provide the member functions:

  • auto rank(size_t idx, uint8_t symb) const -> size_t
  • auto prefix_rank(size_t idx, uint8_t symb) const -> size_t
  • auto all_ranks(size_t) const -> std::tuple<std::array<size_t, T::Sigma>, std::array<size_t, T::Sigma>>
  • auto size() const -> size_t

Implementation

occ table (fmindex_collection::) Description
GenericOccTable<SymbolVector Vector> Wrapper around a rank supported vector
occtable::compactBitvectorPrefix::OccTable<size_t TSigma> uses internal bit vectors representing prefix values
occtable::eprV8::OccTable<size_t TSigma> Variable sized alphabet vector (TSigma has no functionality)
occtable::interleavedPrefix::OccTablee<size_t TSigma> uses internal bit vectors representing prefix values