static internal long ReadNumber(BitReader br) { ulong tmp; int quadsToRead = 0; tmp = br.ReadBits(1); if (tmp == 0) { quadsToRead = 0; } else { tmp = br.ReadBits(2); if (tmp == 0) { tmp = br.ReadBits(1); if (tmp == 0) { quadsToRead = 1; } else { quadsToRead = 9; } } else if (tmp == 1) { quadsToRead = 8; } else if (tmp == 2) { quadsToRead = 5; } else { tmp = br.ReadBits(2); if (tmp == 0) { quadsToRead = 2; } else if (tmp == 1) { quadsToRead = 4; } else if (tmp == 2) { tmp = br.ReadBits(1); if (tmp == 0) { quadsToRead = 7; } else if (tmp == 1) { tmp = br.ReadBits(1); if (tmp == 0) { quadsToRead = 3; } else { tmp = br.ReadBits(1); if (tmp == 0) { quadsToRead = 11; } else { tmp = br.ReadBits(1); if (tmp == 0) { quadsToRead = 6; } else { tmp = br.ReadBits(2); if (tmp == 0) { tmp = br.ReadBits(1); if (tmp == 0) { quadsToRead = 16; } else { quadsToRead = 15; } } else if (tmp == 1) { quadsToRead = 14; } else if (tmp == 2) { quadsToRead = 13; } else { quadsToRead = 12; } } } } } } else { quadsToRead = 10; } } } return((long)br.ReadBits(4 * quadsToRead)); }
/* initialize from the backing store */ internal Statistics(BitReader br) { Read(br); }