internal override Automaton <IMonadicPredicate <BDD, T> > GetAutomatonX(SimpleList <Variable> variables, ICartesianAlgebraBDD <T> alg, bool singletonSetSemantics) { var k = GetVarIndex(var, variables); if (singletonSetSemantics) { return(BasicAutomata.MkEqN1 <T>(k, n, alg)); } else { return(BasicAutomata.MkEqN2 <T>(k, n, alg)); } }
internal override Automaton <BDD> GetAutomatonBDD(SimpleList <Variable> variables, IBDDAlgebra alg, int nrOfLabelBits) { var k = variables.IndexOf(var); if (k < 0) { throw new ArgumentOutOfRangeException("variables", string.Format("does not contain variable: {0}", var)); } k = k + nrOfLabelBits; return(BasicAutomata.MkEqN2(k, n, alg)); }
internal override Automaton <BDD> GetAutomatonBDD(SimpleList <Variable> variables, IBDDAlgebra alg, int nrOfLabelBits, bool singletonSetSemantics) { var k = GetVarIndex(var, variables) + nrOfLabelBits; if (singletonSetSemantics) { return(BasicAutomata.MkEqN1(k, n, alg)); } else { return(BasicAutomata.MkEqN2(k, n, alg)); } }