Fast character case conversion (or how to compress sparse arrays)
Using larger blocks will reduce the size of the index, but it will also cause greater %-age of blocks to contain at least one non-zero entry. For larger block sizes the number of uniques blocks will be quite low - 10, 13, etc. With the block size of 2048 we have 8 unique blocks. With the block size of 1024 we have 10 unique blocks. With the block size of 512 we have 13 unique blocks. For the block size of 64 uint8 t index = ; uint16 t offsets = ; uint16 t items = ; uint16 t block offset = offsets ]; ch = items ;. The index for the block size of 32 is 2048 entries with only 55 uniques and the index for the block size of 4 is 16384 entries with only 78 uniques.