Changeset 7842 for branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Grammars/TypeCoherentExpressionGrammar.cs
- Timestamp:
- 05/16/12 16:28:49 (12 years ago)
- Location:
- branches/HeuristicLab.TimeSeries
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.TimeSeries
- Property svn:mergeinfo changed
-
branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Grammars/TypeCoherentExpressionGrammar.cs
r7268 r7842 40 40 private const string BooleanOperatorsName = "Boolean Operators"; 41 41 private const string ConditionalSymbolsName = "ConditionalSymbols"; 42 private const string SpecialFunctionsName = "Special Functions"; 42 43 private const string TimeSeriesSymbolsName = "Time Series Symbols"; 43 44 … … 65 66 var log = new Logarithm(); 66 67 var pow = new Power(); 68 var square = new Square(); 67 69 var root = new Root(); 70 var sqrt = new SquareRoot(); 68 71 var exp = new Exponential(); 72 73 var airyA = new AiryA(); 74 var airyB = new AiryB(); 75 var bessel = new Bessel(); 76 var cosineIntegral = new CosineIntegral(); 77 var dawson = new Dawson(); 78 var erf = new Erf(); 79 var expIntegralEi = new ExponentialIntegralEi(); 80 var fresnelCosineIntegral = new FresnelCosineIntegral(); 81 var fresnelSineIntegral = new FresnelSineIntegral(); 82 var gamma = new Gamma(); 83 var hypCosineIntegral = new HyperbolicCosineIntegral(); 84 var hypSineIntegral = new HyperbolicSineIntegral(); 85 var norm = new Norm(); 86 var psi = new Psi(); 87 var sineIntegral = new SineIntegral(); 88 69 89 var @if = new IfThenElse(); 70 90 var gt = new GreaterThan(); … … 90 110 var trigonometricSymbols = new GroupSymbol(TrigonometricFunctionsName, new List<ISymbol>() { sin, cos, tan }); 91 111 var exponentialAndLogarithmicSymbols = new GroupSymbol(ExponentialFunctionsName, new List<ISymbol> { exp, log }); 112 var specialFunctions = new GroupSymbol(SpecialFunctionsName, new List<ISymbol> { airyA, airyB, bessel, cosineIntegral, dawson, erf, expIntegralEi, 113 fresnelCosineIntegral,fresnelSineIntegral,gamma,hypCosineIntegral,hypSineIntegral,norm, psi, sineIntegral}); 92 114 var terminalSymbols = new GroupSymbol(TerminalsName, new List<ISymbol> { constant, variableSymbol }); 93 var realValuedSymbols = new GroupSymbol(RealValuedSymbolsName, new List<ISymbol>() { arithmeticSymbols, trigonometricSymbols, exponentialAndLogarithmicSymbols, terminalSymbols });94 95 var powerSymbols = new GroupSymbol(PowerFunctionsName, new List<ISymbol> { pow, root });115 var realValuedSymbols = new GroupSymbol(RealValuedSymbolsName, new List<ISymbol>() { arithmeticSymbols, trigonometricSymbols, exponentialAndLogarithmicSymbols, specialFunctions, terminalSymbols }); 116 117 var powerSymbols = new GroupSymbol(PowerFunctionsName, new List<ISymbol> { square, pow, sqrt, root }); 96 118 97 119 var conditionSymbols = new GroupSymbol(ConditionsName, new List<ISymbol> { @if, variableCondition }); … … 111 133 SetSubtreeCount(arithmeticSymbols, 2, 2); 112 134 SetSubtreeCount(trigonometricSymbols, 1, 1); 113 SetSubtreeCount(powerSymbols, 2, 2); 135 SetSubtreeCount(pow, 2, 2); 136 SetSubtreeCount(root, 2, 2); 137 SetSubtreeCount(square, 1, 1); 138 SetSubtreeCount(sqrt, 1, 1); 114 139 SetSubtreeCount(exponentialAndLogarithmicSymbols, 1, 1); 140 SetSubtreeCount(specialFunctions, 1, 1); 115 141 SetSubtreeCount(terminalSymbols, 0, 0); 116 142 … … 136 162 AddAllowedChildSymbol(realValuedSymbols, conditionSymbols); 137 163 AddAllowedChildSymbol(realValuedSymbols, timeSeriesSymbols); 164 AddAllowedChildSymbol(realValuedSymbols, specialFunctions); 138 165 139 166 AddAllowedChildSymbol(powerSymbols, variableSymbol, 0); 140 167 AddAllowedChildSymbol(powerSymbols, laggedVariable, 0); 141 168 AddAllowedChildSymbol(powerSymbols, constant, 1); 169 AddAllowedChildSymbol(square, realValuedSymbols, 0); 170 AddAllowedChildSymbol(sqrt, realValuedSymbols, 0); 142 171 143 172 AddAllowedChildSymbol(@if, comparisonSymbols, 0); … … 179 208 180 209 public void ConfigureAsDefaultRegressionGrammar() { 181 Symbols.Where(s => s is Average).First().Enabled = false; 182 Symbols.Where(s => s.Name == TrigonometricFunctionsName).First().Enabled = false; 183 Symbols.Where(s => s.Name == PowerFunctionsName).First().Enabled = false; 184 Symbols.Where(s => s.Name == ConditionalSymbolsName).First().Enabled = false; 185 Symbols.Where(s => s.Name == TimeSeriesSymbolsName).First().Enabled = false; 210 Symbols.First(s => s is Average).Enabled = false; 211 Symbols.First(s => s.Name == TrigonometricFunctionsName).Enabled = false; 212 Symbols.First(s => s.Name == PowerFunctionsName).Enabled = false; 213 Symbols.First(s => s.Name == SpecialFunctionsName).Enabled = false; 214 Symbols.First(s => s.Name == ConditionalSymbolsName).Enabled = false; 215 Symbols.First(s => s.Name == TimeSeriesSymbolsName).Enabled = false; 186 216 } 187 217 188 218 public void ConfigureAsDefaultClassificationGrammar() { 189 Symbols.Where(s => s is Average).First().Enabled = false; 190 Symbols.Where(s => s is VariableCondition).First().Enabled = false; 191 Symbols.Where(s => s.Name == TrigonometricFunctionsName).First().Enabled = false; 192 Symbols.Where(s => s.Name == ExponentialFunctionsName).First().Enabled = false; 193 Symbols.Where(s => s.Name == PowerFunctionsName).First().Enabled = false; 194 Symbols.Where(s => s.Name == TimeSeriesSymbolsName).First().Enabled = false; 219 Symbols.First(s => s is Average).Enabled = false; 220 Symbols.First(s => s is VariableCondition).Enabled = false; 221 Symbols.First(s => s.Name == TrigonometricFunctionsName).Enabled = false; 222 Symbols.First(s => s.Name == ExponentialFunctionsName).Enabled = false; 223 Symbols.First(s => s.Name == SpecialFunctionsName).Enabled = false; 224 Symbols.First(s => s.Name == PowerFunctionsName).Enabled = false; 225 Symbols.First(s => s.Name == TimeSeriesSymbolsName).Enabled = false; 195 226 } 196 227
Note: See TracChangeset
for help on using the changeset viewer.