public override ushort Select(int j)
{
int leftover = j;
for (int k = 0; k < Bitmap.Length; ++k)
{
int w = Utility.LongBitCount(Bitmap[k]);
if (w > leftover)
{
return (ushort)(k * 64 + Utility.Select(Bitmap[k], leftover));
}
leftover -= w;
}
throw new ArgumentOutOfRangeException("Insufficient cardinality.");
}