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