Changeset 14764 for branches/symbreg-factors-2650/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Formatters/SymbolicDataAnalysisExpressionSmalltalkFormatter.cs
- Timestamp:
- 03/18/17 14:22:46 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/symbreg-factors-2650/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Formatters/SymbolicDataAnalysisExpressionSmalltalkFormatter.cs
r14185 r14764 48 48 ISymbol symbol = node.Symbol; 49 49 50 if 50 if(symbol is ProgramRootSymbol || symbol is StartSymbol) 51 51 return FormatRecursively(node.GetSubtree(0)); 52 52 … … 55 55 stringBuilder.Append("("); 56 56 57 if 58 for 59 if 57 if(symbol is Addition) { 58 for(int i = 0; i < node.SubtreeCount; i++) { 59 if(i > 0) stringBuilder.Append("+"); 60 60 stringBuilder.Append(FormatRecursively(node.GetSubtree(i))); 61 61 } 62 } else if 62 } else if(symbol is And) { 63 63 stringBuilder.Append("("); 64 for 65 if 64 for(int i = 0; i < node.SubtreeCount; i++) { 65 if(i > 0) stringBuilder.Append("&"); 66 66 stringBuilder.Append("("); 67 67 stringBuilder.Append(FormatRecursively(node.GetSubtree(i))); … … 69 69 } 70 70 stringBuilder.Append(") ifTrue:[1] ifFalse:[-1]"); 71 } else if 71 } else if(symbol is Average) { 72 72 stringBuilder.Append("(1/"); 73 73 stringBuilder.Append(node.SubtreeCount); 74 74 stringBuilder.Append(")*("); 75 for 76 if 75 for(int i = 0; i < node.SubtreeCount; i++) { 76 if(i > 0) stringBuilder.Append("+"); 77 77 stringBuilder.Append(FormatRecursively(node.GetSubtree(i))); 78 78 } 79 79 stringBuilder.Append(")"); 80 } else if 80 } else if(symbol is Constant) { 81 81 ConstantTreeNode constantTreeNode = node as ConstantTreeNode; 82 82 stringBuilder.Append(constantTreeNode.Value.ToString(CultureInfo.InvariantCulture)); 83 } else if 83 } else if(symbol is Cosine) { 84 84 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); 85 85 stringBuilder.Append(" cos"); 86 } else if 87 if 86 } else if(symbol is Division) { 87 if(node.SubtreeCount == 1) { 88 88 stringBuilder.Append("1/"); 89 89 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); … … 91 91 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); 92 92 stringBuilder.Append("/("); 93 for 94 if 93 for(int i = 1; i < node.SubtreeCount; i++) { 94 if(i > 1) stringBuilder.Append("*"); 95 95 stringBuilder.Append(FormatRecursively(node.GetSubtree(i))); 96 96 } 97 97 stringBuilder.Append(")"); 98 98 } 99 } else if 99 } else if(symbol is Exponential) { 100 100 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); 101 101 stringBuilder.Append(" exp"); 102 } else if 102 } else if(symbol is GreaterThan) { 103 103 stringBuilder.Append("("); 104 104 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); … … 106 106 stringBuilder.Append(FormatRecursively(node.GetSubtree(1))); 107 107 stringBuilder.Append(") ifTrue: [1] ifFalse: [-1]"); 108 } else if 108 } else if(symbol is IfThenElse) { 109 109 stringBuilder.Append("("); 110 110 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); … … 114 114 stringBuilder.Append(FormatRecursively(node.GetSubtree(2))); 115 115 stringBuilder.Append("]"); 116 } else if 117 stringBuilder.Append("lagged variable not implemented");118 } else if 116 } else if(symbol is LaggedVariable) { 117 stringBuilder.Append("lagged variables are not supported"); 118 } else if(symbol is LessThan) { 119 119 stringBuilder.Append("("); 120 120 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); … … 122 122 stringBuilder.Append(FormatRecursively(node.GetSubtree(1))); 123 123 stringBuilder.Append(") ifTrue: [1] ifFalse: [-1]"); 124 } else if 124 } else if(symbol is Logarithm) { 125 125 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); 126 126 stringBuilder.Append("ln"); 127 } else if 128 for 129 if 127 } else if(symbol is Multiplication) { 128 for(int i = 0; i < node.SubtreeCount; i++) { 129 if(i > 0) stringBuilder.Append("*"); 130 130 stringBuilder.Append(FormatRecursively(node.GetSubtree(i))); 131 131 } 132 } else if 132 } else if(symbol is Not) { 133 133 stringBuilder.Append("("); 134 134 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); 135 135 stringBuilder.Append(">0) ifTrue: [-1] ifFalse: [1.0]"); 136 } else if 136 } else if(symbol is Or) { 137 137 stringBuilder.Append("("); 138 for 139 if 138 for(int i = 0; i < node.SubtreeCount; i++) { 139 if(i > 0) stringBuilder.Append("|"); 140 140 stringBuilder.Append("("); 141 141 stringBuilder.Append(FormatRecursively(node.GetSubtree(i))); … … 143 143 } 144 144 stringBuilder.Append(") ifTrue:[1] ifFalse:[-1]"); 145 } else if 145 } else if(symbol is Sine) { 146 146 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); 147 147 stringBuilder.Append(" sin"); 148 } else if 149 if 148 } else if(symbol is Subtraction) { 149 if(node.SubtreeCount == 1) { 150 150 stringBuilder.Append("-1*"); 151 151 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); 152 152 } else { 153 153 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); 154 for 154 for(int i = 1; i < node.SubtreeCount; i++) { 155 155 stringBuilder.Append(" - "); 156 156 stringBuilder.Append(FormatRecursively(node.GetSubtree(i))); 157 157 } 158 158 } 159 } else if 159 } else if(symbol is Tangent) { 160 160 stringBuilder.Append(FormatRecursively(node.GetSubtree(0))); 161 161 stringBuilder.Append(" tan"); 162 } else if 162 } else if(symbol is Variable) { 163 163 VariableTreeNode variableTreeNode = node as VariableTreeNode; 164 164 stringBuilder.Append(variableTreeNode.Weight.ToString(CultureInfo.InvariantCulture)); 165 165 stringBuilder.Append("*"); 166 166 stringBuilder.Append(variableTreeNode.VariableName); 167 } else if(symbol is BinaryFactorVariable || symbol is FactorVariable) { 168 stringBuilder.Append("factor variables are not supported"); 167 169 } else { 168 170 stringBuilder.Append("("); 169 for 170 if 171 for(int i = 0; i < node.SubtreeCount; i++) { 172 if(i > 0) stringBuilder.Append(", "); 171 173 stringBuilder.Append(FormatRecursively(node.GetSubtree(i))); 172 174 }
Note: See TracChangeset
for help on using the changeset viewer.