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;
}
}
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;
}
}
Aggregations