Skip to content

Commit

Permalink
[NB] update initial call cleanup (OpenModelica#12602)
Browse files Browse the repository at this point in the history
- traverse all equations and not only when conditions (can be anywhere in an if-expression)
  • Loading branch information
kabdelhak committed Jun 18, 2024
1 parent 73adf06 commit dfa28cb
Showing 1 changed file with 6 additions and 12 deletions.
18 changes: 6 additions & 12 deletions OMCompiler/Compiler/NBackEnd/Modules/1_Main/NBInitialization.mo
Original file line number Diff line number Diff line change
Expand Up @@ -545,19 +545,13 @@ public
function cleanupInitialCall
input output Equation eq;
input Boolean init;
protected
Pointer<Boolean> simplify = Pointer.create(false);
algorithm
eq := match eq
local
WhenEquationBody body;
Pointer<Boolean> simplify;
case Equation.WHEN_EQUATION(body = body) algorithm
simplify := Pointer.create(false);
body.condition := Expression.map(body.condition, function cleanupInitialCallExp(init = init, simplify = simplify));
// TODO simplify when equation if `Pointer.access(simplify)` is true
eq.body := body;
then Equation.simplify(eq);
else eq;
end match;
eq := Equation.map(eq, function cleanupInitialCallExp(init = init, simplify = simplify));
if Pointer.access(simplify) then
eq := Equation.simplify(eq);
end if;
end cleanupInitialCall;

function cleanupInitialCallExp
Expand Down

0 comments on commit dfa28cb

Please sign in to comment.