Пример #1
0
        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));
            }
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
            }
        }