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

Commit 7eaf6bc

Browse files
lochelOpenModelica-Hudson
authored andcommitted
Replace BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate
Belonging to [master]: - #2898
1 parent e3d42ec commit 7eaf6bc

8 files changed

Lines changed: 35 additions & 66 deletions

File tree

Compiler/BackEnd/BackendDAEOptimize.mo

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -313,11 +313,11 @@ algorithm
313313

314314
case (syst, shared)
315315
algorithm
316-
((_, (_, _, true))) := BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate (
316+
((_, (_, _, true))) := BackendDAEUtil.traverseBackendDAEExpsEqns (
317317
syst.orderedEqs, Expression.traverseSubexpressionsHelper, (traverserExpsimplifyTimeIndepFuncCalls,
318318
(shared.globalKnownVars, shared.aliasVars, false))
319319
);
320-
((_, (_, _, true))) := BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate (
320+
((_, (_, _, true))) := BackendDAEUtil.traverseBackendDAEExpsEqns (
321321
syst.removedEqs, Expression.traverseSubexpressionsHelper, (traverserExpsimplifyTimeIndepFuncCalls,
322322
(shared.globalKnownVars, shared.aliasVars, false))
323323
);
@@ -407,8 +407,8 @@ protected
407407
algorithm
408408
shared := inDAE.shared;
409409
BackendDAEUtil.traverseBackendDAEExpsVarsWithUpdate(shared.globalKnownVars, Expression.traverseSubexpressionsHelper, (traverserExpsimplifyTimeIndepFuncCalls, (shared.globalKnownVars, shared.aliasVars, false)));
410-
BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(shared.initialEqs, Expression.traverseSubexpressionsHelper, (traverserExpsimplifyTimeIndepFuncCalls, (shared.globalKnownVars, shared.aliasVars, false)));
411-
BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(shared.removedEqs, Expression.traverseSubexpressionsHelper, (traverserExpsimplifyTimeIndepFuncCalls, (shared.globalKnownVars, shared.aliasVars, false)));
410+
BackendDAEUtil.traverseBackendDAEExpsEqns(shared.initialEqs, Expression.traverseSubexpressionsHelper, (traverserExpsimplifyTimeIndepFuncCalls, (shared.globalKnownVars, shared.aliasVars, false)));
411+
BackendDAEUtil.traverseBackendDAEExpsEqns(shared.removedEqs, Expression.traverseSubexpressionsHelper, (traverserExpsimplifyTimeIndepFuncCalls, (shared.globalKnownVars, shared.aliasVars, false)));
412412
(shared.eventInfo, _) := traverseEventInfoExps(shared.eventInfo, Expression.traverseSubexpressionsHelper, (traverserExpsimplifyTimeIndepFuncCalls, (shared.globalKnownVars, shared.aliasVars, false)));
413413
outDAE := BackendDAE.DAE(inDAE.eqs, shared);
414414
end simplifyTimeIndepFuncCallsShared;
@@ -3534,8 +3534,8 @@ algorithm
35343534

35353535
case BackendDAE.EQSYSTEM(orderedEqs=orderedEqs, removedEqs=removedEqs)
35363536
algorithm
3537-
BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(orderedEqs, traverserreplaceEdgeChange, false);
3538-
BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(removedEqs, traverserreplaceEdgeChange, false);
3537+
BackendDAEUtil.traverseBackendDAEExpsEqns(orderedEqs, traverserreplaceEdgeChange, false);
3538+
BackendDAEUtil.traverseBackendDAEExpsEqns(removedEqs, traverserreplaceEdgeChange, false);
35393539
then (isyst, true);
35403540

35413541
else (isyst, inChanged);
@@ -3589,7 +3589,7 @@ algorithm
35893589
BackendDAE.Shared shared;
35903590
case BackendDAE.DAE(systs, shared as BackendDAE.SHARED(removedEqs=remeqns))
35913591
algorithm
3592-
BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(remeqns, traverserreplaceEdgeChange, false);
3592+
BackendDAEUtil.traverseBackendDAEExpsEqns(remeqns, traverserreplaceEdgeChange, false);
35933593
then BackendDAE.DAE(systs, shared);
35943594
end match;
35953595
end replaceEdgeChangeShared;
@@ -5501,8 +5501,8 @@ protected function applyRewriteRulesBackend0
55015501
algorithm
55025502
try
55035503
BackendDAEUtil.traverseBackendDAEExpsVarsWithUpdate(isyst.orderedVars, traverserapplyRewriteRulesBackend, false);
5504-
BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(isyst.orderedEqs, traverserapplyRewriteRulesBackend, false);
5505-
BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(isyst.removedEqs, traverserapplyRewriteRulesBackend, false);
5504+
BackendDAEUtil.traverseBackendDAEExpsEqns(isyst.orderedEqs, traverserapplyRewriteRulesBackend, false);
5505+
BackendDAEUtil.traverseBackendDAEExpsEqns(isyst.removedEqs, traverserapplyRewriteRulesBackend, false);
55065506
outChanged := true;
55075507
else
55085508
outChanged := false;
@@ -5549,8 +5549,8 @@ protected
55495549
algorithm
55505550
shared := inDAE.shared;
55515551
BackendDAEUtil.traverseBackendDAEExpsVarsWithUpdate(shared.globalKnownVars, traverserapplyRewriteRulesBackend, false);
5552-
BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(shared.initialEqs, traverserapplyRewriteRulesBackend, false);
5553-
BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(shared.removedEqs, traverserapplyRewriteRulesBackend, false);
5552+
BackendDAEUtil.traverseBackendDAEExpsEqns(shared.initialEqs, traverserapplyRewriteRulesBackend, false);
5553+
BackendDAEUtil.traverseBackendDAEExpsEqns(shared.removedEqs, traverserapplyRewriteRulesBackend, false);
55545554
// not sure if we should apply the rules on the event info!
55555555
// (ei, _) := traverseEventInfoExps(eventInfo, traverserapplyRewriteRulesBackend, false);
55565556
outDAE := BackendDAE.DAE(inDAE.eqs, shared);

Compiler/BackEnd/BackendDAEUtil.mo

Lines changed: 6 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -6321,8 +6321,8 @@ algorithm
63216321
BackendDAE.DAE(systs, shared) := inBackendDAE;
63226322
outTypeA := List.fold1(systs, traverseBackendDAEExpsEqSystemWithUpdate, func, inTypeA);
63236323
outTypeA := traverseBackendDAEExpsVarsWithUpdate(shared.globalKnownVars, func, outTypeA);
6324-
outTypeA := traverseBackendDAEExpsEqnsWithUpdate(shared.initialEqs, func, outTypeA);
6325-
outTypeA := traverseBackendDAEExpsEqnsWithUpdate(shared.removedEqs, func, outTypeA);
6324+
outTypeA := traverseBackendDAEExpsEqns(shared.initialEqs, func, outTypeA);
6325+
outTypeA := traverseBackendDAEExpsEqns(shared.removedEqs, func, outTypeA);
63266326
else
63276327
(_, _, name) := System.dladdr(func);
63286328
Error.addInternalError("traverseBackendDAEExpsNoCopyWithUpdate failed for " + name, sourceInfo());
@@ -6367,8 +6367,8 @@ public function traverseBackendDAEExpsEqSystemWithUpdate "This function goes thr
63676367
end FuncExpType;
63686368
algorithm
63696369
outTypeA := traverseBackendDAEExpsVarsWithUpdate(syst.orderedVars, func, inTypeA);
6370-
outTypeA := traverseBackendDAEExpsEqnsWithUpdate(syst.orderedEqs, func, outTypeA);
6371-
outTypeA := traverseBackendDAEExpsEqnsWithUpdate(syst.removedEqs, func, outTypeA);
6370+
outTypeA := traverseBackendDAEExpsEqns(syst.orderedEqs, func, outTypeA);
6371+
outTypeA := traverseBackendDAEExpsEqns(syst.removedEqs, func, outTypeA);
63726372
end traverseBackendDAEExpsEqSystemWithUpdate;
63736373

63746374
public function traverseBackendDAEExpsVars "Helper for traverseBackendDAEExps"
@@ -6771,7 +6771,8 @@ algorithm
67716771
end match;
67726772
end traverseBackendDAEAttrDistribution;
67736773

6774-
public function traverseBackendDAEExpsEqns<T> "author: lochel"
6774+
public function traverseBackendDAEExpsEqns<T> "author: lochel
6775+
Traverse all expressions of an equation array and apply modifications to them."
67756776
input BackendDAE.EquationArray equationArray;
67766777
input FuncExpType func;
67776778
input output T extraArg;
@@ -6839,38 +6840,6 @@ algorithm
68396840
end try;
68406841
end traverseBackendDAEExpsEqnsWithStop;
68416842

6842-
public function traverseBackendDAEExpsEqnsWithUpdate<T> "author: lochel"
6843-
input BackendDAE.EquationArray equationArray;
6844-
input FuncExpType func;
6845-
input output T extraArg;
6846-
6847-
partial function FuncExpType
6848-
input output DAE.Exp exp;
6849-
input output T extraArg;
6850-
end FuncExpType;
6851-
protected
6852-
String name;
6853-
BackendDAE.Equation e, new_e;
6854-
algorithm
6855-
try
6856-
for i in 1:ExpandableArray.getLastUsedIndex(equationArray) loop
6857-
if ExpandableArray.occupied(i, equationArray) then
6858-
e := ExpandableArray.get(i, equationArray);
6859-
(new_e, extraArg) := BackendEquation.traverseExpsOfEquation(e, func, extraArg);
6860-
if not referenceEq(e, new_e) then
6861-
ExpandableArray.update(i, new_e, equationArray);
6862-
end if;
6863-
end if;
6864-
end for;
6865-
else
6866-
if Flags.isSet(Flags.FAILTRACE) then
6867-
(_, _, name) := System.dladdr(func);
6868-
Error.addInternalError("BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate failed for " + name, sourceInfo());
6869-
end if;
6870-
fail();
6871-
end try;
6872-
end traverseBackendDAEExpsEqnsWithUpdate;
6873-
68746843
public function traverseBackendDAEExpsOptEqn "author: Frenkel TUD 2010-11
68756844
Helper for traverseExpsOfEquation."
68766845
replaceable type Type_a subtypeof Any;

Compiler/BackEnd/DynamicOptimization.mo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ algorithm
456456
case BackendDAE.EQSYSTEM(orderedEqs=orderedEqs) algorithm
457457
vars := BackendVariable.daeGlobalKnownVars(outShared);
458458

459-
((_, idercr, icr, varLst)) := BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(orderedEqs, traverserinputDerivativesForDynOpt, (vars, idercr, icr, varLst));
459+
((_, idercr, icr, varLst)) := BackendDAEUtil.traverseBackendDAEExpsEqns(orderedEqs, traverserinputDerivativesForDynOpt, (vars, idercr, icr, varLst));
460460
if listEmpty(idercr) then
461461
fail();
462462
end if;

Compiler/BackEnd/IndexReduction.mo

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3336,7 +3336,7 @@ algorithm
33363336
vars := BackendVariable.addVars(dummyvars, vars);
33373337
// perform replacement rules
33383338
(osyst.orderedVars, _) := BackendVariable.traverseBackendDAEVarsWithUpdate(vars, replaceDummyDerivativesVar, ht);
3339-
BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate( osyst.orderedEqs, Expression.traverseSubexpressionsHelper,
3339+
BackendDAEUtil.traverseBackendDAEExpsEqns( osyst.orderedEqs, Expression.traverseSubexpressionsHelper,
33403340
(replaceDummyDerivativesExp, ht) );
33413341
// extend assignments
33423342
ass1 := Array.expand(nv1-nv, ass1, -1);
@@ -3473,7 +3473,7 @@ algorithm
34733473
vars := BackendVariable.addVars(dummvars,vars);
34743474
// perform replacement rules
34753475
(osyst.orderedVars, _) := BackendVariable.traverseBackendDAEVarsWithUpdate(vars, replaceDummyDerivativesVar, oHt);
3476-
BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate( osyst.orderedEqs, Expression.traverseSubexpressionsHelper,
3476+
BackendDAEUtil.traverseBackendDAEExpsEqns( osyst.orderedEqs, Expression.traverseSubexpressionsHelper,
34773477
(replaceDummyDerivativesExp, oHt) );
34783478
end addAllDummyStates;
34793479

@@ -3643,9 +3643,9 @@ algorithm
36433643
// create dummy_der vars and change deselected states to dummy states
36443644
((vars, ht)) = List.fold1(dummyStates, makeDummyVarandDummyDerivative, level, (syst.orderedVars, iHt));
36453645
(syst.orderedVars, _) = BackendVariable.traverseBackendDAEVarsWithUpdate(vars, replaceDummyDerivativesVar, ht);
3646-
_ = BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate( syst.orderedEqs, Expression.traverseSubexpressionsHelper,
3646+
_ = BackendDAEUtil.traverseBackendDAEExpsEqns( syst.orderedEqs, Expression.traverseSubexpressionsHelper,
36473647
(replaceDummyDerivativesExp, ht) );
3648-
_ = BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate( syst.orderedEqs, Expression.traverseSubexpressionsHelper,
3648+
_ = BackendDAEUtil.traverseBackendDAEExpsEqns( syst.orderedEqs, Expression.traverseSubexpressionsHelper,
36493649
(replaceFirstOrderDerivativesExp, repl) );
36503650
then (syst, ht);
36513651
end match;
@@ -3796,11 +3796,11 @@ protected
37963796
algorithm
37973797
BackendVariable.traverseBackendDAEVarsWithUpdate(outShared.aliasVars, replaceDummyDerivativesVar, ht);
37983798
BackendVariable.traverseBackendDAEVarsWithUpdate(outShared.globalKnownVars, replaceDummyDerivativesVar, ht);
3799-
BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate( outShared.initialEqs, Expression.traverseSubexpressionsHelper,
3799+
BackendDAEUtil.traverseBackendDAEExpsEqns( outShared.initialEqs, Expression.traverseSubexpressionsHelper,
38003800
(replaceDummyDerivativesExp, ht) );
3801-
BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate( outSyst.removedEqs, Expression.traverseSubexpressionsHelper,
3801+
BackendDAEUtil.traverseBackendDAEExpsEqns( outSyst.removedEqs, Expression.traverseSubexpressionsHelper,
38023802
(replaceDummyDerivativesExp, ht) );
3803-
BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate( outShared.removedEqs, Expression.traverseSubexpressionsHelper,
3803+
BackendDAEUtil.traverseBackendDAEExpsEqns( outShared.removedEqs, Expression.traverseSubexpressionsHelper,
38043804
(replaceDummyDerivativesExp, ht) );
38053805
end replaceDummyDerivatives;
38063806

Compiler/BackEnd/Initialization.mo

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ algorithm
169169
execStat("collectInitialBindings (initialization)");
170170

171171
// replace initial(), sample(...), delay(...) and homotopy(...)
172-
useHomotopy := BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(eqns, simplifyInitialFunctions, false);
172+
useHomotopy := BackendDAEUtil.traverseBackendDAEExpsEqns(eqns, simplifyInitialFunctions, false);
173173
execStat("simplifyInitialFunctions (initialization)");
174174

175175
vars := BackendVariable.rehashVariables(vars);
@@ -2581,11 +2581,11 @@ protected
25812581
BackendDAE.Shared shared = inDAE.shared;
25822582
algorithm
25832583
for eqs in outDAE.eqs loop
2584-
_ := BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(eqs.orderedEqs, removeInitializationStuff1, false);
2585-
_ := BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(eqs.removedEqs, removeInitializationStuff1, false);
2584+
_ := BackendDAEUtil.traverseBackendDAEExpsEqns(eqs.orderedEqs, removeInitializationStuff1, false);
2585+
_ := BackendDAEUtil.traverseBackendDAEExpsEqns(eqs.removedEqs, removeInitializationStuff1, false);
25862586
end for;
25872587

2588-
_ := BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(shared.removedEqs, removeInitializationStuff1, false);
2588+
_ := BackendDAEUtil.traverseBackendDAEExpsEqns(shared.removedEqs, removeInitializationStuff1, false);
25892589
for eq in BackendEquation.equationList(shared.removedEqs) loop
25902590
removedEqsList := match BackendEquation.equationKind(eq)
25912591
case BackendDAE.INITIAL_EQUATION() then removedEqsList;
@@ -2652,8 +2652,8 @@ public function replaceHomotopyWithSimplified
26522652
output BackendDAE.BackendDAE outDAE = inDAE;
26532653
algorithm
26542654
for eqs in outDAE.eqs loop
2655-
_ := BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(eqs.orderedEqs, replaceHomotopyWithSimplified1, false);
2656-
_ := BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(eqs.removedEqs, replaceHomotopyWithSimplified1, false);
2655+
_ := BackendDAEUtil.traverseBackendDAEExpsEqns(eqs.orderedEqs, replaceHomotopyWithSimplified1, false);
2656+
_ := BackendDAEUtil.traverseBackendDAEExpsEqns(eqs.removedEqs, replaceHomotopyWithSimplified1, false);
26572657
end for;
26582658
outDAE.eqs := list(BackendDAEUtil.clearEqSyst(eqs) for eqs in outDAE.eqs);
26592659
end replaceHomotopyWithSimplified;

Compiler/BackEnd/OnRelaxation.mo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ algorithm
326326
Util.profilerreset1();
327327
Util.profilerstart1();
328328
// replace evaluated parametes
329-
//_ = BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(eqns, replaceFinalParameter, BackendVariable.daeGlobalKnownVars(shared));
329+
//_ = BackendDAEUtil.traverseBackendDAEExpsEqns(eqns, replaceFinalParameter, BackendVariable.daeGlobalKnownVars(shared));
330330

331331
subsyst = BackendDAEUtil.createEqSystem(vars, eqns);
332332
(subsyst, m, _) = BackendDAEUtil.getIncidenceMatrix(subsyst, BackendDAE.ABSOLUTE(), SOME(funcs));

Compiler/BackEnd/SymbolicJacobian.mo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ algorithm
442442
list<DAE.Exp> explst;
443443
String s;
444444
case BackendDAE.EQSYSTEM(orderedEqs=orderedEqs) equation
445-
((_, explst as _::_)) = BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(orderedEqs, traverserinputDerivativesUsed, (BackendVariable.daeGlobalKnownVars(inShared), {}));
445+
((_, explst as _::_)) = BackendDAEUtil.traverseBackendDAEExpsEqns(orderedEqs, traverserinputDerivativesUsed, (BackendVariable.daeGlobalKnownVars(inShared), {}));
446446
s = stringDelimitList(List.map(explst, ExpressionDump.printExpStr), "\n");
447447
Error.addMessage(Error.DERIVATIVE_INPUT, {s});
448448
then (BackendDAEUtil.setEqSystEqs(isyst, orderedEqs), true);

Compiler/SimCode/SimCodeUtil.mo

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6583,8 +6583,8 @@ algorithm
65836583
//BackendDump.dumpVariables(vars,"VAR BEFORE");
65846584
//BackendDump.dumpEquationList(eqLst,"EQS BEFORE");
65856585
eqs := BackendEquation.copyEquationArray(systIn.orderedEqs);
6586-
_ := BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(eqs,replaceCrefWithStartValue,globalKnownVars);
6587-
_ := BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(eqs,replaceCrefWithStartValue,vars);
6586+
_ := BackendDAEUtil.traverseBackendDAEExpsEqns(eqs,replaceCrefWithStartValue,globalKnownVars);
6587+
_ := BackendDAEUtil.traverseBackendDAEExpsEqns(eqs,replaceCrefWithStartValue,vars);
65886588
//BackendDump.dumpEquationList(eqLst,"EQS AFTER");
65896589
vars1 := BackendVariable.listVar1(noStartVarLst);
65906590
syst := BackendDAEUtil.createEqSystem(vars1, eqs);

0 commit comments

Comments
 (0)