Main classes manipulating bits

Main classes manipulating bits.

## Package Specification

The {@link it.unimi.dsi.bits.BitVector} interface is the basis for bit vector manipulation. The {@link it.unimi.dsi.bits.LongArrayBitVector} implementation is its main implementation. The idea is to offer an efficent but easy-to-use bit-vector class by allowing access under many different views. For instance, a bit vector can be seen as a {@link it.unimi.dsi.fastutil.longs.LongBigList} of integers of fixed width. Or as a sorted set of integers, where the positions of the bits set to one represent elements.

Whenever another object has to be turned into a bit string, you can provide a {@link it.unimi.dsi.bits.TransformationStrategy} to that purpose. The static container {@link it.unimi.dsi.bits.TransformationStrategies} has several ready-made transformations, and some useful wrapping methods.

Warning: implementing all features of {@link it.unimi.dsi.bits.LongArrayBitVector} has not been easy. There may be bugs.