Search in sources :

Example 1 with BDDException

use of net.sf.javabdd.BDDException in project batfish by batfish.

the class BDDInteger method add.

/*
   * Add two BDDs bitwise to create a new BDD
   */
public BDDInteger add(BDDInteger var1) {
    if (this._bitvec.length != var1._bitvec.length) {
        throw new BDDException();
    } else {
        BDD var3 = _factory.zero();
        BDDInteger var4 = new BDDInteger(_factory, this._bitvec.length);
        for (int var5 = var4._bitvec.length - 1; var5 >= 0; --var5) {
            var4._bitvec[var5] = this._bitvec[var5].xor(var1._bitvec[var5]);
            var4._bitvec[var5] = var4._bitvec[var5].xor(var3.id());
            BDD var6 = this._bitvec[var5].or(var1._bitvec[var5]);
            var6 = var6.and(var3);
            BDD var7 = this._bitvec[var5].and(var1._bitvec[var5]);
            var7 = var7.or(var6);
            var3 = var7;
        }
        var3.free();
        return var4;
    }
}
Also used : BDD(net.sf.javabdd.BDD) BDDException(net.sf.javabdd.BDDException)

Example 2 with BDDException

use of net.sf.javabdd.BDDException in project batfish by batfish.

the class BDDInteger method sub.

/*
   * Subtract one BDD from another bitwise to create a new BDD
   */
public BDDInteger sub(BDDInteger var1) {
    if (this._bitvec.length != var1._bitvec.length) {
        throw new BDDException();
    } else {
        BDD var3 = _factory.zero();
        BDDInteger var4 = new BDDInteger(_factory, this._bitvec.length);
        for (int var5 = var4._bitvec.length - 1; var5 >= 0; --var5) {
            var4._bitvec[var5] = this._bitvec[var5].xor(var1._bitvec[var5]);
            var4._bitvec[var5] = var4._bitvec[var5].xor(var3.id());
            BDD var6 = var1._bitvec[var5].or(var3);
            BDD var7 = this._bitvec[var5].apply(var6, BDDFactory.less);
            var6.free();
            var6 = this._bitvec[var5].and(var1._bitvec[var5]);
            var6 = var6.and(var3);
            var6 = var6.or(var7);
            var3 = var6;
        }
        var3.free();
        return var4;
    }
}
Also used : BDD(net.sf.javabdd.BDD) BDDException(net.sf.javabdd.BDDException)

Aggregations

BDD (net.sf.javabdd.BDD)2 BDDException (net.sf.javabdd.BDDException)2