@@ -437,10 +437,16 @@ algorithm
437437 then
438438 {subLoop};
439439 case (_,_,_::_,_::_,_,_)
440- equation
440+ algorithm
441441 // print("there are both varCrossNodes and eqNodes\n");
442442 // at least get paths of length 2 between eqCrossNodes
443- paths = getShortPathsBetweenEqCrossNodes(List . sort(eqCrossLstIn,intGt), mIn, mTIn, {});
443+ for i in 1 :arrayLength(mIn) loop
444+ arrayUpdate(mIn, i, List . sort(mIn[i], intGt));
445+ end for ;
446+ for i in 1 :arrayLength(mTIn) loop
447+ arrayUpdate(mTIn, i, List . sort(mTIn[i], intGt));
448+ end for ;
449+ paths := getShortPathsBetweenEqCrossNodes(List . sort(eqCrossLstIn,intGt), mIn, mTIn, {});
444450 //
445451 // print("GOT SOME NEW LOOPS: \n"+stringDelimitList(List.map(paths,HpcOmTaskGraph.intLstString)," / ")+"\n");
446452 then
@@ -479,14 +485,14 @@ algorithm
479485 case (crossEq::rest,_,_,_)
480486 algorithm
481487 // print("check crossEq "+intString(crossEq)+"\n");
482- adjVars := List . sort( arrayGet(mIn, crossEq),intGt );
488+ adjVars := arrayGet(mIn, crossEq);
483489 for adjVar in adjVars loop
484- adjEqs := List . sort( List . removeOnTrue(crossEq, intEq, arrayGet(mTIn, adjVar)),intGt );
490+ adjEqs := List . removeOnTrue(crossEq, intEq, arrayGet(mTIn, adjVar));
485491 // print("all adj eqs "+stringDelimitList(List.map(adjEqs, intString),",")+"\n");
486492 // all adjEqs which are crossnodes as well
487493 adjEqs := List . intersectionIntSorted(adjEqs, rest);
488494 for adjEq in adjEqs loop
489- adjVars2 := List . sort( List . removeOnTrue(adjVar, intEq, arrayGet(mIn, adjEq)),intGt );
495+ adjVars2 := List . removeOnTrue(adjVar, intEq, arrayGet(mIn, adjEq));
490496 sharedVars := List . intersectionIntSorted(adjVars, adjVars2);
491497 // print("all sharedVars "+stringDelimitList(List.map(sharedVars, intString),",")+"\n");
492498 if (intGe(listLength(sharedVars),1 )) then
0 commit comments