@@ -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