Everett
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
everett::rank_groups_view< K > Struct Template Reference

#include <rank_groups.h>

Public Member Functions

 rank_groups_view (std::span< std::uint64_t const > classes, std::span< std::uint64_t const > checkpoints, std::uint64_t virtual_count)
 
template<class Words >
requires std::is_same_v<Words, word_view>
 rank_groups_view (Words classes, Words checkpoints, std::uint64_t virtual_count)
 
std::uint64_t size () const noexcept
 
template<simd::architecture Arch = simd::scalar>
std::uint64_t count () const
 
std::uint64_t group_count () const noexcept
 
word_view class_words () const noexcept
 
word_view checkpoint_words () const noexcept
 
std::uint64_t class_at (std::uint64_t group) const
 
template<simd::architecture Arch = simd::scalar>
std::uint64_t rank (std::uint64_t group) const
 

Static Public Attributes

static constexpr std::uint64_t group_size = K
 
static constexpr unsigned class_bits = unsigned(std::countr_zero(K + 1))
 

Private Member Functions

std::uint64_t read_class (std::uint64_t group) const noexcept
 

Static Private Member Functions

static std::uint64_t add_prefix (std::uint64_t checkpoint, std::uint64_t prefix, std::uint64_t limit)
 

Private Attributes

word_view classes_
 
word_view checkpoints_
 
std::uint64_t virtual_count_
 

Constructor & Destructor Documentation

◆ rank_groups_view() [1/2]

template<std::uint64_t K>
everett::rank_groups_view< K >::rank_groups_view ( std::span< std::uint64_t const >  classes,
std::span< std::uint64_t const >  checkpoints,
std::uint64_t  virtual_count 
)
inline

◆ rank_groups_view() [2/2]

template<std::uint64_t K>
template<class Words >
requires std::is_same_v<Words, word_view>
everett::rank_groups_view< K >::rank_groups_view ( Words  classes,
Words  checkpoints,
std::uint64_t  virtual_count 
)
inline

Member Function Documentation

◆ add_prefix()

template<std::uint64_t K>
static std::uint64_t everett::rank_groups_view< K >::add_prefix ( std::uint64_t  checkpoint,
std::uint64_t  prefix,
std::uint64_t  limit 
)
inlinestaticprivate

◆ checkpoint_words()

template<std::uint64_t K>
word_view everett::rank_groups_view< K >::checkpoint_words ( ) const
inlinenoexcept

◆ class_at()

template<std::uint64_t K>
std::uint64_t everett::rank_groups_view< K >::class_at ( std::uint64_t  group) const
inline

◆ class_words()

template<std::uint64_t K>
word_view everett::rank_groups_view< K >::class_words ( ) const
inlinenoexcept

◆ count()

template<std::uint64_t K>
template<simd::architecture Arch = simd::scalar>
std::uint64_t everett::rank_groups_view< K >::count ( ) const
inline

◆ group_count()

template<std::uint64_t K>
std::uint64_t everett::rank_groups_view< K >::group_count ( ) const
inlinenoexcept

◆ rank()

template<std::uint64_t K>
template<simd::architecture Arch = simd::scalar>
std::uint64_t everett::rank_groups_view< K >::rank ( std::uint64_t  group) const
inline

◆ read_class()

template<std::uint64_t K>
std::uint64_t everett::rank_groups_view< K >::read_class ( std::uint64_t  group) const
inlineprivatenoexcept

◆ size()

template<std::uint64_t K>
std::uint64_t everett::rank_groups_view< K >::size ( ) const
inlinenoexcept

Member Data Documentation

◆ checkpoints_

template<std::uint64_t K>
word_view everett::rank_groups_view< K >::checkpoints_
private

◆ class_bits

template<std::uint64_t K>
constexpr unsigned everett::rank_groups_view< K >::class_bits = unsigned(std::countr_zero(K + 1))
staticconstexpr

◆ classes_

template<std::uint64_t K>
word_view everett::rank_groups_view< K >::classes_
private

◆ group_size

template<std::uint64_t K>
constexpr std::uint64_t everett::rank_groups_view< K >::group_size = K
staticconstexpr

◆ virtual_count_

template<std::uint64_t K>
std::uint64_t everett::rank_groups_view< K >::virtual_count_
private

The documentation for this struct was generated from the following file: