function reversibleSymmetricalToSymmetricalTable(stateCount, revSymTable) {
const variations = getVariations(stateCount);
const symTable = Array.from({
length: getSymmetricalRuleSpaceSizePower(stateCount)
});
const symStateCount = getSymmetricalStateCount(stateCount);
for (let n = 0; n < symStateCount; n++) {
for (let c = 0; c < stateCount; c++) {
let combinedRevSymState = 0;
combinedRevSymState = combinedRevSymState * symStateCount + n;
combinedRevSymState = combinedRevSymState * stateCount + c;
const variation = variations[revSymTable[combinedRevSymState]];
for (let pc = 0; pc < stateCount; pc++) {
const combinedSymState = combinedRevSymState * stateCount + pc;
symTable[combinedSymState] = variation[pc];
}
}
}
return symTable;
}