Class PartitionedEliasFano

Nested Relationships

Nested Types

Class Documentation

class PartitionedEliasFano

a static strictly increasing sequence of integers in blocks, each coded as full, as a vector of bits or by Elias-Fano, with access and nextGEQ

Public Types

using value_type = std::uint64_t
using size_type = std::size_t
using difference_type = std::ptrdiff_t
using reference = std::uint64_t
using const_reference = std::uint64_t
using const_iterator = SubscriptIterator<PartitionedEliasFano, std::uint64_t>
using iterator = const_iterator

Public Functions

PartitionedEliasFano(void) = default
explicit PartitionedEliasFano(std::span<const std::uint64_t> x)

the sequence x, with the universe x.back() + 1

PartitionedEliasFano(std::span<const std::uint64_t> x, std::uint64_t u)

the sequence x in [ 0 , u )

Pre:

x is strictly increasing, x.back() < u

inline std::size_t size(void) const
inline bool empty(void) const
inline std::uint64_t universe(void) const
std::uint64_t access(std::size_t i) const

the item i

Pre:

i < size()

inline std::uint64_t operator[](std::size_t i) const
std::size_t nextGEQ(std::uint64_t x) const

the place of the first item >= x, size() if none

bool contains(std::uint64_t x) const

whether x is in the sequence

std::array<std::size_t, 3> kinds(void) const

the numbers of the full blocks, of those coded as vectors and of those coded by Elias-Fano

std::size_t sizeInBits(void) const

the bits of the codes, of the records and of the records apart

inline const_iterator begin(void) const
inline const_iterator end(void) const
inline const_iterator cbegin(void) const
inline const_iterator cend(void) const