Changeset 17034 for branches/2435-alglib_3_15/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Formatters/SymbolicDataAnalysisExpressionExcelFormatter.cs
- Timestamp:
- 06/25/19 23:14:06 (5 years ago)
- Location:
- branches/2435-alglib_3_15
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2435-alglib_3_15
- Property svn:mergeinfo changed
-
branches/2435-alglib_3_15/HeuristicLab.Problems.DataAnalysis.Symbolic
- Property svn:mergeinfo changed
/trunk/HeuristicLab.Problems.DataAnalysis.Symbolic (added) merged: 16700,16702,16737,16740,16758,16762,16764,16768,16802,16822,16839,16858,16868,16905,16978-16981,16983,17028
- Property svn:mergeinfo changed
-
branches/2435-alglib_3_15/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Formatters/SymbolicDataAnalysisExpressionExcelFormatter.cs
r16565 r17034 25 25 using System.Linq; 26 26 using System.Text; 27 using HEAL.Attic; 27 28 using HeuristicLab.Common; 28 29 using HeuristicLab.Core; 29 30 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 30 using HEAL.Attic;31 31 32 32 namespace HeuristicLab.Problems.DataAnalysis.Symbolic { … … 119 119 } 120 120 stringBuilder.Append(")"); 121 } else if (symbol is Absolute) { 122 stringBuilder.Append($"ABS({FormatRecursively(node.GetSubtree(0))})"); 123 } else if (symbol is AnalyticQuotient) { 124 stringBuilder.Append($"({FormatRecursively(node.GetSubtree(0))}) / SQRT(1 + POWER({FormatRecursively(node.GetSubtree(1))}, 2))"); 121 125 } else if (symbol is Average) { 122 stringBuilder.Append("(1/ ");126 stringBuilder.Append("(1/("); 123 127 stringBuilder.Append(node.SubtreeCount); 124 128 stringBuilder.Append(")*("); … … 129 133 stringBuilder.Append(")"); 130 134 } 131 stringBuilder.Append(") ");135 stringBuilder.Append("))"); 132 136 } else if (symbol is Constant) { 133 137 ConstantTreeNode constantTreeNode = node as ConstantTreeNode; … … 137 141 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); 138 142 stringBuilder.Append(")"); 143 } else if (symbol is Cube) { 144 stringBuilder.Append($"POWER({FormatRecursively(node.GetSubtree(0))}, 3)"); 145 } else if (symbol is CubeRoot) { 146 var arg_expr = FormatRecursively(node.GetSubtree(0)); 147 stringBuilder.Append($"IF({arg_expr} < 0, -POWER(-{arg_expr}, 1/3), POWER({arg_expr}, 1/3))"); 139 148 } else if (symbol is Division) { 140 149 if (node.SubtreeCount == 1) { 141 stringBuilder.Append("1/"); 142 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); 150 stringBuilder.Append("1/("); 151 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); 152 stringBuilder.Append(")"); 143 153 } else { 144 154 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); … … 192 202 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); 193 203 stringBuilder.Append(")"); 194 204 } else if (symbol is HyperbolicTangent) { 205 stringBuilder.Append("TANH("); 206 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); 207 stringBuilder.Append(")"); 195 208 } else if (symbol is Variable) { 196 209 VariableTreeNode variableTreeNode = node as VariableTreeNode;
Note: See TracChangeset
for help on using the changeset viewer.