Newer
Older
u, op, v = args[0], x.op, args[-1]
if u.op == '-' and len(u.args) == 1:
return u.args[0] # --y ==> y
if u == 0 or v == 0:
return 0
if u == 1:
if u == 0:
return 0
if v == 0:
return 1
if u == 1:
return 1
if v == 1:
else:
raise ValueError("Unknown op: " + op)
# If we fall through to here, we can not simplify further
return Expr(op, *args)
def d(y, x):