static RRR()
{
var BinCoeff = new short[16]
{ 1, 15, 105, 455, 1365, 3003, 5005, 6435,
6435, 5005, 3003, 1365, 455, 105, 15, 1 };
OffTable = new List<short>[BinCoeff.Length];
NumBits = new byte[BinCoeff.Length];
for (int i = 0; i < BinCoeff.Length; i++) {
OffTable[i] = new List<short> (BinCoeff[i]);
NumBits[i] = (byte)Math.Ceiling (Math.Log (BinCoeff[i], 2));
}
int maxvalue = (1 << 15);
for (int i = 0; i < maxvalue; i++) {
var klass = GetClass ((short) i);
OffTable[klass].Add ((short)i);
}
}