Packed representation — where it appears
Named by 2 essays across 2 fields — each of them below, with the objects they name alongside it.
A triangle stored in a square
An interval table has a cell for every range of keys and nothing below its diagonal, and it can be stored as a square array, as packed rows, or as packed diagonals — the last matching the order it is filled in. On sixty-four keys, with every read replayed through a small cache, the square misses 39.7% of its reads, packed rows 38.8%, and packed diagonals 78.4%. Storing a table in the order it is written is storing it in the order it is not read.
Two currencies for one separator
Giving every document its own boundary marker costs a fifth of the packed text and three per cent of the run count. Both numbers are right, they are about the same change, and which one a collection pays depends on a structure nobody named.
Named alongside it
The objects these essays reach for when they reach for this one.
Access patternAlphabet sizeBurrows-wheeler runsCacheDocument collectionDynamic programmingEvaluation orderIndex sizeInterval dpLocalityMemory layoutMiss rate