Changeset 16892 for branches/2925_AutoDiffForDynamicalModels/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Formatters/SymbolicDataAnalysisExpressionCSharpFormatter.cs
- Timestamp:
- 05/04/19 08:22:42 (5 years ago)
- Location:
- branches/2925_AutoDiffForDynamicalModels
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2925_AutoDiffForDynamicalModels
- Property svn:mergeinfo changed
-
branches/2925_AutoDiffForDynamicalModels/HeuristicLab.Problems.DataAnalysis.Symbolic
-
branches/2925_AutoDiffForDynamicalModels/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Formatters/SymbolicDataAnalysisExpressionCSharpFormatter.cs
r16662 r16892 26 26 using System.Text; 27 27 using System.Text.RegularExpressions; 28 using HEAL.Attic; 28 29 using HeuristicLab.Common; 29 30 using HeuristicLab.Core; 30 31 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 31 using HEAL.Attic;32 32 33 33 namespace HeuristicLab.Problems.DataAnalysis.Symbolic { … … 56 56 } 57 57 58 private string VariableName2Identifier(string name) { 58 private string VariableName2Identifier(string name) { 59 59 /* 60 60 * identifier-start-character: … … 131 131 } else if (node.Symbol is Tangent) { 132 132 FormatFunction(node, "Math.Tan", strBuilder); 133 } else if (node.Symbol is HyperbolicTangent) { 134 FormatFunction(node, "Math.Tanh", strBuilder); 133 135 } else if (node.Symbol is Square) { 134 136 FormatSquare(node, strBuilder); 135 137 } else if (node.Symbol is SquareRoot) { 136 138 FormatFunction(node, "Math.Sqrt", strBuilder); 139 } else if (node.Symbol is Cube) { 140 FormatPower(node, strBuilder, "3"); 141 } else if (node.Symbol is CubeRoot) { 142 FormatPower(node, strBuilder, "1.0/3"); 137 143 } else if (node.Symbol is Power) { 138 144 FormatFunction(node, "Math.Pow", strBuilder); 139 145 } else if (node.Symbol is Root) { 140 146 FormatRoot(node, strBuilder); 147 } else if (node.Symbol is Absolute) { 148 FormatFunction(node, "Math.Abs", strBuilder); 149 } else if (node.Symbol is AnalyticQuotient) { 150 strBuilder.Append("("); 151 FormatRecursively(node.GetSubtree(0), strBuilder); 152 strBuilder.Append(" / Math.Sqrt(1 + Math.Pow("); 153 FormatRecursively(node.GetSubtree(1), strBuilder); 154 strBuilder.Append(" , 2) )"); 141 155 } else { 142 156 throw new NotSupportedException("Formatting of symbol: " + node.Symbol + " not supported for C# symbolic expression tree formatter."); … … 171 185 172 186 private void FormatSquare(ISymbolicExpressionTreeNode node, StringBuilder strBuilder) { 187 FormatPower(node, strBuilder, "2"); 188 } 189 private void FormatPower(ISymbolicExpressionTreeNode node, StringBuilder strBuilder, string exponent) { 173 190 strBuilder.Append("Math.Pow("); 174 191 FormatRecursively(node.GetSubtree(0), strBuilder); 175 strBuilder.Append( ", 2)");192 strBuilder.Append($", {exponent})"); 176 193 } 177 194
Note: See TracChangeset
for help on using the changeset viewer.