Everett
Loading...
Searching...
No Matches
Functions
everett::elias_fano_detail Namespace Reference

Functions

constexpr std::uint64_t add (std::uint64_t a, std::uint64_t b) noexcept
 
constexpr std::uint64_t multiply (std::uint64_t a, std::uint64_t b) noexcept
 
std::uint64_t words (std::uint64_t bits) noexcept
 
template<simd::architecture Arch = simd::scalar>
bool monotone (std::span< std::uint64_t const > source) noexcept
 
template<simd::architecture Arch = simd::scalar>
unsigned select_word (std::uint64_t value, unsigned ordinal) noexcept
 
template<unsigned W, std::size_t O, std::size_t I>
std::uint64_t low_component (std::uint64_t const *source) noexcept
 
template<unsigned W, std::size_t O, std::size_t... I>
std::uint64_t low_word (std::uint64_t const *source, std::index_sequence< I... >) noexcept
 
template<unsigned W, std::size_t... O>
void 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 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 low_packers (std::index_sequence< W... >) noexcept
 
template<simd::architecture Arch = simd::scalar>
void pack_low (std::span< std::uint64_t const > source, std::span< std::uint64_t > out, unsigned width)
 
void write_high (std::span< std::uint64_t const > source, std::span< std::uint64_t > out, unsigned width) noexcept
 

Function Documentation

◆ add()

constexpr std::uint64_t everett::elias_fano_detail::add ( std::uint64_t  a,
std::uint64_t  b 
)
constexprnoexcept

◆ low_component()

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)
inlinenoexcept

◆ low_packers()

template<simd::architecture Arch, std::size_t... W>
constexpr auto everett::elias_fano_detail::low_packers ( std::index_sequence< W... >  )
constexprnoexcept

◆ low_tile()

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... >   
)
inlinenoexcept

◆ low_word()

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... >   
)
inlinenoexcept

◆ monotone()

template<simd::architecture Arch = simd::scalar>
bool everett::elias_fano_detail::monotone ( std::span< std::uint64_t const >  source)
inlinenoexcept

◆ multiply()

constexpr std::uint64_t everett::elias_fano_detail::multiply ( std::uint64_t  a,
std::uint64_t  b 
)
constexprnoexcept

◆ pack_low()

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 
)
inline

◆ pack_low_fixed()

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 
)
inlinenoexcept

◆ select_word()

template<simd::architecture Arch = simd::scalar>
unsigned everett::elias_fano_detail::select_word ( std::uint64_t  value,
unsigned  ordinal 
)
inlinenoexcept

◆ words()

std::uint64_t everett::elias_fano_detail::words ( std::uint64_t  bits)
inlinenoexcept

◆ write_high()

void everett::elias_fano_detail::write_high ( std::span< std::uint64_t const >  source,
std::span< std::uint64_t >  out,
unsigned  width 
)
inlinenoexcept