Generator

2n bits, and everything that makes them answerable

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.
2n bits, and everything that makes them answerableA range minimum over 16,384 values. The parentheses are 32,768 bits — the 2n the structure is quoted at — and everything below them is what turns a sequence of bits into a structure that answers a query: the support that finds the k-th opening, and the two layers of block minima. Together they come to 152,963 bits, which is 4.67x the payload. The segment tree this replaces is 491,520 bits, so the whole structure is 2.65x smaller — a real saving, and not the hundredfold one "2n + o(n)" invites. The in-block lookup table is a further 32,768 bits and is not counted here, because it belongs to the block length rather than to this structure.parentheses32,76817.6%select support28,41615.3%superblock minima4,6882.5%superblock table19,21510.3%block minima37,45620.2%block tables63,18834.0%the partsbitstotal 185,731 · the segment tree 491,520shared lookup table 32,768, not counted16,384 values · openings in index order, found by select2.65x smaller

2n bits, and everything that makes them answerable

A range minimum over 16,384 values. The parentheses are 32,768 bits — the 2n the structure is quoted at — and everything below them is what turns a sequence of bits into a structure that answers a query: the support that finds the k-th opening, and the two layers of block minima. Together they come to 152,963 bits, which is 4.67x the payload. The segment tree this replaces is 491,520 bits, so the whole structure is 2.65x smaller — a real saving, and not the hundredfold one "2n + o(n)" invites. The in-block lookup table is a further 32,768 bits and is not counted here, because it belongs to the block length rather than to this structure.

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

3 essays call succinct-size. 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 5 of 5 — where succinct-size sits