Lines Matching refs:leaf

169 // Both leaf and branch nodes store vectors of pairs.
412 // Compute the leaf node branching factor that makes a node fit in three
426 // Now that we have the leaf branching factor, compute the actual allocation
435 /// Allocator - The recycling allocator used for both branch and leaf nodes.
458 // A NodeRef doesn't know whether it references a leaf node or a branch node.
670 // When all of the leaf nodes from all the subtrees are concatenated, they must
671 // satisfy the same constraints as a single leaf node. They must be sorted,
766 /// path - The path entries, path[0] is the root node, path.back() is a leaf.
779 template <typename NodeT> NodeT &leaf() const {
959 // 1: Root points to leaf.
960 // 2: root->branch->leaf ...
981 assert(!branched() && "Cannot acces leaf data in branched root");
985 assert(!branched() && "Cannot acces leaf data in branched root");
1077 // Easy insert into root leaf.
1143 // branchRoot - Switch from a leaf root to a branched root.
1149 // How many external leaf nodes to hold RootLeaf+1?
1173 // Destroy the old leaf node, construct branch node instead.
1190 // How many external leaf nodes to hold RootBranch+1?
1246 // Visit all leaf nodes.
1309 return branched() ? path.leaf<Leaf>().start(path.leafOffset()) :
1310 path.leaf<RootLeaf>().start(path.leafOffset());
1316 return branched() ? path.leaf<Leaf>().stop(path.leafOffset()) :
1317 path.leaf<RootLeaf>().stop(path.leafOffset());
1323 return branched() ? path.leaf<Leaf>().value(path.leafOffset()) :
1324 path.leaf<RootLeaf>().value(path.leafOffset());
1358 return &path.template leaf<Leaf>() == &RHS.path.template leaf<Leaf>();
1461 // Can we stay on the same leaf node?
1462 if (!Traits::stopLess(path.leaf<Leaf>().stop(path.leafSize() - 1), x)) {
1463 path.leafOffset() = path.leaf<Leaf>().safeFind(path.leafOffset(), x);
1467 // Drop the current leaf.
1597 RootLeaf &Node = P.leaf<RootLeaf>();
1603 Leaf &Node = P.leaf<Leaf>();
1627 RootLeaf &Node = P.leaf<RootLeaf>();
1632 Leaf &Node = P.leaf<Leaf>();
1766 // Try simple root leaf insert.
1775 // Root leaf node is full, we must branch.
1779 // Now it fits in the new leaf.
1794 if (P.leafOffset() == 0 && Traits::startLess(a, P.leaf<Leaf>().start(0))) {
1806 Leaf &CurLeaf = P.leaf<Leaf>();
1826 // When we are inserting at the end of a leaf node, we must update stops.
1829 Size = P.leaf<Leaf>().insertFrom(P.leafOffset(), Size, a, b, y);
1835 Size = P.leaf<Leaf>().insertFrom(P.leafOffset(), P.leafSize(), a, b, y);
1839 // Inserted, update offset and leaf size.
1866 Leaf &Node = P.leaf<Leaf>();
1874 IM.rootBranchStart() = P.leaf<Leaf>().start(0);
1887 IM.rootBranchStart() = P.leaf<Leaf>().start(0);