Example #1
0
inline void PagedVector::set(const size_t& i, const uint64_t& value) {
    assert(i < filled);
    uint64_t anchor = anchors.get(i / page_size);
    if (anchor == 0) {
        // this page does not have a non-zero anchor yet, use this one
        anchors.set(i / page_size, value);
        anchor = value;
    }
    pages[i / page_size].set(i % page_size, to_diff(value, anchor));
}
Example #2
0
inline uint64_t PagedVector::get(const size_t& i) const {
    assert(i < filled);
    return from_diff(pages[i / page_size].get(i % page_size),
                     anchors.get(i / page_size));
}
Example #3
0
inline uint64_t PackedDeque::get(const size_t& i) const {
    return vec.get(internal_index(i));
}
Example #4
0
inline size_t PackedSplayTree::get_right(size_t x) const {
    return tree.get((x - 1) * NODE_SIZE + RIGHT_CHILD_OFFSET);
}
Example #5
0
inline size_t PackedSplayTree::get_left(size_t x) const {
    return tree.get((x - 1) * NODE_SIZE + LEFT_CHILD_OFFSET);
}
Example #6
0
inline size_t PackedSplayTree::get_parent(size_t x) const {
    return tree.get((x - 1) * NODE_SIZE + PARENT_OFFSET);
}
Example #7
0
inline size_t PackedSplayTree::get_value(const size_t& x) const {
    return tree.get((x - 1) * NODE_SIZE + VALUE_OFFSET);
}
Example #8
0
inline size_t PackedSplayTree::get_key(const size_t& x) const {
    return tree.get((x - 1) * NODE_SIZE + KEY_OFFSET);
}