sliding-window-aggregation
This crate provides an implementation of the Sliding Window Aggregation (SWAg) data structure.
SWAg is basically a queue with a fast folding operation. SWAg supports the following operations, each one of which takes amortized O(1) time:
push_back
: push an element to the back of the queue.pop_front
: pop an element from the front of the queue.fold_all
: for an operationop
, compute the fold of all elements in the queue, i.e.a1 op a2 op ... op an
if the queue's content is[a1, a2, ..., an]
.
A detailed explanation is given in https://scrapbox.io/data-structures/Sliding_Window_Aggregation.