May 26, 2018
Fast handling of sets containing integer spans
The SetIntSpan module represents sets of integers as a number of inclusive ranges, for example ‘1-10,19-23,45-48’. Because many of its operations involve linear searches of the list of ranges its overall performance tends to be proportional to the number of distinct ranges. This is fine for small sets but suffers compared to other possible set representations bit vectors, hash keys when the number of ranges grows large. SetIntSpanFast tries to fix that.