Skip to content

Commit 774f37a

Browse files
committed
Simplify ifH(notB(..))
1 parent 032e1e7 commit 774f37a

File tree

4 files changed

+54
-52
lines changed

4 files changed

+54
-52
lines changed

src/HordeAd/Core/AstSimplify.hs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ astProject1
236236
=> AstTensor AstMethodLet s (TKProduct x z) -> AstTensor AstMethodLet s x
237237
astProject1 u = case u of
238238
Ast.AstPair x _z -> x
239-
Ast.AstCond b v1 v2 -> Ast.AstCond b (astProject1 v1) (astProject1 v2)
239+
Ast.AstCond b v1 v2 -> astCond b (astProject1 v1) (astProject1 v2)
240240
Ast.AstLet var t v -> Ast.AstLet var t (astProject1 v)
241241
Ast.AstFromPrimal u1 -> Ast.AstFromPrimal $ astProject1 u1
242242
Ast.AstFromDual u1 -> Ast.AstFromDual $ astProject1 u1
@@ -249,7 +249,7 @@ astProject2
249249
=> AstTensor AstMethodLet s (TKProduct x z) -> AstTensor AstMethodLet s z
250250
astProject2 u = case u of
251251
Ast.AstPair _x z -> z
252-
Ast.AstCond b v1 v2 -> Ast.AstCond b (astProject2 v1) (astProject2 v2)
252+
Ast.AstCond b v1 v2 -> astCond b (astProject2 v1) (astProject2 v2)
253253
Ast.AstLet var t v -> Ast.AstLet var t (astProject2 v)
254254
Ast.AstFromPrimal u1 -> Ast.AstFromPrimal $ astProject2 u1
255255
Ast.AstFromDual u1 -> Ast.AstFromDual $ astProject2 u1
@@ -724,6 +724,7 @@ astCond :: AstBool AstMethodLet
724724
-> AstTensor AstMethodLet s y -> AstTensor AstMethodLet s y
725725
-> AstTensor AstMethodLet s y
726726
astCond (AstBoolConst b) v w = if b then v else w
727+
astCond (Ast.AstBoolNot b) v w = astCond b w v
727728
astCond b (Ast.AstFromPrimal v) (Ast.AstFromPrimal w) =
728729
Ast.AstFromPrimal $ astCond b v w
729730
astCond b (Ast.AstFromDual v) (Ast.AstFromDual w) =

0 commit comments

Comments
 (0)