private void RemoveCyclesFromGluedConstraints()
        {
            var feedbackSet = CycleRemoval <IntPair> .
                              GetFeedbackSetWithConstraints(new BasicGraph <IntPair>(GluedUpDownIntConstraints, this.intGraph.NodeCount), null);

            //feedbackSet contains all glued constraints making constraints cyclic
            foreach (IntPair p in feedbackSet)
            {
                GluedUpDownIntConstraints.Remove(p);
            }
        }
 private IEnumerable <IEdge> GetFeedbackSet()
 {
     this.gluedIntGraph = CreateGluedGraph();
     return(UnglueIntPairs(CycleRemoval <IntPair> .GetFeedbackSetWithConstraints(gluedIntGraph, this.GluedUpDownIntConstraints)));//avoiding lazy evaluation
 }