예제 #1
0
 public bdd(BDD id, bool addref)
 {
     this._id = id;
     if (addref)
     {
         SylvanSharp.addref(this._id);
     }
 }
예제 #2
0
        public bdd Not()
        {
            invocations++;
            watch.Start();
            var ret = new bdd(SylvanSharp.sylvan_sharp_not_addref(this._id), false);

            watch.Stop();
            return(ret);
        }
예제 #3
0
        public bdd Xor(bdd r)
        {
            invocations++;
            watch.Start();
            var ret = new bdd(SylvanSharp.sylvan_sharp_xor_addref(this._id, r._id), false);

            watch.Stop();
            return(ret);
        }
예제 #4
0
 public override string ToString()
 {
     if (SylvanSharp.nodecount(_id) < 100)
     {
         return(ToStringHelper(new Dictionary <BDD, string>()));
     }
     else
     {
         return("bdd");
     }
 }
예제 #5
0
        public static void init(
            int tablesize_lg2, int max_tablesize_lg2,
            int cachesize_lg2, int max_cachesize_lg2,
            int granularity = 0
            )
        {
            UInt64 table_size    = 1UL << tablesize_lg2;
            UInt64 max_tablesize = 1UL << max_tablesize_lg2;
            UInt64 cachesize     = 1UL << cachesize_lg2;
            UInt64 max_cachesize = 1UL << max_cachesize_lg2;

            SylvanSharp.init_package(table_size, max_tablesize, cachesize, max_cachesize);
            SylvanSharp.set_granularity(granularity);
        }
예제 #6
0
 public bdd GreaterThan(bdd r)
 {
     return(new bdd(SylvanSharp.sylvan_sharp_diff_addref(this.Id, r.Id), false));
 }
예제 #7
0
 public bdd Biimp(bdd r)
 {
     return(new bdd(SylvanSharp.sylvan_sharp_biimp_addref(this._id, r._id), false));
 }
예제 #8
0
 public void PrintDot()
 {
     SylvanSharp.print_dot(this._id);
 }
예제 #9
0
 public int Var()
 {
     return(SylvanSharp.var(this._id));
 }
예제 #10
0
 public bdd High()
 {
     return(new bdd(SylvanSharp.sylvan_sharp_high_addref(this.Id), false));
 }
예제 #11
0
 public bdd Low()
 {
     return(new bdd(SylvanSharp.sylvan_sharp_low_addref(this.Id), false));
 }
예제 #12
0
 public static bdd nithvar(int arg0)
 {
     return(new bdd(SylvanSharp.nithvar(arg0), false));
 }
예제 #13
0
 public bdd InvImplies(bdd r)
 {
     return(new bdd(SylvanSharp.sylvan_sharp_invimp_addref(this.Id, r.Id), false));
 }
예제 #14
0
 public bdd LessThan(bdd r)
 {
     return(new bdd(SylvanSharp.sylvan_sharp_less_addref(this.Id, r.Id), false));
 }