|
Everett
|
Encodes and selects arbitrary nondecreasing integer sequences. More...
#include <algorithm>#include <array>#include <everett/word_view.h>#include <everett/error_detail.h>#include <everett/backend.h>#include <simd/integer.h>#include <simd/packing.h>#include <bit>#include <cstddef>#include <cstdint>#include <limits>#include <numeric>#include <span>#include <stdexcept>#include <utility>#include <vector>Go to the source code of this file.
Classes | |
| struct | everett::elias_fano_sample |
| struct | everett::elias_fano_view |
| struct | everett::elias_fano_cursor |
| struct | everett::elias_fano |
Namespaces | |
| namespace | everett |
| namespace | everett::elias_fano_detail |
Functions | |
| constexpr std::uint64_t | everett::elias_fano_detail::add (std::uint64_t a, std::uint64_t b) noexcept |
| constexpr std::uint64_t | everett::elias_fano_detail::multiply (std::uint64_t a, std::uint64_t b) noexcept |
| std::uint64_t | everett::elias_fano_detail::words (std::uint64_t bits) noexcept |
| template<simd::architecture Arch = simd::scalar> | |
| bool | everett::elias_fano_detail::monotone (std::span< std::uint64_t const > source) noexcept |
| template<simd::architecture Arch = simd::scalar> | |
| unsigned | everett::elias_fano_detail::select_word (std::uint64_t value, unsigned ordinal) noexcept |
| template<unsigned W, std::size_t O, std::size_t I> | |
| std::uint64_t | everett::elias_fano_detail::low_component (std::uint64_t const *source) noexcept |
| template<unsigned W, std::size_t O, std::size_t... I> | |
| std::uint64_t | everett::elias_fano_detail::low_word (std::uint64_t const *source, std::index_sequence< I... >) noexcept |
| template<unsigned W, std::size_t... O> | |
| void | everett::elias_fano_detail::low_tile (std::uint64_t const *source, std::uint64_t *out, std::index_sequence< O... >) noexcept |
| template<unsigned W, simd::architecture Arch = simd::scalar> | |
| void | everett::elias_fano_detail::pack_low_fixed (std::span< std::uint64_t const > source, std::span< std::uint64_t > out) noexcept |
| template<simd::architecture Arch, std::size_t... W> | |
| constexpr auto | everett::elias_fano_detail::low_packers (std::index_sequence< W... >) noexcept |
| template<simd::architecture Arch = simd::scalar> | |
| void | everett::elias_fano_detail::pack_low (std::span< std::uint64_t const > source, std::span< std::uint64_t > out, unsigned width) |
| void | everett::elias_fano_detail::write_high (std::span< std::uint64_t const > source, std::span< std::uint64_t > out, unsigned width) noexcept |
Encodes and selects arbitrary nondecreasing integer sequences.