ReadyTalk/avian — pull request #5 by mkeesey (2012-07-07 05:57:35+00:00)
Title: Make all the bulk operations in BitSet (clear(start, end), set(start, end), and flip(start, end)) fast

Previously, when clearing or setting more than one value we would loop through and modify each bit individually. Instead, we now apply operations on a partition-by-partition basis with up to 64 bits being operated on at a time. This runs about 4000x faster when modifying 1,000,000 elements on my core i5 laptop.

This pull request also fixes a subtle bug I had when generating the mask for a 64 bit modification operation which exists in the current code with flip().