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 anif the queue's content is[a1, a2, ..., an].
A detailed explanation is given in https://scrapbox.io/data-structures/Sliding_Window_Aggregation.