Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/17/15 16:21:29 (8 years ago)
Author:
bburlacu
Message:

#2442: Removed unused code, fixed formatting, fixed bug in AfterDeserializationHook.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.LinqExpressionTreeInterpreter/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interpreter/SymbolicDataAnalysisExpressionTreeILEmittingInterpreter.cs

    r13141 r13222  
    6969
    7070    private const string CheckExpressionsWithIntervalArithmeticParameterName = "CheckExpressionsWithIntervalArithmetic";
     71    private const string CheckExpressionsWithIntervalArithmeticParameterDescription = "Switch that determines if the interpreter checks the validity of expressions with interval arithmetic before evaluating the expression.";
    7172    private const string EvaluatedSolutionsParameterName = "EvaluatedSolutions";
    7273
     
    124125    [StorableHook(HookType.AfterDeserialization)]
    125126    private void AfterDeserialization() {
    126       Parameters.Remove(EvaluatedSolutionsParameterName);
    127       Parameters.Add(new FixedValueParameter<IntValue>(EvaluatedSolutionsParameterName, "A counter for the total number of solutions the interpreter has evaluated", new IntValue(0)));
    128 
    129       Parameters.Remove(CheckExpressionsWithIntervalArithmeticParameterName);
    130       Parameters.Add(new FixedValueParameter<BoolValue>(CheckExpressionsWithIntervalArithmeticParameterName,
    131         "Switch that determines if the interpreter checks the validity of expressions with interval arithmetic before evaluating the expression.", new BoolValue(false)));
     127      var evaluatedSolutions = new IntValue(0);
     128      var checkExpressionsWithIntervalArithmetic = new BoolValue(false);
     129      if (Parameters.ContainsKey(EvaluatedSolutionsParameterName)) {
     130        var evaluatedSolutionsParameter = (IValueParameter<IntValue>)Parameters[EvaluatedSolutionsParameterName];
     131        evaluatedSolutions = evaluatedSolutionsParameter.Value;
     132        Parameters.Remove(EvaluatedSolutionsParameterName);
     133      }
     134      Parameters.Add(new FixedValueParameter<IntValue>(EvaluatedSolutionsParameterName, "A counter for the total number of solutions the interpreter has evaluated", evaluatedSolutions));
     135      if (Parameters.ContainsKey(CheckExpressionsWithIntervalArithmeticParameterName)) {
     136        var checkExpressionsWithIntervalArithmeticParameter = (IValueParameter<BoolValue>)Parameters[CheckExpressionsWithIntervalArithmeticParameterName];
     137        Parameters.Remove(CheckExpressionsWithIntervalArithmeticParameterName);
     138        checkExpressionsWithIntervalArithmetic = checkExpressionsWithIntervalArithmeticParameter.Value;
     139      }
     140      Parameters.Add(new FixedValueParameter<BoolValue>(CheckExpressionsWithIntervalArithmeticParameterName, CheckExpressionsWithIntervalArithmeticParameterDescription, checkExpressionsWithIntervalArithmetic));
    132141    }
    133142
    134143    #region IStatefulItem
    135 
    136144    public void InitializeState() {
    137145      EvaluatedSolutions = 0;
     
    140148    public void ClearState() {
    141149    }
    142 
    143150    #endregion
    144151
     
    192199
    193200      switch (currentInstr.opCode) {
    194         case OpCodes.Add:
    195           {
     201        case OpCodes.Add: {
    196202            if (nArgs > 0) {
    197203              CompileInstructions(il, state, ds);
     
    203209            return;
    204210          }
    205         case OpCodes.Sub:
    206           {
     211        case OpCodes.Sub: {
    207212            if (nArgs == 1) {
    208213              CompileInstructions(il, state, ds);
     
    219224            return;
    220225          }
    221         case OpCodes.Mul:
    222           {
     226        case OpCodes.Mul: {
    223227            if (nArgs > 0) {
    224228              CompileInstructions(il, state, ds);
     
    230234            return;
    231235          }
    232         case OpCodes.Div:
    233           {
     236        case OpCodes.Div: {
    234237            if (nArgs == 1) {
    235238              il.Emit(System.Reflection.Emit.OpCodes.Ldc_R8, 1.0);
     
    247250            return;
    248251          }
    249         case OpCodes.Average:
    250           {
     252        case OpCodes.Average: {
    251253            CompileInstructions(il, state, ds);
    252254            for (int i = 1; i < nArgs; i++) {
     
    258260            return;
    259261          }
    260         case OpCodes.Cos:
    261           {
     262        case OpCodes.Cos: {
    262263            CompileInstructions(il, state, ds);
    263264            il.Emit(System.Reflection.Emit.OpCodes.Call, cos);
    264265            return;
    265266          }
    266         case OpCodes.Sin:
    267           {
     267        case OpCodes.Sin: {
    268268            CompileInstructions(il, state, ds);
    269269            il.Emit(System.Reflection.Emit.OpCodes.Call, sin);
    270270            return;
    271271          }
    272         case OpCodes.Tan:
    273           {
     272        case OpCodes.Tan: {
    274273            CompileInstructions(il, state, ds);
    275274            il.Emit(System.Reflection.Emit.OpCodes.Call, tan);
    276275            return;
    277276          }
    278         case OpCodes.Power:
    279           {
     277        case OpCodes.Power: {
    280278            CompileInstructions(il, state, ds);
    281279            CompileInstructions(il, state, ds);
     
    284282            return;
    285283          }
    286         case OpCodes.Root:
    287           {
     284        case OpCodes.Root: {
    288285            CompileInstructions(il, state, ds);
    289286            il.Emit(System.Reflection.Emit.OpCodes.Ldc_R8, 1.0); // 1 / round(...)
     
    294291            return;
    295292          }
    296         case OpCodes.Exp:
    297           {
     293        case OpCodes.Exp: {
    298294            CompileInstructions(il, state, ds);
    299295            il.Emit(System.Reflection.Emit.OpCodes.Call, exp);
    300296            return;
    301297          }
    302         case OpCodes.Log:
    303           {
     298        case OpCodes.Log: {
    304299            CompileInstructions(il, state, ds);
    305300            il.Emit(System.Reflection.Emit.OpCodes.Call, log);
    306301            return;
    307302          }
    308         case OpCodes.Square:
    309           {
     303        case OpCodes.Square: {
    310304            CompileInstructions(il, state, ds);
    311305            il.Emit(System.Reflection.Emit.OpCodes.Ldc_R8, 2.0);
     
    313307            return;
    314308          }
    315         case OpCodes.SquareRoot:
    316           {
     309        case OpCodes.SquareRoot: {
    317310            CompileInstructions(il, state, ds);
    318311            il.Emit(System.Reflection.Emit.OpCodes.Call, sqrt);
    319312            return;
    320313          }
    321         case OpCodes.AiryA:
    322           {
     314        case OpCodes.AiryA: {
    323315            CompileInstructions(il, state, ds);
    324316            il.Emit(System.Reflection.Emit.OpCodes.Call, airyA);
    325317            return;
    326318          }
    327         case OpCodes.AiryB:
    328           {
     319        case OpCodes.AiryB: {
    329320            CompileInstructions(il, state, ds);
    330321            il.Emit(System.Reflection.Emit.OpCodes.Call, airyB);
    331322            return;
    332323          }
    333         case OpCodes.Bessel:
    334           {
     324        case OpCodes.Bessel: {
    335325            CompileInstructions(il, state, ds);
    336326            il.Emit(System.Reflection.Emit.OpCodes.Call, bessel);
    337327            return;
    338328          }
    339         case OpCodes.CosineIntegral:
    340           {
     329        case OpCodes.CosineIntegral: {
    341330            CompileInstructions(il, state, ds);
    342331            il.Emit(System.Reflection.Emit.OpCodes.Call, cosIntegral);
    343332            return;
    344333          }
    345         case OpCodes.Dawson:
    346           {
     334        case OpCodes.Dawson: {
    347335            CompileInstructions(il, state, ds);
    348336            il.Emit(System.Reflection.Emit.OpCodes.Call, dawson);
    349337            return;
    350338          }
    351         case OpCodes.Erf:
    352           {
     339        case OpCodes.Erf: {
    353340            CompileInstructions(il, state, ds);
    354341            il.Emit(System.Reflection.Emit.OpCodes.Call, erf);
    355342            return;
    356343          }
    357         case OpCodes.ExponentialIntegralEi:
    358           {
     344        case OpCodes.ExponentialIntegralEi: {
    359345            CompileInstructions(il, state, ds);
    360346            il.Emit(System.Reflection.Emit.OpCodes.Call, expIntegralEi);
    361347            return;
    362348          }
    363         case OpCodes.FresnelCosineIntegral:
    364           {
     349        case OpCodes.FresnelCosineIntegral: {
    365350            CompileInstructions(il, state, ds);
    366351            il.Emit(System.Reflection.Emit.OpCodes.Call, fresnelCosIntegral);
    367352            return;
    368353          }
    369         case OpCodes.FresnelSineIntegral:
    370           {
     354        case OpCodes.FresnelSineIntegral: {
    371355            CompileInstructions(il, state, ds);
    372356            il.Emit(System.Reflection.Emit.OpCodes.Call, fresnelSinIntegral);
    373357            return;
    374358          }
    375         case OpCodes.Gamma:
    376           {
     359        case OpCodes.Gamma: {
    377360            CompileInstructions(il, state, ds);
    378361            il.Emit(System.Reflection.Emit.OpCodes.Call, gamma);
    379362            return;
    380363          }
    381         case OpCodes.HyperbolicCosineIntegral:
    382           {
     364        case OpCodes.HyperbolicCosineIntegral: {
    383365            CompileInstructions(il, state, ds);
    384366            il.Emit(System.Reflection.Emit.OpCodes.Call, hypCosIntegral);
    385367            return;
    386368          }
    387         case OpCodes.HyperbolicSineIntegral:
    388           {
     369        case OpCodes.HyperbolicSineIntegral: {
    389370            CompileInstructions(il, state, ds);
    390371            il.Emit(System.Reflection.Emit.OpCodes.Call, hypSinIntegral);
    391372            return;
    392373          }
    393         case OpCodes.Norm:
    394           {
     374        case OpCodes.Norm: {
    395375            CompileInstructions(il, state, ds);
    396376            il.Emit(System.Reflection.Emit.OpCodes.Call, norm);
    397377            return;
    398378          }
    399         case OpCodes.Psi:
    400           {
     379        case OpCodes.Psi: {
    401380            CompileInstructions(il, state, ds);
    402381            il.Emit(System.Reflection.Emit.OpCodes.Call, psi);
    403382            return;
    404383          }
    405         case OpCodes.SineIntegral:
    406           {
     384        case OpCodes.SineIntegral: {
    407385            CompileInstructions(il, state, ds);
    408386            il.Emit(System.Reflection.Emit.OpCodes.Call, sinIntegral);
    409387            return;
    410388          }
    411         case OpCodes.IfThenElse:
    412           {
     389        case OpCodes.IfThenElse: {
    413390            Label end = il.DefineLabel();
    414391            Label c1 = il.DefineLabel();
     
    424401            return;
    425402          }
    426         case OpCodes.AND:
    427           {
     403        case OpCodes.AND: {
    428404            Label falseBranch = il.DefineLabel();
    429405            Label end = il.DefineLabel();
     
    446422            return;
    447423          }
    448         case OpCodes.OR:
    449           {
     424        case OpCodes.OR: {
    450425            Label trueBranch = il.DefineLabel();
    451426            Label end = il.DefineLabel();
     
    475450            return;
    476451          }
    477         case OpCodes.NOT:
    478           {
     452        case OpCodes.NOT: {
    479453            CompileInstructions(il, state, ds);
    480454            il.Emit(System.Reflection.Emit.OpCodes.Ldc_I4_0); // > 0
     
    487461            return;
    488462          }
    489         case OpCodes.XOR:
    490           {
     463        case OpCodes.XOR: {
    491464            CompileInstructions(il, state, ds);
    492465            il.Emit(System.Reflection.Emit.OpCodes.Ldc_I4_0);
     
    505478            return;
    506479          }
    507         case OpCodes.GT:
    508           {
     480        case OpCodes.GT: {
    509481            CompileInstructions(il, state, ds);
    510482            CompileInstructions(il, state, ds);
     
    517489            return;
    518490          }
    519         case OpCodes.LT:
    520           {
     491        case OpCodes.LT: {
    521492            CompileInstructions(il, state, ds);
    522493            CompileInstructions(il, state, ds);
     
    528499            return;
    529500          }
    530         case OpCodes.TimeLag:
    531           {
     501        case OpCodes.TimeLag: {
    532502            LaggedTreeNode laggedTreeNode = (LaggedTreeNode)currentInstr.dynamicNode;
    533503            il.Emit(System.Reflection.Emit.OpCodes.Ldarg_0); // row -= lag
     
    545515            return;
    546516          }
    547         case OpCodes.Integral:
    548           {
     517        case OpCodes.Integral: {
    549518            int savedPc = state.ProgramCounter;
    550519            LaggedTreeNode laggedTreeNode = (LaggedTreeNode)currentInstr.dynamicNode;
     
    573542        //one sided smooth differentiatior, N = 4
    574543        // y' = 1/8h (f_i + 2f_i-1, -2 f_i-3 - f_i-4)
    575         case OpCodes.Derivative:
    576           {
     544        case OpCodes.Derivative: {
    577545            int savedPc = state.ProgramCounter;
    578546            CompileInstructions(il, state, ds);
     
    616584            return;
    617585          }
    618         case OpCodes.Call:
    619           {
     586        case OpCodes.Call: {
    620587            throw new NotSupportedException(
    621588              "Automatically defined functions are not supported by the SymbolicDataAnalysisTreeILEmittingInterpreter. Either turn of ADFs or change the interpeter.");
    622589          }
    623         case OpCodes.Arg:
    624           {
     590        case OpCodes.Arg: {
    625591            throw new NotSupportedException(
    626592              "Automatically defined functions are not supported by the SymbolicDataAnalysisTreeILEmittingInterpreter. Either turn of ADFs or change the interpeter.");
    627593          }
    628         case OpCodes.Variable:
    629           {
     594        case OpCodes.Variable: {
    630595            VariableTreeNode varNode = (VariableTreeNode)currentInstr.dynamicNode;
    631596            il.Emit(System.Reflection.Emit.OpCodes.Ldarg_1); // load columns array
     
    659624            return;
    660625          }
    661         case OpCodes.LagVariable:
    662           {
     626        case OpCodes.LagVariable: {
    663627            var nanResult = il.DefineLabel();
    664628            var normalResult = il.DefineLabel();
     
    688652            return;
    689653          }
    690         case OpCodes.Constant:
    691           {
     654        case OpCodes.Constant: {
    692655            ConstantTreeNode constNode = (ConstantTreeNode)currentInstr.dynamicNode;
    693656            il.Emit(System.Reflection.Emit.OpCodes.Ldc_R8, constNode.Value);
     
    697660        //mkommend: this symbol uses the logistic function f(x) = 1 / (1 + e^(-alpha * x) )
    698661        //to determine the relative amounts of the true and false branch see http://en.wikipedia.org/wiki/Logistic_function
    699         case OpCodes.VariableCondition:
    700           {
     662        case OpCodes.VariableCondition: {
    701663            throw new NotSupportedException("Interpretation of symbol " + currentInstr.dynamicNode.Symbol.Name +
    702664                                            " is not supported by the SymbolicDataAnalysisTreeILEmittingInterpreter");
Note: See TracChangeset for help on using the changeset viewer.