Open
Description
Currently, icu_uniset
stores sets as an inversion list and performs binary search on the list. Binary search accesses memory both forward and backward. The Eytzinger order orders array elements for logically binary-search-like search so that the accesses are forward-only. We should investigate if this order is suitable for inversion lists, i.e. if the mismatch situation gives enough information about whether the search key in inside or outside the set.
(AFAICT, this wouldn't solve the issue that the characters most commonly looked up from sets are ASCII, which tends to involve the maximum number of comparisons in binary search anyway.)