diff --git a/Compiler/BackEnd/BackendDAEUtil.mo b/Compiler/BackEnd/BackendDAEUtil.mo index 64d67f1a37b..0731ed27e2b 100644 --- a/Compiler/BackEnd/BackendDAEUtil.mo +++ b/Compiler/BackEnd/BackendDAEUtil.mo @@ -4347,45 +4347,6 @@ public function updateIncidenceMatrix algorithm (outIncidenceMatrix,outIncidenceMatrixT):= matchcontinue (inBackendDAE,inIncidenceMatrix,inIncidenceMatrixT,inIntegerLst) - local - array> m_1,mt_1,m,mt; - list> changedvars; - list changedvars_1,eqns; - BackendDAE.BackendDAE dae; - - case (dae,m,mt,eqns) - equation - (m_1,mt_1) = updateIncidenceMatrix2(dae, m, eqns, mt); - //changedvars_1 = Util.listListUnionOnTrue(changedvars,intEq); - //mt_1 = updateTransposedMatrix(changedvars_1, m_1, mt); - then - (m_1,mt_1); - - case (dae,m,mt,eqns) - equation - print("- BackendDAE.updateIncidenceMatrix failed\n"); - then - fail(); - end matchcontinue; -end updateIncidenceMatrix; - -protected function updateIncidenceMatrix2 -"function: updateIncidenceMatrix2 - author: PA - Helper function to updateIncidenceMatrix - inputs: (BackendDAE, - IncidenceMatrix, - int list /* list of equations to update */) - outputs: (IncidenceMatrix, int list list /* changed vars */)" - input BackendDAE.BackendDAE inBackendDAE; - input BackendDAE.IncidenceMatrix inIncidenceMatrix; - input list inIntegerLst; - input BackendDAE.IncidenceMatrixT inIncidenceMatrixT; - output BackendDAE.IncidenceMatrix outIncidenceMatrix; - output BackendDAE.IncidenceMatrixT outIncidenceMatrixT; -algorithm - (outIncidenceMatrix,outIncidenceMatrixT):= - matchcontinue (inBackendDAE,inIncidenceMatrix,inIntegerLst,inIncidenceMatrixT) local BackendDAE.BackendDAE dae; BackendDAE.IncidenceMatrix m,m_1,m_2; @@ -4398,9 +4359,9 @@ algorithm BackendDAE.EquationArray daeeqns,daeseqns; list wc; - case (dae,m,{},mt) then (m,mt); + case (dae,m,mt,{}) then (m,mt); - case ((dae as BackendDAE.DAE(orderedVars = vars,knownVars = knvars,orderedEqs = daeeqns,removedEqs = daeseqns,eventInfo = BackendDAE.EVENT_INFO(whenClauseLst = wc))),m,(e :: eqns),mt) + case ((dae as BackendDAE.DAE(orderedVars = vars,knownVars = knvars,orderedEqs = daeeqns,removedEqs = daeseqns,eventInfo = BackendDAE.EVENT_INFO(whenClauseLst = wc))),m,mt,(e :: eqns)) equation abse = intAbs(e); e_1 = abse - 1; @@ -4411,18 +4372,18 @@ algorithm (_,outvars,invars) = Util.listIntersectionOnTrue1(oldvars,row,intEq); mt_1 = removeValuefromMatrix(outvars,abse,mt); mt_2 = addValuetoMatrix(invars,abse,mt_1); - (m_2,mt_3) = updateIncidenceMatrix2(dae, m_1, eqns,mt_2); + (m_2,mt_3) = updateIncidenceMatrix(dae, m_1, mt_2, eqns); then (m_2,mt_3); case (_,_,_,_) equation - print("- BackendDAEUtil.updateIncididenceMatrix2 failed\n"); + print("- BackendDAEUtil.updateIncididenceMatrix failed\n"); then fail(); end matchcontinue; -end updateIncidenceMatrix2; +end updateIncidenceMatrix; protected function getOldVars input array> m; @@ -4523,44 +4484,6 @@ algorithm end matchcontinue; end addValuetoMatrix; -protected function updateTransposedMatrix -"function: updateTransposedMatrix - author: PA - Takes a list of variables and the transposed - IncidenceMatrix, and updates the variable rows. - inputs: (int list /* var list */, - IncidenceMatrix, - IncidenceMatrixT) - outputs: IncidenceMatrixT" - input list inIntegerLst; - input BackendDAE.IncidenceMatrix inIncidenceMatrix; - input BackendDAE.IncidenceMatrixT inIncidenceMatrixT; - output BackendDAE.IncidenceMatrixT outIncidenceMatrixT; -algorithm - outIncidenceMatrixT:= - matchcontinue (inIntegerLst,inIncidenceMatrix,inIncidenceMatrixT) - local - array> m,mt,mt_1,mt_2; - list> mlst; - list row_1,vars; - BackendDAE.Value v; - case ({},m,mt) then mt; - case ((v :: vars),m,mt) - equation - mlst = arrayList(m); - row_1 = transposeRow(mlst, v, 1); - mt_1 = Util.arrayReplaceAtWithFill(row_1, intAbs(v), mt, {}); - mt_2 = updateTransposedMatrix(vars, m, mt_1); - then - mt_2; - case (_,_,_) - equation - print("- BackendDAE.updateTransposedMatrix failed\n"); - then - fail(); - end matchcontinue; -end updateTransposedMatrix; - public function getIncidenceMatrixfromOption "function getIncidenceMatrixfromOption" input BackendDAE.BackendDAE inDAE; input Option inM;