@@ -813,8 +813,8 @@ algorithm
813813 nextPaths2 = List . filter1OnTrue(allPathsIn, lastInListIsEqual, startNode);
814814 nextPaths2 = listAppend(nextPaths1,nextPaths2);
815815 nextPath = listHead(nextPaths2);
816- rest = List . deleteMember( allPathsIn,nextPath );
817- nextPath = List . deleteMember( nextPath,startNode );
816+ rest = List . deleteMemberOnTrue(nextPath, allPathsIn, function List . isEqualOnTrue(inCompFunc = intEq) );
817+ nextPath = List . deleteMemberOnTrue(startNode, nextPath,intEq );
818818 path = listAppend(nextPath,loopIn);
819819 path = connectPathsToOneLoop(rest,path);
820820 then
@@ -826,7 +826,7 @@ algorithm
826826 nextPaths2 = List . filter1OnTrue(rest, lastInListIsEqual, startNode);
827827 nextPaths2 = listAppend(nextPaths1,nextPaths2);
828828 nextPath = listHead(nextPaths2);
829- rest = List . deleteMember( rest,nextPath );
829+ rest = List . deleteMemberOnTrue(nextPath, rest, function List . isEqualOnTrue(inCompFunc = intEq) );
830830 path = listAppend(nextPath,restPath);
831831 path = connectPathsToOneLoop(rest,path);
832832 then
@@ -886,7 +886,7 @@ algorithm
886886 pos = -1 ;
887887 end if ;
888888
889- eqs = List . deleteMember( loop1,pos );
889+ eqs = List . deleteMemberOnTrue(pos, loop1,intEq );
890890 // print("contract eqs: "+stringDelimitList(List.map(eqs,intString),",")+" to eq "+intString(pos)+"\n");
891891
892892 // get the corresponding vars
@@ -935,7 +935,7 @@ algorithm
935935 pos = if not listEmpty(replEqs) then listHead(replEqs) else -1 ;
936936 pos = if not listEmpty(eqs) then listHead(eqs) else pos;
937937
938- eqs = List . deleteMember( loop1,pos );
938+ eqs = List . deleteMemberOnTrue(pos, loop1,intEq );
939939 // print("contract eqs: "+stringDelimitList(List.map(eqs,intString),",")+" to eq "+intString(pos)+"\n");
940940
941941 // get the corresponding vars
@@ -1128,7 +1128,7 @@ algorithm
11281128 equation
11291129 elemR = listReverse(elem);
11301130 elemR = List . getMember(elemR,elemLst);
1131- foldLst = List . deleteMember( foldLstIn,elem );
1131+ foldLst = List . deleteMemberOnTrue(elem, foldLstIn,function List . isEqualOnTrue(inCompFunc = intEq) );
11321132 then
11331133 elemR::foldLst;
11341134 else
@@ -1342,7 +1342,7 @@ algorithm
13421342 else
13431343 next := List . first(eqs);
13441344 end if ;
1345- rest := List . deleteMember( loopIn,next );
1345+ rest := List . deleteMemberOnTrue(next, loopIn,intEq );
13461346 then sortLoop(rest,m,mT,next::sortLoopIn);
13471347 end matchcontinue;
13481348end sortLoop;
@@ -1500,7 +1500,7 @@ algorithm
15001500 // check the next eqNode of the crossEq whether the paths is finished here or the path goes on to another crossEq
15011501 adjVars = arrayGet(mIn,crossEq);
15021502 adjEqs = List . map1(adjVars,Array . getIndexFirst,mTIn);
1503- adjEqs = List . map1(adjEqs, List . deleteMember,crossEq); // REMARK: this works only if there are no varCrossNodes
1503+ adjEqs = list( List . deleteMemberOnTrue(crossEq, eq, intEq) for eq in adjEqs); // REMARK: this works only if there are no varCrossNodes
15041504 adjEqs = List . filterOnFalse(adjEqs,listEmpty);
15051505 nextEqs = List . flatten(adjEqs);
15061506 (endEqs,unfinEqs,_) = List . intersection1OnTrue(nextEqs,allEqCrossNodes,intEq);
@@ -1517,7 +1517,7 @@ algorithm
15171517 prevEq = List . second(pathStart);
15181518 adjVars = arrayGet(mIn,lastEq);
15191519 adjEqs = List . map1(adjVars,Array . getIndexFirst,mTIn);
1520- adjEqs = List . map1(adjEqs, List . deleteMember,lastEq); // REMARK: this works only if there are no varCrossNodes
1520+ adjEqs = list( List . deleteMemberOnTrue(lastEq, eq, intEq) for eq in adjEqs); // REMARK: this works only if there are no varCrossNodes
15211521 adjEqs = List . filterOnFalse(adjEqs,listEmpty);
15221522 nextEqs = List . map(adjEqs,listHead);
15231523 (nextEqs,_) = List . deleteMemberOnTrue(prevEq,nextEqs,intEq); // do not take the path back to the previous node
@@ -2133,7 +2133,7 @@ algorithm
21332133 path = listHead(allPaths);
21342134 endNode = if not listEmpty(allPaths) then List . last(path) else -1 ;
21352135 endNode = if not listEmpty(paths2) then listHead(path) else -1 ;
2136- rest = List . deleteMember( pathsIn,path );
2136+ rest = List . deleteMemberOnTrue(path, pathsIn,function List . isEqualOnTrue(inCompFunc = intEq) );
21372137 sortedPaths = listAppend(sortedPathsIn,{path});
21382138 sortedPaths = sortPathsAsChain1(rest,firstNode,endNode,sortedPaths);
21392139
@@ -2149,7 +2149,7 @@ algorithm
21492149 path = listHead(allPaths);
21502150 startNode = if not listEmpty(allPaths) then List . last(path) else -1 ;
21512151 startNode = if not listEmpty(paths2) then listHead(path) else -1 ;
2152- rest = List . deleteMember( pathsIn,path );
2152+ rest = List . deleteMemberOnTrue(path, pathsIn,function List . isEqualOnTrue(inCompFunc = intEq) );
21532153 sortedPaths = path::sortedPathsIn;
21542154 sortedPaths = sortPathsAsChain1(rest,startNode,lastNode,sortedPaths);
21552155 then
0 commit comments