Generator

The same tree at 7 block sizes

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.
The same tree at 7 block sizesA tree over 262,143 keys, searched at 7 block sizes with the layout fixed. The B-tree was built with nodes of 64 elements and is at its best exactly there; away from it the nodes are the wrong size and it pays for it. The van Emde Boas layout is given neither B nor M, and tracks the best of the others across the whole range — which is the claim worth making about an algorithm with no parameters, and it is a claim about every level of a real memory hierarchy at once rather than about a chosen one.1010010B (elements per block)block transfers per searchtuned for B = 64Sorted arrayB-tree tuned for B = 64van Emde Boas — told nothingM = 16,384, B as drawnone layout, 7 block sizes, no parameter

The same tree at 7 block sizes

A tree over 262,143 keys, searched at 7 block sizes with the layout fixed. The B-tree was built with nodes of 64 elements and is at its best exactly there; away from it the nodes are the wrong size and it pays for it. The van Emde Boas layout is given neither B nor M, and tracks the best of the others across the whole range — which is the claim worth making about an algorithm with no parameters, and it is a claim about every level of a real memory hierarchy at once rather than about a chosen one.

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

1 essay calls oblivious-across-b. 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 oblivious-across-b sits