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 operation op
, 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/SlidingWindowAggregation.