Generator

Which structure is valid in which model, and what the violation costs

Rendered here at the parameters it defaults to, with every essay that calls it — which is the same list as the blast radius of changing it.
Which structure is valid in which model, and what the violation costsA filled cell is a structure that declares itself valid in that model. An outlined cell is one that will run there without complaint and whose guarantee says nothing about it — and the number in it is what that costs, measured on a general turnstile stream of 40,000 updates over 2,048 keys with a deletion rate of 0.5, on which 796 keys end with a negative count. Count-Min came back BELOW the true count on 1,758 of 1,895 keys, which its own theorem forbids and which nothing in the returned number reveals; Count-Sketch, which promises nothing about the direction of its error, came back below on 48% of them, as it is designed to. The models differ in four dials: whether an update may be negative, whether a count may end negative, whether items expire, and how many passes are allowed.Count-Min8,192 bitsCount-Sketch8,192 bitstug-of-war, F22,560 bitsGreenwald–Khanna0 bitsexponential histogram0 bitscash register+strict turnstile±general turnstile± may go negativesliding window+ expiresdeclareddeclared93% underdeclareddeclareddeclareddeclareddeclareddeclareddeclareddeclared40,000 updates · deletion rate 0.5 · every count exact1,758 of 1,895 under

Which structure is valid in which model, and what the violation costs

A filled cell is a structure that declares itself valid in that model. An outlined cell is one that will run there without complaint and whose guarantee says nothing about it — and the number in it is what that costs, measured on a general turnstile stream of 40,000 updates over 2,048 keys with a deletion rate of 0.5, on which 796 keys end with a negative count. Count-Min came back BELOW the true count on 1,758 of 1,895 keys, which its own theorem forbids and which nothing in the returned number reveals; Count-Sketch, which promises nothing about the direction of its error, came back below on 48% of them, as it is designed to. The models differ in four dials: whether an update may be negative, whether a count may end negative, whether items expire, and how many passes are allowed.

Drawn at 700 × 314, wide on the page. Everything above is what model-check returns with no arguments; the caption is the generator's own, computed from the numbers in the drawing rather than written beside it.

4 essays call model-check. The drawing above is what it returns with no arguments at all; every call below passes it something, because a placement that passes nothing draws whichever member of the family the generator happens to default to rather than the one its essay argues about — which is what optcheck and figfill exist to catch.

Where it is called

Changing this generator changes every one of these figures.

The library, page 3 of 5 — where model-check sits