Fix boolean or bugs
This commit is contained in:
parent
36a49d8a23
commit
4bd136285d
2 changed files with 8 additions and 8 deletions
|
@ -1,6 +1,6 @@
|
|||
// example using if-then-else-fi with ||
|
||||
def main(field a, field b) -> (field):
|
||||
field y = if x + 2 == 4 || x * 2 == 2 then 1 else 0 fi
|
||||
field y = if a + 2 == 4 || b * 2 == 2 then 1 else 0 fi
|
||||
field z = if y == 1 || y == 0 then y else 1 fi
|
||||
z == 1
|
||||
return z
|
||||
|
|
|
@ -369,15 +369,15 @@ impl Flattener {
|
|||
rhs
|
||||
);
|
||||
assert!(x.is_linear() && y.is_linear());
|
||||
let name_x_or_y = self.use_sym();
|
||||
let name_x_and_y = self.use_sym();
|
||||
statements_flattened.push(FlatStatement::Definition(
|
||||
name_x_or_y,
|
||||
FlatExpression::Sub(
|
||||
box FlatExpression::Add(x.clone(), y.clone()),
|
||||
box FlatExpression::Mult(x, y)
|
||||
)
|
||||
name_x_and_y,
|
||||
FlatExpression::Mult(x.clone(), y.clone())
|
||||
));
|
||||
FlatExpression::Identifier(name_x_or_y)
|
||||
FlatExpression::Sub(
|
||||
box FlatExpression::Add(x, y),
|
||||
box FlatExpression::Identifier(name_x_and_y)
|
||||
)
|
||||
},
|
||||
BooleanExpression::And(box lhs, box rhs) => {
|
||||
let x = self.flatten_boolean_expression(
|
||||
|
|
Loading…
Reference in a new issue