internal override Automaton <IMonadicPredicate <BDD, T> > GetAutomatonX(SimpleList <Variable> variables, ICartesianAlgebraBDD <T> alg, bool singletonSetSemantics) { if (singletonSetSemantics) { return(BasicAutomata.MkLe1 <T>(GetVarIndex(var1, variables), GetVarIndex(var2, variables), alg)); } else { return(BasicAutomata.MkLe2 <T>(GetVarIndex(var1, variables), GetVarIndex(var2, variables), alg)); } }
internal override Automaton <BDD> GetAutomatonBDD(SimpleList <Variable> variables, IBDDAlgebra alg, int nrOfLabelBits, bool singletonSetSemantics) { if (singletonSetSemantics) { return(BasicAutomata.MkLe1(GetVarIndex(var1, variables) + nrOfLabelBits, GetVarIndex(var2, variables) + nrOfLabelBits, alg)); } else { return(BasicAutomata.MkLe2(GetVarIndex(var1, variables) + nrOfLabelBits, GetVarIndex(var2, variables) + nrOfLabelBits, alg)); } }
internal override Automaton <BDD> GetAutomatonBDD(SimpleList <Variable> variables, IBDDAlgebra alg, int nrOfLabelBits) { var pos1 = variables.IndexOf(var1); var pos2 = variables.IndexOf(var2); if (pos1 < 0) { throw new InvalidOperationException(string.Format("unkown variable {0}", var1)); } if (pos2 < 0) { throw new InvalidOperationException(string.Format("unkown variable {0}", var2)); } pos1 = pos1 + nrOfLabelBits; pos2 = pos2 + nrOfLabelBits; return(BasicAutomata.MkLe2(pos1, pos2, alg)); }