Free cookie consent management tool by TermsFeed Policy Generator

source: branches/3138_Shape_Constraints_Transformations/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Converters/ConstantsToNumberConverter.cs @ 18180

Last change on this file since 18180 was 18180, checked in by dpiringe, 2 years ago

#3138

  • merged trunk into branch
File size: 868 bytes
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Threading.Tasks;
6using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
7
8namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
9  public static class ConstantsToNumberConverter {
10
11    public static ISymbolicExpressionTree Convert(ISymbolicExpressionTree original) {
12      var tree = original.Clone() as SymbolicExpressionTree;
13
14      foreach (var constantNode in tree.IterateNodesPostfix().OfType<ConstantTreeNode>()) {
15        var parent = constantNode.Parent;
16        var index = parent.IndexOfSubtree(constantNode);
17        var value = constantNode.Value;
18        var newNode = new NumberTreeNode(value);
19
20        parent.RemoveSubtree(index);
21        parent.InsertSubtree(index, newNode);
22      }
23
24      return tree;
25    }
26  }
27}
Note: See TracBrowser for help on using the repository browser.