Generator

One key, decayed and windowed, through bursts and silence

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.
One key, decayed and windowed, through bursts and silenceThe blue curve is an exponentially decayed counter with a half-life of 4 s. The second curve is an exact count over a window of 5.77 s — the window chosen so that the two agree in the mean on a steady stream. They do not agree here and the shape of the disagreement is the point: the windowed count is a step function that drops the moment an arrival leaves, and the decayed value is smooth and never reaches zero. Through a silence the window empties and the counter fades; through a burst the window jumps and the counter climbs behind it. Neither is wrong. They are answers to different questions, and a dashboard showing one labelled as the other is the ordinary case.decayedwindowed060120secondscount attributed to key 0half-life 4 s · window 5.77 s · burstythe same key, two questions

One key, decayed and windowed, through bursts and silence

The blue curve is an exponentially decayed counter with a half-life of 4 s. The second curve is an exact count over a window of 5.77 s — the window chosen so that the two agree in the mean on a steady stream. They do not agree here and the shape of the disagreement is the point: the windowed count is a step function that drops the moment an arrival leaves, and the decayed value is smooth and never reaches zero. Through a silence the window empties and the counter fades; through a burst the window jumps and the counter climbs behind it. Neither is wrong. They are answers to different questions, and a dashboard showing one labelled as the other is the ordinary case.

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

10 essays call decay-curve. 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.

decayedwindowed060120secondscount attributed to key 0half-life 4 s · window 5.77 s · burstythe same key, two questions One pass, and no room

The counter with no window in it

fades a lazy table computed382,976fades an eager table would compute3,830,256fade multiplications (log scale)11,968 evictions, each comparing all 32 counters at one instant32 counters · half-life 4 s · bursty10× fewer What the libraries do

The fading nobody computes

00.2500.5000.7501010203040age of an arrival, secondsweight it carries nowexponential, half-life 4.0 sbackward polynomial, α = 2, scale 4.0 sforward, β = 2, landmark 20 s backforward, β = 2, landmark 160 s backdotted: half weightweights at the moment of reading One pass, and no room

A decay measured from where it started

010200100200seconds since the burstestimated rate, arrivals a secondthe burstexponentialexact polynomialthree exponentialsrestarted forwardfaint: the same streamswith the burst removedmatched at 5.0% spread · burst of 300 in one secondthe same event, four descents One pass, and no room

What a heavier tail actually buys

1.821251.951.431752.731.302253.521.292503.911.183755.861.005128.00longest block ÷ shortestarrivals per block, and bursts per blockpart of a bursta whole numberbursts of 64 · 8 blocks · 20,000 arrivalsdispersion 0.57 and a ratio of 1.00 What is taught wrongly

The boundary that hides the burst

3009003,0009,00010100arrivals in the bursthalf-detection horizon, sthe oracle's thresholdscale held, R = 64scale held, R = 16scale learns, R = 64scale learns, R = 16ten arrivals a second, sixty streamsdashed: R = 16 One pass, and no room

A detector that learns its own quiet

5%10%20%40%rise in the background rate every 1,000 sreadings that alarm0%5%20%40%60%scale heldalarm clockpositive clockrebase on the positive clockscale learnsR = 16, 24 streams a pointdashed: 5% One pass, and no room

The clock a burst cannot outlast

0.310.621.242.484.859.7the rise's offset in d, in spreads of dreadings that alarm0%5%25%50%75%100%held while alarmedthe positive clockcorrected for the slopesolid: R = 16; dashed: R = 64dashed rule: a still stream's 5% One pass, and no room

The slope the slow counter already shows

-2-1012305001e+3seconds from the end of the risemean difference, in spreads of dthe rise endsuncorrected, 20% risecorrected, 20% riseuncorrected, 40% risecorrected, 40% risemean of 24 streams, R = 16zero: the background's own level One pass, and no room

The rise the correction kept subtracting

-2-101-505101520minutes from the end of the risemean corrected difference, in spreads of dthe rise endscorrected, no capcapped, mean over 213 scapped, mean over 53 smean of 24 streams, 40% risezero: the background's own level One pass, and no room

A check as slow as what it checks

The library, page 2 of 5 — where decay-curve sits