public IndexEncoder(TableStream tableStream, params MetadataTokenType[] tables)
{
if (tableStream == null)
throw new ArgumentNullException("tableStream");
if (tables == null)
throw new ArgumentNullException("tables");
_tableStream = tableStream;
_tables = tables;
_tableIndexBitCount = (int)Math.Ceiling(Math.Log(tables.Length, 2));
_tableIndexBitMask = (int)(Math.Pow(2, _tableIndexBitCount) - 1);
_maxSmallTableMemberCount = ushort.MaxValue >> _tableIndexBitCount;
}