Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/07/15 02:04:59 (9 years ago)
Author:
bburlacu
Message:

#1772: Small performance tweaks to the TraceCalculator. Reverted SubtreeCrossover to old behavior: do not clone subtrees (as it breaks tracing).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Tracking/TraceCalculator.cs

    r11925 r11968  
    9292      int si = subtreeIndex; // subtree index
    9393      int fi = 0; // fragment index
    94       while (g.Parents.Any()) {
     94      while (((List<IArc>)((IVertex)g).InArcs).Count > 0) {
     95        //      while (g.Parents.Any()) {
    9596        Debug.Assert(si < g.Data.Length);
    9697        var inArcs = (List<IArc>)((IVertex)g).InArcs;
     
    217218      int lastFi = lastTraceData.FragmentIndex; // last fragment index (index of the fragment in the previous trace node)
    218219      var td = new TraceData(si, fi, lastSi, lastFi); // trace data
    219       var arc = current.OutArcs.SingleOrDefault(a => a.Target == last && a.Data.Equals(td));
     220      //var arc = current.OutArcs.SingleOrDefault(a => a.Target == last && a.Data.Equals(td));
     221      var outArcs = (List<IArc>)((IVertex)current).OutArcs;
     222      var arc = outArcs.FirstOrDefault(a => a.Target == last && ((IArc<IDeepCloneable>)a).Data.Equals(td));
    220223      if (arc == null) {
    221224        arc = new GenealogyGraphArc(current, last) { Data = td };
Note: See TracChangeset for help on using the changeset viewer.