public static int[] GetTableFromCode(BigInteger code, int sizePower, int stateCount) { var t = RuleConverterLib.GetDigitsFromNumber(code, stateCount); var padLength = sizePower - t.Length; return(t.Concat(Enumerable.Repeat(0, padLength)).ToArray()); }
public Rule( Packer packer, int[] table, int tablePackN = 1 ) : this( packer, RuleConverterLib.GetNumberFromDigits(table, packer.stateCount), table, tablePackN ) { }
private Rule( Packer packer, BigInteger code, int[] table, int tablePackN = 1 ) { this.packer = packer; this.code = code; this.table = table; this.tablePackN = tablePackN; tableDesc = string.Join("", table); tablePacked = RuleConverterLib.RepackTable( table, stateCount, stateCountPacked); if (tablePackN != 1) { tablePackedNCell = RuleConverterLib.RepackTableForNCell( packer, tablePacked, tablePackN); } else { tablePackedNCell = tablePacked; } }
public BigInteger GetNumberFromDigits(int[] digits) => RuleConverterLib.GetNumberFromDigits(digits, stateCount);
public virtual int[] GetFullTable(int[] table) => RuleConverterLib.ConvertTable(table, GetCombinedState, stateCount);