Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/16/12 16:28:49 (12 years ago)
Author:
gkronber
Message:

merged r7609:7840 from trunk into time series branch

Location:
branches/HeuristicLab.TimeSeries
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.TimeSeries

  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Grammars/TypeCoherentExpressionGrammar.cs

    r7268 r7842  
    4040    private const string BooleanOperatorsName = "Boolean Operators";
    4141    private const string ConditionalSymbolsName = "ConditionalSymbols";
     42    private const string SpecialFunctionsName = "Special Functions";
    4243    private const string TimeSeriesSymbolsName = "Time Series Symbols";
    4344
     
    6566      var log = new Logarithm();
    6667      var pow = new Power();
     68      var square = new Square();
    6769      var root = new Root();
     70      var sqrt = new SquareRoot();
    6871      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
    6989      var @if = new IfThenElse();
    7090      var gt = new GreaterThan();
     
    90110      var trigonometricSymbols = new GroupSymbol(TrigonometricFunctionsName, new List<ISymbol>() { sin, cos, tan });
    91111      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});
    92114      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 });
    96118
    97119      var conditionSymbols = new GroupSymbol(ConditionsName, new List<ISymbol> { @if, variableCondition });
     
    111133      SetSubtreeCount(arithmeticSymbols, 2, 2);
    112134      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);
    114139      SetSubtreeCount(exponentialAndLogarithmicSymbols, 1, 1);
     140      SetSubtreeCount(specialFunctions, 1, 1);
    115141      SetSubtreeCount(terminalSymbols, 0, 0);
    116142
     
    136162      AddAllowedChildSymbol(realValuedSymbols, conditionSymbols);
    137163      AddAllowedChildSymbol(realValuedSymbols, timeSeriesSymbols);
     164      AddAllowedChildSymbol(realValuedSymbols, specialFunctions);
    138165
    139166      AddAllowedChildSymbol(powerSymbols, variableSymbol, 0);
    140167      AddAllowedChildSymbol(powerSymbols, laggedVariable, 0);
    141168      AddAllowedChildSymbol(powerSymbols, constant, 1);
     169      AddAllowedChildSymbol(square, realValuedSymbols, 0);
     170      AddAllowedChildSymbol(sqrt, realValuedSymbols, 0);
    142171
    143172      AddAllowedChildSymbol(@if, comparisonSymbols, 0);
     
    179208
    180209    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;
    186216    }
    187217
    188218    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;
    195226    }
    196227
Note: See TracChangeset for help on using the changeset viewer.