private BDD visitBinary( BooleanFormula pOperand1, BooleanFormula pOperand2, BDDFactory.BDDOp operator) { BDD operand1 = convert(pOperand1); BDD operand2 = convert(pOperand2); // optimization: applyWith() destroys arg0 and arg1, // but this is ok, because we would free them otherwise anyway return operand1.applyWith(operand2, operator); }
private BDD visitMulti(BDDFactory.BDDOp operator, List<BooleanFormula> pOperands) { checkArgument(pOperands.size() >= 2); BDD result = convert(pOperands.get(0)); for (int i = 1; i < pOperands.size(); i++) { // optimization: applyWith() destroys arg0 and arg1, // but this is ok, because we would free them otherwise anyway result = result.applyWith(convert(pOperands.get(i)), operator); } return result; }