I am going to put the code on Yahhoo today ot tomorrow. As far as compressing or uncompressing data, the term compression in this algorithm case is a little bit of misnomer. Implementation of std:: bitset interface's functions being the ts_bitse class subinterface, the ts_bitset interface is written in terms of the uncompressed bitset thus making the uncompressed bitset a virtual presense. And that's about it. The essense of a transition sparse bitset is that it can be assembled from a relatively small set of alternating zero and one intervals. Everything that one can conceivably do with subintervals of an ubcompressed bitset the ts_bitset does better. Rather than compressing a bitset the ts_bitset class avoids dealing with it alltogether and can be built up from a sequence of intervals. The ts_bitset class, though, can be both constructed from and converted to a binary string. I included this capacity partly because I wanted to implement std::bitset::to_string() function as means of implementing the << operator and partly for testing purposes. That's about as close  to comressing and uncompressing binary data as the ts_bitset interface in its present form gets.

-----------------------------
Roman Gitlin