Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/17/15 15:45:55 (8 years ago)
Author:
mkommend
Message:

#2175: Improve source code and usability of complexity calculator.

File:
1 moved

Legend:

Unmodified
Added
Removed
  • branches/DataAnalysis.ComplexityAnalyzer/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisModelComplexityCalculator.cs

    r13219 r13220  
    2626
    2727namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
    28   public class SymbolicDataAnalysisModelComplexityAnalyzer {
    29     public static double CalculateComplexity(ISymbolicExpressionTreeNode node) {
     28  public static class SymbolicDataAnalysisModelComplexityCalculator {
     29    public static double CalculateComplexity(ISymbolicExpressionTree tree) {
     30      return CalculateComplexity(tree.Root);
     31    }
     32    public static double CalculateComplexity(ISymbolicExpressionTreeNode treeNode) {
     33      var node = treeNode;
     34      if (node.Symbol is ProgramRootSymbol) node = node.GetSubtree(0);
     35      if (node.Symbol is StartSymbol) node = node.GetSubtree(0);
     36
    3037      switch (OpCodes.MapSymbolToOpCode(node)) {
    3138        case OpCodes.Constant: {
     
    6168            for (int i = 0; i < node.SubtreeCount; i++) {
    6269              var nodeComplexity = CalculateComplexity(node.GetSubtree(i));
    63               complexity *= nodeComplexity +1;
     70              complexity *= nodeComplexity + 1;
    6471            }
    6572            return complexity;
Note: See TracChangeset for help on using the changeset viewer.