Dash Core Source Documentation (0.16.0.1)
Find detailed information regarding the Dash Core source code.
Typedefs | |
using | bits_t = std::uint32_t |
using | shift_t = std::uint32_t |
using | count_t = std::uint32_t |
using | size_t = std::size_t |
template<typename Node > | |
using | concat_center_mut_pos = concat_center_pos< Node > |
template<typename Pos > | |
using | node_type = typename std::decay< Pos >::type::node_t |
template<typename Pos > | |
using | edit_type = typename std::decay< Pos >::type::node_t::edit_t |
template<typename Pos > | |
using | is_relaxed = std::is_same< relaxed_pos< typename std::decay_t< Pos >::node_t >, std::decay_t< Pos > > |
Functions | |
template<typename T , typename MP , bits_t B> | |
constexpr bits_t | derive_bits_leaf_aux () |
template<typename NodeT > | |
void | dec_leaf (NodeT *node, count_t n) |
template<typename NodeT > | |
void | dec_inner (NodeT *node, shift_t shift, size_t size) |
template<typename NodeT > | |
void | dec_relaxed (NodeT *node, shift_t shift) |
template<typename NodeT > | |
void | dec_regular (NodeT *node, shift_t shift, size_t size) |
template<typename NodeT > | |
void | dec_empty_regular (NodeT *node) |
template<typename Node , typename LPos , typename CPos , typename RPos > | |
concat_center_pos< Node > | concat_rebalance (LPos &&lpos, CPos &&cpos, RPos &&rpos) |
template<typename Node , typename LPos , typename TPos , typename RPos > | |
concat_center_pos< Node > | concat_leafs (LPos &&lpos, TPos &&tpos, RPos &&rpos) |
template<typename Node , typename LPos , typename TPos , typename RPos > | |
concat_center_pos< Node > | concat_inners (LPos &&lpos, TPos &&tpos, RPos &&rpos) |
template<typename Node > | |
relaxed_pos< Node > | concat_trees (Node *lroot, shift_t lshift, size_t lsize, Node *ltail, count_t ltcount, Node *rroot, shift_t rshift, size_t rsize) |
template<typename Node > | |
relaxed_pos< Node > | concat_trees (Node *ltail, count_t ltcount, Node *rroot, shift_t rshift, size_t rsize) |
template<typename Node , typename LPos , typename CPos , typename RPos > | |
concat_center_pos< Node > | concat_rebalance_mut (edit_type< Node > ec, edit_type< Node > el, LPos &&lpos, CPos &&cpos, edit_type< Node > er, RPos &&rpos) |
template<typename Node , typename LPos , typename TPos , typename RPos > | |
concat_center_mut_pos< Node > | concat_leafs_mut (edit_type< Node > ec, edit_type< Node > el, LPos &&lpos, TPos &&tpos, edit_type< Node > er, RPos &&rpos) |
template<typename Node , typename LPos , typename TPos , typename RPos > | |
concat_center_mut_pos< Node > | concat_inners_mut (edit_type< Node > ec, edit_type< Node > el, LPos &&lpos, TPos &&tpos, edit_type< Node > er, RPos &&rpos) |
template<typename Node > | |
relaxed_pos< Node > | concat_trees_mut (edit_type< Node > ec, edit_type< Node > el, Node *lroot, shift_t lshift, size_t lsize, Node *ltail, count_t ltcount, edit_type< Node > er, Node *rroot, shift_t rshift, size_t rsize) |
template<typename Node > | |
relaxed_pos< Node > | concat_trees_mut (edit_type< Node > ec, edit_type< Node > el, Node *ltail, count_t ltcount, edit_type< Node > er, Node *rroot, shift_t rshift, size_t rsize) |
template<typename NodeT > | |
empty_regular_pos< NodeT > | make_empty_regular_pos (NodeT *node) |
template<typename NodeT > | |
empty_leaf_pos< NodeT > | make_empty_leaf_pos (NodeT *node) |
template<typename NodeT > | |
leaf_pos< NodeT > | make_leaf_pos (NodeT *node, size_t size) |
template<typename NodeT > | |
leaf_sub_pos< NodeT > | make_leaf_sub_pos (NodeT *node, count_t count) |
template<typename NodeT > | |
leaf_descent_pos< NodeT > | make_leaf_descent_pos (NodeT *node) |
template<typename NodeT > | |
full_leaf_pos< NodeT > | make_full_leaf_pos (NodeT *node) |
template<typename Pos , typename Visitor , typename... Args> | |
void | each_regular (Pos &&p, Visitor v, Args &&... args) |
template<typename Pos , typename Visitor , typename... Args> | |
bool | each_pred_regular (Pos &&p, Visitor v, Args &&... args) |
template<typename Pos , typename Visitor , typename... Args> | |
bool | each_pred_zip_regular (Pos &&p, Visitor v, node_type< Pos > *other, Args &&... args) |
template<typename Pos , typename Visitor , typename... Args> | |
bool | each_pred_i_regular (Pos &&p, Visitor v, count_t f, count_t l, Args &&... args) |
template<typename Pos , typename Visitor , typename... Args> | |
bool | each_pred_left_regular (Pos &&p, Visitor v, count_t last, Args &&... args) |
template<typename Pos , typename Visitor , typename... Args> | |
bool | each_pred_right_regular (Pos &&p, Visitor v, count_t start, Args &&... args) |
template<typename Pos , typename Visitor , typename... Args> | |
void | each_i_regular (Pos &&p, Visitor v, count_t f, count_t l, Args &&... args) |
template<typename Pos , typename Visitor , typename... Args> | |
void | each_left_regular (Pos &&p, Visitor v, count_t last, Args &&... args) |
template<typename Pos , typename Visitor , typename... Args> | |
void | each_right_regular (Pos &&p, Visitor v, count_t start, Args &&... args) |
template<typename Pos , typename Visitor , typename... Args> | |
decltype(auto) | towards_oh_ch_regular (Pos &&p, Visitor v, size_t idx, count_t offset_hint, count_t count_hint, Args &&... args) |
template<typename Pos , typename Visitor , typename... Args> | |
decltype(auto) | towards_sub_oh_regular (Pos &&p, Visitor v, size_t idx, count_t offset_hint, Args &&... args) |
template<typename Pos , typename Visitor , typename... Args> | |
decltype(auto) | last_oh_regular (Pos &&p, Visitor v, count_t offset_hint, Args &&... args) |
template<typename NodeT > | |
regular_pos< NodeT > | make_regular_pos (NodeT *node, shift_t shift, size_t size) |
template<typename NodeT > | |
auto | make_singleton_regular_sub_pos (NodeT *leaf, count_t count) |
template<typename NodeT > | |
regular_sub_pos< NodeT > | make_regular_sub_pos (NodeT *node, shift_t shift, size_t size) |
template<typename NodeT , typename Visitor > | |
decltype(auto) | visit_regular_descent (NodeT *node, shift_t shift, Visitor v, size_t idx) |
template<typename NodeT > | |
full_pos< NodeT > | make_full_pos (NodeT *node, shift_t shift) |
template<typename NodeT > | |
relaxed_pos< NodeT > | make_relaxed_pos (NodeT *node, shift_t shift, typename NodeT::relaxed_t *relaxed) |
template<typename NodeT , typename Visitor , typename... Args> | |
decltype(auto) | visit_maybe_relaxed_sub (NodeT *node, shift_t shift, size_t size, Visitor v, Args &&...args) |
template<typename NodeT , typename Visitor , typename... Args> | |
decltype(auto) | visit_maybe_relaxed_descent (NodeT *node, shift_t shift, Visitor v, size_t idx) |
Variables | |
template<bits_t B, typename T = count_t> | |
constexpr T | branches = T{1} << B |
template<bits_t B, typename T = size_t> | |
constexpr T | mask = branches<B, T> - 1 |
template<bits_t B, bits_t BL> | |
constexpr shift_t | endshift = shift_t{BL} - shift_t{B} |
template<typename T , typename MP , bits_t B> | |
constexpr bits_t | derive_bits_leaf = derive_bits_leaf_aux<T, MP, B>() |
template<typename Pos > | |
constexpr auto | bits = std::decay_t<Pos>::node_t::bits |
template<typename Pos > | |
constexpr auto | bits_leaf = std::decay_t<Pos>::node_t::bits_leaf |
template<typename Pos > | |
constexpr auto | is_relaxed_v = is_relaxed<Pos>::value |
Typedef Documentation
◆ bits_t
using immer::detail::rbts::bits_t = typedef std::uint32_t |
◆ concat_center_mut_pos
using immer::detail::rbts::concat_center_mut_pos = typedef concat_center_pos<Node> |
Definition at line 1866 of file operations.hpp.
◆ count_t
using immer::detail::rbts::count_t = typedef std::uint32_t |
◆ edit_type
using immer::detail::rbts::edit_type = typedef typename std::decay<Pos>::type::node_t::edit_t |
Definition at line 32 of file position.hpp.
◆ is_relaxed
using immer::detail::rbts::is_relaxed = typedef std::is_same<relaxed_pos<typename std::decay_t<Pos>::node_t>, std::decay_t<Pos> > |
Definition at line 1681 of file position.hpp.
◆ node_type
using immer::detail::rbts::node_type = typedef typename std::decay<Pos>::type::node_t |
Definition at line 29 of file position.hpp.
◆ shift_t
using immer::detail::rbts::shift_t = typedef std::uint32_t |
◆ size_t
using immer::detail::rbts::size_t = typedef std::size_t |
Function Documentation
◆ concat_inners()
concat_center_pos<Node> immer::detail::rbts::concat_inners | ( | LPos && | lpos, |
TPos && | tpos, | ||
RPos && | rpos | ||
) |
Definition at line 1745 of file operations.hpp.
References bits_leaf.
◆ concat_inners_mut()
concat_center_mut_pos<Node> immer::detail::rbts::concat_inners_mut | ( | edit_type< Node > | ec, |
edit_type< Node > | el, | ||
LPos && | lpos, | ||
TPos && | tpos, | ||
edit_type< Node > | er, | ||
RPos && | rpos | ||
) |
Definition at line 2151 of file operations.hpp.
References bits_leaf.
◆ concat_leafs()
concat_center_pos<Node> immer::detail::rbts::concat_leafs | ( | LPos && | lpos, |
TPos && | tpos, | ||
RPos && | rpos | ||
) |
Definition at line 1715 of file operations.hpp.
◆ concat_leafs_mut()
concat_center_mut_pos<Node> immer::detail::rbts::concat_leafs_mut | ( | edit_type< Node > | ec, |
edit_type< Node > | el, | ||
LPos && | lpos, | ||
TPos && | tpos, | ||
edit_type< Node > | er, | ||
RPos && | rpos | ||
) |
Definition at line 2119 of file operations.hpp.
◆ concat_rebalance()
concat_center_pos<Node> immer::detail::rbts::concat_rebalance | ( | LPos && | lpos, |
CPos && | cpos, | ||
RPos && | rpos | ||
) |
Definition at line 1700 of file operations.hpp.
References immer::detail::rbts::concat_rebalance_plan< B, BL >::fill().
◆ concat_rebalance_mut()
concat_center_pos<Node> immer::detail::rbts::concat_rebalance_mut | ( | edit_type< Node > | ec, |
edit_type< Node > | el, | ||
LPos && | lpos, | ||
CPos && | cpos, | ||
edit_type< Node > | er, | ||
RPos && | rpos | ||
) |
Definition at line 2107 of file operations.hpp.
References immer::detail::rbts::concat_rebalance_plan< B, BL >::fill().
◆ concat_trees() [1/2]
relaxed_pos<Node> immer::detail::rbts::concat_trees | ( | Node * | lroot, |
shift_t | lshift, | ||
size_t | lsize, | ||
Node * | ltail, | ||
count_t | ltcount, | ||
Node * | rroot, | ||
shift_t | rshift, | ||
size_t | rsize | ||
) |
Definition at line 1841 of file operations.hpp.
References make_leaf_pos(), and visit_maybe_relaxed_sub().
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::concat().
◆ concat_trees() [2/2]
relaxed_pos<Node> immer::detail::rbts::concat_trees | ( | Node * | ltail, |
count_t | ltcount, | ||
Node * | rroot, | ||
shift_t | rshift, | ||
size_t | rsize | ||
) |
Definition at line 1855 of file operations.hpp.
References make_singleton_regular_sub_pos().
◆ concat_trees_mut() [1/2]
relaxed_pos<Node> immer::detail::rbts::concat_trees_mut | ( | edit_type< Node > | ec, |
edit_type< Node > | el, | ||
Node * | lroot, | ||
shift_t | lshift, | ||
size_t | lsize, | ||
Node * | ltail, | ||
count_t | ltcount, | ||
edit_type< Node > | er, | ||
Node * | rroot, | ||
shift_t | rshift, | ||
size_t | rsize | ||
) |
Definition at line 2288 of file operations.hpp.
References make_leaf_pos(), and visit_maybe_relaxed_sub().
◆ concat_trees_mut() [2/2]
relaxed_pos<Node> immer::detail::rbts::concat_trees_mut | ( | edit_type< Node > | ec, |
edit_type< Node > | el, | ||
Node * | ltail, | ||
count_t | ltcount, | ||
edit_type< Node > | er, | ||
Node * | rroot, | ||
shift_t | rshift, | ||
size_t | rsize | ||
) |
Definition at line 2306 of file operations.hpp.
References make_singleton_regular_sub_pos().
◆ dec_empty_regular()
void immer::detail::rbts::dec_empty_regular | ( | NodeT * | node | ) |
Definition at line 566 of file operations.hpp.
References make_empty_regular_pos().
Referenced by immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::push_back_mut(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_tail_mut().
◆ dec_inner()
void immer::detail::rbts::dec_inner | ( | NodeT * | node, |
shift_t | shift, | ||
size_t | size | ||
) |
Definition at line 548 of file operations.hpp.
References visit_maybe_relaxed_sub().
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::drop_mut(), immer::detail::rbts::push_tail_mut_visitor< NodeT, Mutating >::visit_relaxed(), immer::detail::rbts::push_tail_visitor< NodeT >::visit_relaxed(), immer::detail::rbts::slice_right_mut_visitor< NodeT, Collapse, Mutating >::visit_relaxed(), and immer::detail::rbts::slice_right_visitor< NodeT, Collapse >::visit_relaxed().
◆ dec_leaf()
void immer::detail::rbts::dec_leaf | ( | NodeT * | node, |
count_t | n | ||
) |
Definition at line 542 of file operations.hpp.
References make_leaf_sub_pos().
Referenced by immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::ensure_mutable_tail(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::ensure_mutable_tail(), immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::take_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::take_mut(), immer::detail::rbts::slice_right_mut_visitor< NodeT, Collapse, Mutating >::visit_regular(), immer::detail::rbts::slice_right_visitor< NodeT, Collapse >::visit_regular(), immer::detail::rbts::slice_right_mut_visitor< NodeT, Collapse, Mutating >::visit_relaxed(), and immer::detail::rbts::slice_right_visitor< NodeT, Collapse >::visit_relaxed().
◆ dec_regular()
void immer::detail::rbts::dec_regular | ( | NodeT * | node, |
shift_t | shift, | ||
size_t | size | ||
) |
Definition at line 560 of file operations.hpp.
References make_regular_pos().
Referenced by immer::detail::rbts::get_mut_visitor< NodeT >::visit_regular(), immer::detail::rbts::slice_right_mut_visitor< NodeT, Collapse, Mutating >::visit_regular(), and immer::detail::rbts::slice_right_visitor< NodeT, Collapse >::visit_regular().
◆ dec_relaxed()
void immer::detail::rbts::dec_relaxed | ( | NodeT * | node, |
shift_t | shift | ||
) |
Definition at line 554 of file operations.hpp.
References make_relaxed_pos(), and immer::detail::rbts::node< T, MemoryPolicy, B, BL >::relaxed().
Referenced by immer::detail::rbts::concat_merger< Node >::abort(), and immer::detail::rbts::get_mut_visitor< NodeT >::visit_relaxed().
◆ derive_bits_leaf_aux()
constexpr bits_t immer::detail::rbts::derive_bits_leaf_aux | ( | ) |
Definition at line 927 of file node.hpp.
References immer::detail::log2().
◆ each_i_regular()
void immer::detail::rbts::each_i_regular | ( | Pos && | p, |
Visitor | v, | ||
count_t | f, | ||
count_t | l, | ||
Args &&... | args | ||
) |
Definition at line 486 of file position.hpp.
References IMMER_PREFETCH, make_full_leaf_pos(), make_full_pos(), make_leaf_pos(), and make_regular_pos().
Referenced by immer::detail::rbts::regular_pos< NodeT >::each_i(), and immer::detail::rbts::regular_sub_pos< NodeT >::each_i().
◆ each_left_regular()
void immer::detail::rbts::each_left_regular | ( | Pos && | p, |
Visitor | v, | ||
count_t | last, | ||
Args &&... | args | ||
) |
Definition at line 530 of file position.hpp.
References IMMER_PREFETCH, make_full_leaf_pos(), and make_full_pos().
Referenced by immer::detail::rbts::regular_pos< NodeT >::each_left(), and immer::detail::rbts::regular_sub_pos< NodeT >::each_left().
◆ each_pred_i_regular()
bool immer::detail::rbts::each_pred_i_regular | ( | Pos && | p, |
Visitor | v, | ||
count_t | f, | ||
count_t | l, | ||
Args &&... | args | ||
) |
Definition at line 375 of file position.hpp.
References IMMER_PREFETCH, make_full_leaf_pos(), make_full_pos(), make_leaf_pos(), and make_regular_pos().
Referenced by immer::detail::rbts::regular_pos< NodeT >::each_pred_i(), and immer::detail::rbts::regular_sub_pos< NodeT >::each_pred_i().
◆ each_pred_left_regular()
bool immer::detail::rbts::each_pred_left_regular | ( | Pos && | p, |
Visitor | v, | ||
count_t | last, | ||
Args &&... | args | ||
) |
Definition at line 426 of file position.hpp.
References IMMER_PREFETCH, make_full_leaf_pos(), and make_full_pos().
Referenced by immer::detail::rbts::regular_pos< NodeT >::each_pred_left(), and immer::detail::rbts::regular_sub_pos< NodeT >::each_pred_left().
◆ each_pred_regular()
bool immer::detail::rbts::each_pred_regular | ( | Pos && | p, |
Visitor | v, | ||
Args &&... | args | ||
) |
Definition at line 324 of file position.hpp.
References IMMER_PREFETCH, make_full_leaf_pos(), make_full_pos(), make_leaf_pos(), and make_regular_pos().
Referenced by immer::detail::rbts::regular_pos< NodeT >::each_pred(), and immer::detail::rbts::regular_sub_pos< NodeT >::each_pred().
◆ each_pred_right_regular()
bool immer::detail::rbts::each_pred_right_regular | ( | Pos && | p, |
Visitor | v, | ||
count_t | start, | ||
Args &&... | args | ||
) |
Definition at line 451 of file position.hpp.
References IMMER_PREFETCH, make_full_leaf_pos(), make_full_pos(), make_leaf_pos(), and make_regular_pos().
Referenced by immer::detail::rbts::regular_pos< NodeT >::each_pred_right(), and immer::detail::rbts::regular_sub_pos< NodeT >::each_pred_right().
◆ each_pred_zip_regular()
bool immer::detail::rbts::each_pred_zip_regular | ( | Pos && | p, |
Visitor | v, | ||
node_type< Pos > * | other, | ||
Args &&... | args | ||
) |
Definition at line 348 of file position.hpp.
References IMMER_PREFETCH, make_full_leaf_pos(), make_full_pos(), make_leaf_pos(), and make_regular_pos().
Referenced by immer::detail::rbts::regular_pos< NodeT >::each_pred_zip(), and immer::detail::rbts::regular_sub_pos< NodeT >::each_pred_zip().
◆ each_regular()
void immer::detail::rbts::each_regular | ( | Pos && | p, |
Visitor | v, | ||
Args &&... | args | ||
) |
Definition at line 302 of file position.hpp.
References IMMER_PREFETCH, make_full_leaf_pos(), make_full_pos(), make_leaf_pos(), and make_regular_pos().
Referenced by immer::detail::rbts::regular_pos< NodeT >::each(), and immer::detail::rbts::regular_sub_pos< NodeT >::each().
◆ each_right_regular()
void immer::detail::rbts::each_right_regular | ( | Pos && | p, |
Visitor | v, | ||
count_t | start, | ||
Args &&... | args | ||
) |
Definition at line 552 of file position.hpp.
References IMMER_PREFETCH, make_full_leaf_pos(), make_full_pos(), make_leaf_pos(), and make_regular_pos().
Referenced by immer::detail::rbts::regular_pos< NodeT >::each_right(), and immer::detail::rbts::regular_sub_pos< NodeT >::each_right().
◆ last_oh_regular()
decltype(auto) immer::detail::rbts::last_oh_regular | ( | Pos && | p, |
Visitor | v, | ||
count_t | offset_hint, | ||
Args &&... | args | ||
) |
Definition at line 630 of file position.hpp.
References make_leaf_pos(), and make_regular_pos().
Referenced by immer::detail::rbts::regular_pos< NodeT >::last_oh(), and immer::detail::rbts::regular_sub_pos< NodeT >::last_oh().
◆ make_empty_leaf_pos()
empty_leaf_pos<NodeT> immer::detail::rbts::make_empty_leaf_pos | ( | NodeT * | node | ) |
Definition at line 82 of file position.hpp.
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse_p().
◆ make_empty_regular_pos()
empty_regular_pos<NodeT> immer::detail::rbts::make_empty_regular_pos | ( | NodeT * | node | ) |
Definition at line 58 of file position.hpp.
Referenced by dec_empty_regular(), immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::traverse(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse(), immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::traverse_p(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse_p().
◆ make_full_leaf_pos()
full_leaf_pos<NodeT> immer::detail::rbts::make_full_leaf_pos | ( | NodeT * | node | ) |
Definition at line 206 of file position.hpp.
Referenced by immer::detail::rbts::full_pos< NodeT >::each(), immer::detail::rbts::full_pos< NodeT >::each_i(), each_i_regular(), each_left_regular(), immer::detail::rbts::full_pos< NodeT >::each_pred(), immer::detail::rbts::full_pos< NodeT >::each_pred_i(), each_pred_i_regular(), each_pred_left_regular(), each_pred_regular(), each_pred_right_regular(), immer::detail::rbts::full_pos< NodeT >::each_pred_zip(), each_pred_zip_regular(), each_regular(), each_right_regular(), immer::detail::rbts::regular_sub_pos< NodeT >::each_right_sub_(), immer::detail::rbts::regular_sub_pos< NodeT >::first_sub(), immer::detail::rbts::full_pos< NodeT >::first_sub(), immer::detail::rbts::regular_sub_pos< NodeT >::first_sub_leaf(), immer::detail::rbts::full_pos< NodeT >::first_sub_leaf(), immer::detail::rbts::regular_sub_pos< NodeT >::nth_sub(), immer::detail::rbts::full_pos< NodeT >::nth_sub(), immer::detail::rbts::regular_sub_pos< NodeT >::nth_sub_leaf(), immer::detail::rbts::full_pos< NodeT >::nth_sub_leaf(), immer::detail::rbts::full_pos< NodeT >::towards_oh(), towards_oh_ch_regular(), immer::detail::rbts::full_pos< NodeT >::towards_sub_oh(), and towards_sub_oh_regular().
◆ make_full_pos()
full_pos<NodeT> immer::detail::rbts::make_full_pos | ( | NodeT * | node, |
shift_t | shift | ||
) |
Definition at line 1293 of file position.hpp.
References bits_leaf.
Referenced by immer::detail::rbts::full_pos< NodeT >::each(), immer::detail::rbts::full_pos< NodeT >::each_i(), each_i_regular(), each_left_regular(), immer::detail::rbts::full_pos< NodeT >::each_pred(), immer::detail::rbts::full_pos< NodeT >::each_pred_i(), each_pred_i_regular(), each_pred_left_regular(), each_pred_regular(), each_pred_right_regular(), immer::detail::rbts::full_pos< NodeT >::each_pred_zip(), each_pred_zip_regular(), each_regular(), each_right_regular(), immer::detail::rbts::regular_sub_pos< NodeT >::each_right_sub_(), immer::detail::rbts::regular_sub_pos< NodeT >::first_sub(), immer::detail::rbts::full_pos< NodeT >::first_sub(), immer::detail::rbts::regular_sub_pos< NodeT >::first_sub_inner(), immer::detail::rbts::full_pos< NodeT >::first_sub_inner(), immer::detail::rbts::regular_sub_pos< NodeT >::nth_sub(), immer::detail::rbts::full_pos< NodeT >::nth_sub(), immer::detail::rbts::full_pos< NodeT >::towards_oh(), towards_oh_ch_regular(), immer::detail::rbts::full_pos< NodeT >::towards_sub_oh(), and towards_sub_oh_regular().
◆ make_leaf_descent_pos()
leaf_descent_pos<NodeT> immer::detail::rbts::make_leaf_descent_pos | ( | NodeT * | node | ) |
Definition at line 176 of file position.hpp.
Referenced by immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::descend(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::descend(), immer::detail::rbts::regular_descent_pos< NodeT, BL, B, BL >::descend(), visit_maybe_relaxed_descent(), and visit_regular_descent().
◆ make_leaf_pos()
leaf_pos<NodeT> immer::detail::rbts::make_leaf_pos | ( | NodeT * | node, |
size_t | size | ||
) |
Definition at line 113 of file position.hpp.
Referenced by concat_trees(), concat_trees_mut(), each_i_regular(), each_pred_i_regular(), each_pred_regular(), each_pred_right_regular(), each_pred_zip_regular(), each_regular(), each_right_regular(), last_oh_regular(), and towards_oh_ch_regular().
◆ make_leaf_sub_pos()
leaf_sub_pos<NodeT> immer::detail::rbts::make_leaf_sub_pos | ( | NodeT * | node, |
count_t | count | ||
) |
Definition at line 145 of file position.hpp.
References count.
Referenced by dec_leaf(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::drop_mut(), immer::detail::rbts::relaxed_pos< NodeT >::each_i(), immer::detail::rbts::relaxed_pos< NodeT >::each_left(), immer::detail::rbts::relaxed_pos< NodeT >::each_pred(), immer::detail::rbts::relaxed_pos< NodeT >::each_pred_i(), immer::detail::rbts::relaxed_pos< NodeT >::each_pred_left(), immer::detail::rbts::relaxed_pos< NodeT >::each_pred_right(), immer::detail::rbts::relaxed_pos< NodeT >::each_right(), immer::detail::rbts::regular_sub_pos< NodeT >::each_right_sub_(), immer::detail::rbts::concat_center_pos< Node >::each_sub(), immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::equals(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::equals(), immer::detail::rbts::regular_sub_pos< NodeT >::first_sub(), immer::detail::rbts::relaxed_pos< NodeT >::first_sub(), immer::detail::rbts::regular_sub_pos< NodeT >::first_sub_leaf(), immer::detail::rbts::relaxed_pos< NodeT >::first_sub_leaf(), immer::detail::rbts::relaxed_pos< NodeT >::last_oh_csh(), immer::detail::rbts::singleton_regular_sub_pos< NodeT >::last_sub(), immer::detail::rbts::regular_sub_pos< NodeT >::last_sub(), immer::detail::rbts::relaxed_pos< NodeT >::last_sub(), immer::detail::rbts::regular_sub_pos< NodeT >::nth_sub(), immer::detail::rbts::relaxed_pos< NodeT >::nth_sub(), immer::detail::rbts::regular_sub_pos< NodeT >::nth_sub_leaf(), immer::detail::rbts::relaxed_pos< NodeT >::nth_sub_leaf(), towards_sub_oh_regular(), immer::detail::rbts::relaxed_pos< NodeT >::towards_sub_oh_sbh(), immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::traverse(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse(), immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::traverse_p(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse_p(), immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::update(), and immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::update().
◆ make_regular_pos()
regular_pos<NodeT> immer::detail::rbts::make_regular_pos | ( | NodeT * | node, |
shift_t | shift, | ||
size_t | size | ||
) |
Definition at line 645 of file position.hpp.
References bits_leaf.
Referenced by dec_regular(), each_i_regular(), each_pred_i_regular(), each_pred_regular(), each_pred_right_regular(), each_pred_zip_regular(), each_regular(), each_right_regular(), last_oh_regular(), and towards_oh_ch_regular().
◆ make_regular_sub_pos()
regular_sub_pos<NodeT> immer::detail::rbts::make_regular_sub_pos | ( | NodeT * | node, |
shift_t | shift, | ||
size_t | size | ||
) |
Definition at line 950 of file position.hpp.
References bits_leaf.
Referenced by immer::detail::rbts::regular_sub_pos< NodeT >::each_right_sub_(), immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::equals(), immer::detail::rbts::regular_sub_pos< NodeT >::first_sub(), immer::detail::rbts::regular_sub_pos< NodeT >::first_sub_inner(), immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::get_mut(), immer::detail::rbts::regular_sub_pos< NodeT >::last_sub(), immer::detail::rbts::regular_sub_pos< NodeT >::nth_sub(), immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::push_back(), immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::push_back_mut(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_tail(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_tail_mut(), immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::take(), immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::take_mut(), towards_sub_oh_regular(), immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::traverse(), immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::traverse_p(), immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::update(), and visit_maybe_relaxed_sub().
◆ make_relaxed_pos()
relaxed_pos<NodeT> immer::detail::rbts::make_relaxed_pos | ( | NodeT * | node, |
shift_t | shift, | ||
typename NodeT::relaxed_t * | relaxed | ||
) |
Definition at line 1687 of file position.hpp.
References bits_leaf.
Referenced by dec_relaxed(), immer::detail::rbts::concat_center_pos< Node >::each_sub(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_tail(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::push_tail_mut(), and visit_maybe_relaxed_sub().
◆ make_singleton_regular_sub_pos()
auto immer::detail::rbts::make_singleton_regular_sub_pos | ( | NodeT * | leaf, |
count_t | count | ||
) |
Definition at line 711 of file position.hpp.
References count.
Referenced by concat_trees(), and concat_trees_mut().
◆ towards_oh_ch_regular()
decltype(auto) immer::detail::rbts::towards_oh_ch_regular | ( | Pos && | p, |
Visitor | v, | ||
size_t | idx, | ||
count_t | offset_hint, | ||
count_t | count_hint, | ||
Args &&... | args | ||
) |
Definition at line 582 of file position.hpp.
References make_full_leaf_pos(), make_full_pos(), make_leaf_pos(), and make_regular_pos().
Referenced by immer::detail::rbts::regular_pos< NodeT >::towards(), immer::detail::rbts::regular_sub_pos< NodeT >::towards(), immer::detail::rbts::regular_pos< NodeT >::towards_oh(), immer::detail::rbts::regular_sub_pos< NodeT >::towards_oh(), immer::detail::rbts::regular_pos< NodeT >::towards_oh_ch(), and immer::detail::rbts::regular_sub_pos< NodeT >::towards_oh_ch().
◆ towards_sub_oh_regular()
decltype(auto) immer::detail::rbts::towards_sub_oh_regular | ( | Pos && | p, |
Visitor | v, | ||
size_t | idx, | ||
count_t | offset_hint, | ||
Args &&... | args | ||
) |
Definition at line 604 of file position.hpp.
References make_full_leaf_pos(), make_full_pos(), make_leaf_sub_pos(), and make_regular_sub_pos().
Referenced by immer::detail::rbts::regular_pos< NodeT >::towards_sub_oh(), and immer::detail::rbts::regular_sub_pos< NodeT >::towards_sub_oh().
◆ visit_maybe_relaxed_descent()
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_descent | ( | NodeT * | node, |
shift_t | shift, | ||
Visitor | v, | ||
size_t | idx | ||
) |
Definition at line 1803 of file position.hpp.
References bits, bits_leaf, IMMER_UNREACHABLE, immer::detail::rbts::node< T, MemoryPolicy, B, BL >::inner(), make_leaf_descent_pos(), immer::detail::rbts::node< T, MemoryPolicy, B, BL >::relaxed(), and visit_regular_descent().
Referenced by immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::descend().
◆ visit_maybe_relaxed_sub()
decltype(auto) immer::detail::rbts::visit_maybe_relaxed_sub | ( | NodeT * | node, |
shift_t | shift, | ||
size_t | size, | ||
Visitor | v, | ||
Args &&... | args | ||
) |
Definition at line 1698 of file position.hpp.
References make_regular_sub_pos(), make_relaxed_pos(), and immer::detail::rbts::node< T, MemoryPolicy, B, BL >::relaxed().
Referenced by concat_trees(), concat_trees_mut(), dec_inner(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::drop(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::drop_mut(), immer::detail::rbts::relaxed_pos< NodeT >::each_i(), immer::detail::rbts::relaxed_pos< NodeT >::each_left(), immer::detail::rbts::relaxed_pos< NodeT >::each_pred(), immer::detail::rbts::relaxed_pos< NodeT >::each_pred_i(), immer::detail::rbts::relaxed_pos< NodeT >::each_pred_left(), immer::detail::rbts::relaxed_pos< NodeT >::each_pred_right(), immer::detail::rbts::relaxed_pos< NodeT >::each_right(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::equals(), immer::detail::rbts::relaxed_pos< NodeT >::first_sub(), immer::detail::rbts::relaxed_pos< NodeT >::first_sub_inner(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::get_mut(), immer::detail::rbts::relaxed_pos< NodeT >::last_oh_csh(), immer::detail::rbts::relaxed_pos< NodeT >::last_sub(), immer::detail::rbts::relaxed_pos< NodeT >::nth_sub(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::region_for(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::take(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::take_mut(), immer::detail::rbts::relaxed_pos< NodeT >::towards_sub_oh_sbh(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::traverse_p(), immer::detail::rbts::rrbtree< T, MemoryPolicy, B, BL >::update(), immer::detail::rbts::equals_visitor::rrb::visit_node(), immer::detail::rbts::concat_trees_left_visitor< Node >::visit_node(), and immer::detail::rbts::concat_trees_left_mut_visitor< Node >::visit_node().
◆ visit_regular_descent()
decltype(auto) immer::detail::rbts::visit_regular_descent | ( | NodeT * | node, |
shift_t | shift, | ||
Visitor | v, | ||
size_t | idx | ||
) |
Definition at line 1025 of file position.hpp.
References bits, bits_leaf, IMMER_UNREACHABLE, immer::detail::rbts::node< T, MemoryPolicy, B, BL >::inner(), and make_leaf_descent_pos().
Referenced by immer::detail::rbts::rbtree< T, MemoryPolicy, B, BL >::descend(), and visit_maybe_relaxed_descent().
Variable Documentation
◆ bits
constexpr auto immer::detail::rbts::bits = std::decay_t<Pos>::node_t::bits |
Definition at line 23 of file position.hpp.
Referenced by CMnemonic::Check(), concat_leafs(), concat_leafs_mut(), CMnemonic::FromData(), FastRandomContext::randbits(), FastRandomContext::randrange(), secp256k1_ecmult_gen(), secp256k1_ecmult_strauss_wnaf(), secp256k1_num_shift(), secp256k1_rand_bits(), secp256k1_rand_bytes_test(), secp256k1_rand_int(), immer::detail::rbts::concat_rebalance_plan< B, BL >::shuffle(), test_constant_wnaf(), test_rand_bits(), test_wnaf(), CSubNet::ToString(), visit_maybe_relaxed_descent(), and visit_regular_descent().
◆ bits_leaf
constexpr auto immer::detail::rbts::bits_leaf = std::decay_t<Pos>::node_t::bits_leaf |
Definition at line 26 of file position.hpp.
Referenced by concat_inners(), concat_inners_mut(), concat_leafs(), concat_leafs_mut(), make_full_pos(), make_regular_pos(), make_regular_sub_pos(), make_relaxed_pos(), visit_maybe_relaxed_descent(), and visit_regular_descent().
◆ branches
constexpr T immer::detail::rbts::branches = T{1} << B |
Definition at line 23 of file bits.hpp.
Referenced by immer::detail::rbts::concat_rebalance_plan< B, BL >::shuffle().
◆ derive_bits_leaf
constexpr bits_t immer::detail::rbts::derive_bits_leaf = derive_bits_leaf_aux<T, MP, B>() |
◆ endshift
◆ is_relaxed_v
constexpr auto immer::detail::rbts::is_relaxed_v = is_relaxed<Pos>::value |
Definition at line 1684 of file position.hpp.