Skip to content

Commit f483294

Browse files
committed
Fix r20795 (didn't revert both revisions)
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@20798 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent 917e7de commit f483294

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

Compiler/BackEnd/IndexReduction.mo

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2220,7 +2220,7 @@ algorithm
22202220
indexmap = arrayCreate(nfreeStates + nv,-1);
22212221
invindexmap = arrayCreate(nfreeStates,-1);
22222222
// workaround to get state indexes
2223-
(vars,(indexmap,invindexmap,nv1,_,_,_)) = BackendVariable.traverseBackendDAEVarsWithUpdate(vars,getStateIndexes,(indexmap,invindexmap,nv,nv,hovvars,{}));
2223+
(vars,(indexmap,invindexmap,_,nv1,_,_,_)) = BackendVariable.traverseBackendDAEVarsWithUpdate(vars,getStateIndexes,(indexmap,invindexmap,1,nv,nv,hovvars,{}));
22242224
// BackendDump.dumpMatching(indexmap);
22252225
m1 = arrayCreate(ne1,{});
22262226
mT1 = arrayCreate(nv1,{});
@@ -2233,7 +2233,7 @@ algorithm
22332233
getIncidenceMatrixLevelEquations(eqnslst,vars,neqnarr,ne,m1,mT1,m,mapEqnIncRow,mapIncRowEqn,indexmap,funcs);
22342234
// match the variables not the equations, to have prevered states unmatched
22352235
vec1 = Util.arrayExpand(nfreeStates,ass1,-1);
2236-
vec2 = Util.arrayExpand(neqns,ass2,-1);
2236+
vec2 =Util.arrayExpand(neqns,ass2,-1);
22372237
true = BackendDAEEXT.setAssignment(nv1,ne1,vec1,vec2);
22382238
Matching.matchingExternalsetIncidenceMatrix(ne1, nv1, mT1);
22392239
BackendDAEEXT.matching(ne1, nv1, 3, -1, 0.0, 0);
@@ -2401,8 +2401,8 @@ algorithm
24012401
end dumpBlock;
24022402

24032403
protected function getStateIndexes
2404-
input tuple<BackendDAE.Var, tuple<array<Integer>,array<Integer>,Integer,Integer,BackendDAE.Variables,list<Integer>>> inTpl;
2405-
output tuple<BackendDAE.Var, tuple<array<Integer>,array<Integer>,Integer,Integer,BackendDAE.Variables,list<Integer>>> outTpl;
2404+
input tuple<BackendDAE.Var, tuple<array<Integer>,array<Integer>,Integer,Integer,Integer,BackendDAE.Variables,list<Integer>>> inTpl;
2405+
output tuple<BackendDAE.Var, tuple<array<Integer>,array<Integer>,Integer,Integer,Integer,BackendDAE.Variables,list<Integer>>> outTpl;
24062406
algorithm
24072407
outTpl := matchcontinue(inTpl)
24082408
local
@@ -2413,16 +2413,17 @@ algorithm
24132413
BackendDAE.Variables hov;
24142414
list<Integer> derstatesindexs;
24152415
Option<DAE.ComponentRef> derName;
2416-
case ((v as BackendDAE.VAR(varName=cr,varKind=BackendDAE.STATE(derName=_)),(stateindexs,invmap,indx,nv,hov,derstatesindexs)))
2416+
case ((v as BackendDAE.VAR(varName=cr,varKind=BackendDAE.STATE(derName=_)),(stateindexs,invmap,indx,s,nv,hov,derstatesindexs)))
24172417
equation
2418-
(_::_,{s}) = BackendVariable.getVar(cr, hov);
2418+
(_::_,_) = BackendVariable.getVar(cr, hov);
2419+
s = s+1;
24192420
_= arrayUpdate(stateindexs,indx,s);
24202421
_= arrayUpdate(invmap,s-nv,indx);
24212422
then
2422-
((v,(stateindexs,invmap,indx+1,nv,hov,indx::derstatesindexs)));
2423-
case ((v,(stateindexs,invmap,indx,nv,hov,derstatesindexs)))
2423+
((v,(stateindexs,invmap,indx+1,s,nv,hov,indx::derstatesindexs)));
2424+
case ((v,(stateindexs,invmap,indx,s,nv,hov,derstatesindexs)))
24242425
then
2425-
((v,(stateindexs,invmap,indx+1,nv,hov,derstatesindexs)));
2426+
((v,(stateindexs,invmap,indx+1,s,nv,hov,derstatesindexs)));
24262427
end matchcontinue;
24272428
end getStateIndexes;
24282429

0 commit comments

Comments
 (0)