Skip to main content

SegmentedSegmentTree

SegmentedSegmentTree​

🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲

              Segmented Segment Tree
by Clober

____/\___/\\____/\__ ____/\\___/\\////___/\\__ __/\\/\____/\\///__/\\/\__ ____/\\/\/\__/\\\\\_____/\\/\/\__ __/\\/\/\___/\\///////\___/\\/\/\__ /\\\\\\\\_\/\__\//\_/\\\\\\\\ _\///////////\\//\//\____/\__\///////////\\//_\/\___\///\\\\\/___\/\__ _\///____\/////////___\///_

      4 Layers of 64-bit nodes, hence 464

🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲

SegmentedSegmentTreeError​

error SegmentedSegmentTreeError(uint256 errorCode)

Core​

struct Core {
mapping(uint256 => uint256)[4] layers;
}

LayerIndex​

struct LayerIndex {
uint256 group;
uint256 node;
}

get​

function get(struct SegmentedSegmentTree.Core core, uint256 index) internal view returns (uint64 ret)

total​

function total(struct SegmentedSegmentTree.Core core) internal view returns (uint64)

query​

function query(struct SegmentedSegmentTree.Core core, uint256 left, uint256 right) internal view returns (uint64 sum)

update​

function update(struct SegmentedSegmentTree.Core core, uint256 index, uint64 value) internal returns (uint64 replaced)