Skip to content
This repository was archived by the owner on May 18, 2019. It is now read-only.

Commit da629b0

Browse files
vwaurichOpenModelica-Hudson
authored andcommitted
moved simplification rule to simplifyBinaryCommutativeWork
Belonging to [master]: - #2051
1 parent d76e9c2 commit da629b0

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

Compiler/FrontEnd/ExpressionSimplify.mo

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3870,7 +3870,6 @@ algorithm
38703870
guard Expression.expEqual(e1,e3)
38713871
then DAE.BINARY(e2,op1,DAE.BINARY(e1,DAE.POW(ty),DAE.RCONST(2.0)));
38723872

3873-
38743873
// r1 * (r2 * e) => (r1*r2)*e
38753874
case (DAE.MUL(),DAE.RCONST(real = r1),DAE.BINARY(DAE.RCONST(real = r2),DAE.MUL(DAE.T_REAL()),e2))
38763875
then DAE.BINARY(DAE.RCONST(r1 * r2),DAE.MUL(DAE.T_REAL_DEFAULT),e2);
@@ -3879,6 +3878,14 @@ algorithm
38793878
case (DAE.MUL(),DAE.RCONST(real = r1),DAE.BINARY(e2,DAE.MUL(DAE.T_REAL()),DAE.RCONST(real = r2)))
38803879
then DAE.BINARY(DAE.RCONST(r1 * r2),DAE.MUL(DAE.T_REAL_DEFAULT),e2);
38813880

3881+
// (r1 + (r2 - e)) => (r3 - e)
3882+
case (DAE.ADD(),DAE.RCONST(r1),DAE.BINARY(DAE.RCONST(r2),DAE.SUB(ty=ty),e1 as DAE.CREF(_)))
3883+
then DAE.BINARY(DAE.RCONST(realAdd(r1,r2)),DAE.SUB(ty),e1);
3884+
3885+
// ((r2 - e) + r1) => (r3 - e)
3886+
case (DAE.ADD(),DAE.BINARY(DAE.RCONST(r2),DAE.SUB(ty=ty),e1 as DAE.CREF(_)),DAE.RCONST(r1))
3887+
then DAE.BINARY(DAE.RCONST(realAdd(r1,r2)),DAE.SUB(ty),e1);
3888+
38823889
// |e1| /e1 = e1/|e1| => sign(e1)
38833890
case(DAE.DIV(ty),DAE.CALL(path=Absyn.IDENT("abs"),expLst={e1}),e2)
38843891
guard Expression.expEqual(e1,e2)
@@ -3997,15 +4004,6 @@ algorithm
39974004
checkZeroLengthArrayOp(oper);
39984005
then e1;
39994006

4000-
// Look for empty arrays
4001-
case (_,DAE.ADD(),DAE.RCONST(r),DAE.BINARY(DAE.RCONST(r1),DAE.SUB(ty=ty),DAE.CREF(componentRef=cr1, ty=ty2)),_,_)
4002-
equation
4003-
//print(" case55555 ");
4004-
//print("\n"+ExpressionDump.dumpExpStr(origExp,1)+"\n");
4005-
e1 = DAE.BINARY(DAE.RCONST(realAdd(r,r1)),DAE.SUB(ty),DAE.CREF(cr1, ty2));
4006-
//print("\nMAKE "+ExpressionDump.dumpExpStr(e1,1)+"\n");
4007-
then e1;
4008-
40094007
// a*(b^(-e)) => a/(b^e)
40104008
case (_,DAE.MUL(),e1,DAE.BINARY(exp1 = e2,operator = op1 as DAE.POW(ty = ty2),exp2 = DAE.UNARY(exp=e3,operator=DAE.UMINUS())),_,_)
40114009
equation

0 commit comments

Comments
 (0)