Construct_Determined_States( State baseState, IEnumerable <TransitionFunction> determiningTFs) { int i = NUM_TAPES; foreach (TransitionFunction matchedTF in determiningTFs) { State permState = new State(matchedTF.DomainState.Actual); for (int k = 0; k < i; k++) { string headSymbol = SymMap[matchedTF.DomainHeadValues[k]]; permState = new State( permState.Actual + headSymbol, permState, headSymbol); } DeterminedState returnState = new DeterminedState( permState.Actual, permState, permState.Actual, matchedTF); yield return(returnState); } }
Construct_Transition_States_Secondary( IEnumerable <DeterminedState> determinedStates_ActorStates_Write) { foreach (DeterminedState dstateNthTape in determinedStates_ActorStates_Write) { DeterminedState dstateNthTape_MoveHead = new DeterminedState( dstateNthTape.Actual + "a", dstateNthTape, dstateNthTape.BaseState, dstateNthTape.TF, ("a").ToString()); yield return(dstateNthTape_MoveHead); } }
Construct_Transition_Complete_States( IEnumerable <DeterminedState> determinedStates) { foreach (DeterminedState dstate in determinedStates) { DeterminedState permStateCompleted = new DeterminedState( dstate.Actual + "F", dstate, dstate.Actual, dstate.TF, "F"); yield return(permStateCompleted); } }
Construct_Transition_States_Primary( IEnumerable <DeterminedState> determinedStates) { foreach (DeterminedState dstate in determinedStates) { // Since each dstate is unique, states and tfs can be added immediately. for (int i = 1; i <= NUM_TAPES; i++) { DeterminedState dstateNthTape = new DeterminedState( dstate.Actual + i, dstate, dstate.Actual, dstate.TF, (i).ToString()); yield return(dstateNthTape); } } }