function symmetricalToFullTable(stateCount, symTable) {
const symmetryMap = getSymmetryMap(stateCount);
const symStateCount = getSymmetricalStateCount(stateCount);
function getCombinedState(n1, c, n2, pc) {
const n = symmetryMap[n1][n2];
let combinedState = 0;
combinedState = combinedState * stateCount + c;
combinedState = combinedState * symStateCount + n;
combinedState = combinedState * stateCount + pc;
return combinedState;
}
return toFullTable(
stateCount,
(_, n1, c, n2, pc) => symTable[getCombinedState(n1, c, n2, pc)]
);
}