Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/07/19 14:20:33 (5 years ago)
Author:
gkronber
Message:

#2915: Corrected calculation of cuberoot function in all interpreters and updated all formatters.
I tested a run with all interpreters and got the same results with all of them.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Formatters/SymbolicDataAnalysisExpressionCSharpFormatter.cs

    r16802 r16905  
    140140          FormatPower(node, strBuilder, "3");
    141141        } else if (node.Symbol is CubeRoot) {
    142           FormatPower(node, strBuilder, "1.0/3");
     142          strBuilder.Append("Cbrt(");
     143          FormatRecursively(node.GetSubtree(0), strBuilder);
     144          strBuilder.Append(")");
    143145        } else if (node.Symbol is Power) {
    144146          FormatFunction(node, "Math.Pow", strBuilder);
     
    252254      strBuilder.AppendLine("public static class Model {");
    253255      GenerateAverageSource(strBuilder);
     256      GenerateCbrtSource(strBuilder);
    254257      GenerateIfThenElseSource(strBuilder);
    255258      GenerateFactorSource(strBuilder);
     
    293296      strBuilder.AppendLine("private static double Average(params double[] values) {");
    294297      strBuilder.AppendLine("  return values.Average();");
     298      strBuilder.AppendLine("}");
     299    }
     300    private void GenerateCbrtSource(StringBuilder strBuilder) {
     301      strBuilder.AppendLine("private static double Cbrt(double x) {");
     302      strBuilder.AppendLine("  return x < 0 ? -Math.Pow(-x, 1.0 / 3.0) : Math.Pow(x, 1.0 / 3.0);");
    295303      strBuilder.AppendLine("}");
    296304    }
Note: See TracChangeset for help on using the changeset viewer.