lib/wavelet_tree/wavelet_tree.cpp
// This function invokes table rank thrice.
This function invokes table rank thrice.
This function invokes table rank thrice .
auto node_proxy::make_lhs_and_rhs() const noexcept
    -> std::pair<node_proxy, node_proxy> {
  const auto num_zeros = count_zeros();
  const auto lhs_first = begin() + wt_ptr->seq_len;
  const auto rhs_first = lhs_first + num_zeros;
  return {node_proxy(
              *wt_ptr,
              lhs_first,
              num_zeros,
              get_table().rank_1(lhs_first - 1),
              level_mask >> 1),
          node_proxy(
              *wt_ptr,
              rhs_first,
              (size() - num_zeros),
              get_table().rank_1(rhs_first - 1),
              (level_mask >> 1))};
}
auto node_proxy :: make_lhs_and_rhs ( ) const noexcept -> std :: pair < node_proxy , node_proxy > { const auto num_zeros = count_zeros ( ) ; const auto lhs_first = begin ( ) + wt_ptr -> seq_len ; const auto rhs_first = lhs_first + num_zeros ; return { node_proxy ( * wt_ptr , lhs_first , num_zeros , get_table ( ) . rank_1 ( lhs_first - 1 ) , level_mask >> 1 ) , node_proxy ( * wt_ptr , rhs_first , ( size ( ) - num_zeros ) , get_table ( ) . rank_1 ( rhs_first - 1 ) , ( level_mask >> 1 ) ) } ; }
This function invokes table rank thrice.
This function invokes table rank thrice .
/*wt_=*/ /*begin_=*/ /*size_=*/ /*ones_before_=*/ /*level_mask_=*/ /*wt_=*/ /*begin_=*/ /*size_=*/ /*ones_before_=*/ /*level_mask_=*/