Skip to content

Commit

Permalink
- looks like some algorithms do not take care on already assigned ele…
Browse files Browse the repository at this point in the history
…ments

git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@14918 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
Jens Frenkel committed Jan 24, 2013
1 parent aa07511 commit 0f80740
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 10 deletions.
2 changes: 1 addition & 1 deletion Compiler/BackEnd/BackendDAEUtil.mo
Original file line number Diff line number Diff line change
Expand Up @@ -8129,7 +8129,7 @@ algorithm
neqns = systemSize(syst);
syst = Causalize.singularSystemCheck(nvars,neqns,syst,match_opts,matchingAlgorithm,arg,ishared);
// match the system and reduce index if neccessary
(syst,shared,arg) = matchingAlgorithmfunc(syst, ishared, false, match_opts, sssHandler, arg);
(syst,shared,arg) = matchingAlgorithmfunc(syst, ishared, true, match_opts, sssHandler, arg);
Debug.execStat("transformDAE -> matchingAlgorithm " +& mAmethodstr +& " index Reduction Method " +& str1,CevalScript.RT_CLOCK_EXECSTAT_BACKEND_MODULES);
then (syst,shared,SOME(arg));
case (_,_,_,(_,mAmethodstr),(_,str1,_,_))
Expand Down
27 changes: 18 additions & 9 deletions Compiler/BackEnd/Matching.mo
Original file line number Diff line number Diff line change
Expand Up @@ -4964,7 +4964,8 @@ algorithm
true = intGt(nvars,0);
true = intGt(neqns,0);
(vec2,vec1) = getAssignment(clearMatching,nvars,neqns,isyst);
(vec1,vec2,syst,shared,arg) = matchingExternal({},false,1,Config.getCheapMatchingAlgorithm(),1,isyst,ishared,nvars, neqns, vec1, vec2, inMatchingOptions, sssHandler, inArg);
true = Debug.bcallret4(not clearMatching,BackendDAEEXT.setAssignment, neqns, nvars, vec1, vec2, true);
(vec1,vec2,syst,shared,arg) = matchingExternal({},false,1,Config.getCheapMatchingAlgorithm(),Util.if_(clearMatching,1,0),isyst,ishared,nvars, neqns, vec1, vec2, inMatchingOptions, sssHandler, inArg);
syst = BackendDAEUtil.setEqSystemMatching(syst,BackendDAE.MATCHING(vec2,vec1,{}));
then
(syst,shared,arg);
Expand Down Expand Up @@ -5015,7 +5016,8 @@ algorithm
true = intGt(nvars,0);
true = intGt(neqns,0);
(vec2,vec1) = getAssignment(clearMatching,nvars,neqns,isyst);
(vec1,vec2,syst,shared,arg) = matchingExternal({},false,2,Config.getCheapMatchingAlgorithm(),1,isyst,ishared,nvars, neqns, vec1, vec2, inMatchingOptions, sssHandler, inArg);
true = Debug.bcallret4(not clearMatching,BackendDAEEXT.setAssignment, neqns, nvars, vec1, vec2, true);
(vec1,vec2,syst,shared,arg) = matchingExternal({},false,2,Config.getCheapMatchingAlgorithm(),Util.if_(clearMatching,1,0),isyst,ishared,nvars, neqns, vec1, vec2, inMatchingOptions, sssHandler, inArg);
syst = BackendDAEUtil.setEqSystemMatching(syst,BackendDAE.MATCHING(vec2,vec1,{}));
then
(syst,shared,arg);
Expand Down Expand Up @@ -5066,7 +5068,8 @@ algorithm
true = intGt(nvars,0);
true = intGt(neqns,0);
(vec2,vec1) = getAssignment(clearMatching,nvars,neqns,isyst);
(vec1,vec2,syst,shared,arg) = matchingExternal({},false,3,Config.getCheapMatchingAlgorithm(),1,isyst,ishared,nvars, neqns, vec1, vec2, inMatchingOptions, sssHandler, inArg);
true = Debug.bcallret4(not clearMatching,BackendDAEEXT.setAssignment, neqns, nvars, vec1, vec2, true);
(vec1,vec2,syst,shared,arg) = matchingExternal({},false,3,Config.getCheapMatchingAlgorithm(),Util.if_(clearMatching,1,0),isyst,ishared,nvars, neqns, vec1, vec2, inMatchingOptions, sssHandler, inArg);
syst = BackendDAEUtil.setEqSystemMatching(syst,BackendDAE.MATCHING(vec2,vec1,{}));
then
(syst,shared,arg);
Expand Down Expand Up @@ -5117,7 +5120,8 @@ algorithm
true = intGt(nvars,0);
true = intGt(neqns,0);
(vec2,vec1) = getAssignment(clearMatching,nvars,neqns,isyst);
(vec1,vec2,syst,shared,arg) = matchingExternal({},false,4,Config.getCheapMatchingAlgorithm(),1,isyst,ishared,nvars, neqns, vec1, vec2, inMatchingOptions, sssHandler, inArg);
true = Debug.bcallret4(not clearMatching,BackendDAEEXT.setAssignment, neqns, nvars, vec1, vec2, true);
(vec1,vec2,syst,shared,arg) = matchingExternal({},false,4,Config.getCheapMatchingAlgorithm(),Util.if_(clearMatching,1,0),isyst,ishared,nvars, neqns, vec1, vec2, inMatchingOptions, sssHandler, inArg);
syst = BackendDAEUtil.setEqSystemMatching(syst,BackendDAE.MATCHING(vec2,vec1,{}));
then
(syst,shared,arg);
Expand Down Expand Up @@ -5168,7 +5172,8 @@ algorithm
true = intGt(nvars,0);
true = intGt(neqns,0);
(vec2,vec1) = getAssignment(clearMatching,nvars,neqns,isyst);
(vec1,vec2,syst,shared,arg) = matchingExternal({},false,5,Config.getCheapMatchingAlgorithm(),1,isyst,ishared,nvars, neqns, vec1, vec2, inMatchingOptions, sssHandler, inArg);
true = Debug.bcallret4(not clearMatching,BackendDAEEXT.setAssignment, neqns, nvars, vec1, vec2, true);
(vec1,vec2,syst,shared,arg) = matchingExternal({},false,5,Config.getCheapMatchingAlgorithm(),Util.if_(clearMatching,1,0),isyst,ishared,nvars, neqns, vec1, vec2, inMatchingOptions, sssHandler, inArg);
syst = BackendDAEUtil.setEqSystemMatching(syst,BackendDAE.MATCHING(vec2,vec1,{}));
then
(syst,shared,arg);
Expand Down Expand Up @@ -5219,7 +5224,8 @@ algorithm
true = intGt(nvars,0);
true = intGt(neqns,0);
(vec2,vec1) = getAssignment(clearMatching,nvars,neqns,isyst);
(vec1,vec2,syst,shared,arg) = matchingExternal({},false,6,Config.getCheapMatchingAlgorithm(),1,isyst,ishared,nvars, neqns, vec1, vec2, inMatchingOptions, sssHandler, inArg);
true = Debug.bcallret4(not clearMatching,BackendDAEEXT.setAssignment, neqns, nvars, vec1, vec2, true);
(vec1,vec2,syst,shared,arg) = matchingExternal({},false,6,Config.getCheapMatchingAlgorithm(),Util.if_(clearMatching,1,0),isyst,ishared,nvars, neqns, vec1, vec2, inMatchingOptions, sssHandler, inArg);
syst = BackendDAEUtil.setEqSystemMatching(syst,BackendDAE.MATCHING(vec2,vec1,{}));
then
(syst,shared,arg);
Expand Down Expand Up @@ -5270,7 +5276,8 @@ algorithm
true = intGt(nvars,0);
true = intGt(neqns,0);
(vec2,vec1) = getAssignment(clearMatching,nvars,neqns,isyst);
(vec1,vec2,syst,shared,arg) = matchingExternal({},false,7,Config.getCheapMatchingAlgorithm(),1,isyst,ishared,nvars, neqns, vec1, vec2, inMatchingOptions, sssHandler, inArg);
true = Debug.bcallret4(not clearMatching,BackendDAEEXT.setAssignment, neqns, nvars, vec1, vec2, true);
(vec1,vec2,syst,shared,arg) = matchingExternal({},false,7,Config.getCheapMatchingAlgorithm(),Util.if_(clearMatching,1,0),isyst,ishared,nvars, neqns, vec1, vec2, inMatchingOptions, sssHandler, inArg);
syst = BackendDAEUtil.setEqSystemMatching(syst,BackendDAE.MATCHING(vec2,vec1,{}));
then
(syst,shared,arg);
Expand Down Expand Up @@ -5321,7 +5328,8 @@ algorithm
true = intGt(nvars,0);
true = intGt(neqns,0);
(vec2,vec1) = getAssignment(clearMatching,nvars,neqns,isyst);
(vec1,vec2,syst,shared,arg) = matchingExternal({},false,8,Config.getCheapMatchingAlgorithm(),1,isyst,ishared,nvars, neqns, vec1, vec2, inMatchingOptions, sssHandler, inArg);
true = Debug.bcallret4(not clearMatching,BackendDAEEXT.setAssignment, neqns, nvars, vec1, vec2, true);
(vec1,vec2,syst,shared,arg) = matchingExternal({},false,8,Config.getCheapMatchingAlgorithm(),Util.if_(clearMatching,1,0),isyst,ishared,nvars, neqns, vec1, vec2, inMatchingOptions, sssHandler, inArg);
syst = BackendDAEUtil.setEqSystemMatching(syst,BackendDAE.MATCHING(vec2,vec1,{}));
then
(syst,shared,arg);
Expand Down Expand Up @@ -5372,7 +5380,8 @@ algorithm
true = intGt(nvars,0);
true = intGt(neqns,0);
(vec2,vec1) = getAssignment(clearMatching,nvars,neqns,isyst);
(vec1,vec2,syst,shared,arg) = matchingExternal({},false,10,Config.getCheapMatchingAlgorithm(),1,isyst,ishared,nvars, neqns, vec1, vec2, inMatchingOptions, sssHandler, inArg);
true = Debug.bcallret4(not clearMatching,BackendDAEEXT.setAssignment, neqns, nvars, vec1, vec2, true);
(vec1,vec2,syst,shared,arg) = matchingExternal({},false,10,Config.getCheapMatchingAlgorithm(),Util.if_(clearMatching,1,0),isyst,ishared,nvars, neqns, vec1, vec2, inMatchingOptions, sssHandler, inArg);
syst = BackendDAEUtil.setEqSystemMatching(syst,BackendDAE.MATCHING(vec2,vec1,{}));
then
(syst,shared,arg);
Expand Down

0 comments on commit 0f80740

Please sign in to comment.