39 const std::vector<std::uint8_t> &
id)
41 , n_child_indices(id.size())
50 const unsigned int n_child_indices,
51 const std::uint8_t *
id)
53 , n_child_indices(n_child_indices)
68 const unsigned int two_bit_mask = (1 << 2) - 1;
69 const unsigned int dim = binary_representation[1] & two_bit_mask;
75 const unsigned int children_per_value =
76 sizeof(binary_type::value_type) * 8 / dim;
77 const unsigned int child_mask = (1 << dim) - 1;
80 unsigned int child_level = 0;
81 unsigned int binary_entry = 2;
84 for (
unsigned int j = 0; j < children_per_value; ++j)
89 (binary_representation[binary_entry] >> (dim * j)) & child_mask;
105 binary_representation.fill(0);
115 binary_representation[1] |= dim;
118 const unsigned int children_per_value =
119 sizeof(binary_type::value_type) * 8 / dim;
120 unsigned int child_level = 0;
121 unsigned int binary_entry = 2;
128 for (
unsigned int j = 0; j < children_per_value; ++j)
130 const unsigned int child_index =
134 binary_representation[binary_entry] |= (child_index << (j * dim));
142 return binary_representation;
150 std::ostringstream ss;
157 template <
int dim,
int spacedim>
165 cell = cell->child(
static_cast<unsigned int>(
child_indices[i]));
171 #include "cell_id.inst"