예제 #1
0
 internal BDD(BDDAlgebra algebra, int ordinal, BDD one, BDD zero)
 {
     this.One     = one;
     this.Zero    = zero;
     this.Ordinal = ordinal;
     this.algebra = algebra;
 }
예제 #2
0
파일: IntervalSet.cs 프로젝트: olsaarik/srm
        public BDD AsBDD(BDDAlgebra alg)
        {
            var res = alg.False;

            for (int i = 0; i < intervals.Length; i++)
            {
                res = res | alg.MkSetFromRange(intervals[i].Item1, intervals[i].Item2, 15);
            }
            return(res);
        }
예제 #3
0
        public BDD ConvertToCharSet(BDDAlgebra solver, BV pred)
        {
            BDD res = solver.False;

            if (!pred.Equals(this.zero))
            {
                for (int i = 0; i < atoms.Length; i++)
                {
                    //construct the union of the corresponding atoms
                    if (!(pred & atoms[i]).Equals(this.zero))
                    {
                        BDD bdd_i = partition[i].AsBDD(solver);
                        res = solver.MkOr(res, bdd_i);
                    }
                }
            }
            return(res);
        }
예제 #4
0
 public BDD ConvertToCharSet(BDDAlgebra alg, BDD pred)
 {
     return(pred);
 }