Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/23/14 13:12:07 (10 years ago)
Author:
mkommend
Message:

#2177: Implemented XOR symbol and adapted the interpreters and grammars.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interpreter/SymbolicDataAnalysisExpressionTreeInterpreter.cs

    r9828 r10774  
    344344            return Evaluate(dataset, ref row, state) > 0.0 ? -1.0 : 1.0;
    345345          }
     346        case OpCodes.XOR: {
     347            double firstArgument = Evaluate(dataset, ref row, state);
     348            double result = 1.0;
     349            for (int i = 1; i < currentInstr.nArguments; i++) {
     350              if (result <= 0.0) {
     351                state.SkipInstructions();
     352              } else {
     353                double evalutationResult = Evaluate(dataset, ref row, state);
     354                if (firstArgument <= 0 && evalutationResult > 0) result = -1.0;
     355                else if (firstArgument > 0 && evalutationResult <= 0) result = -1.0;
     356              }
     357            }
     358            return result > 0.0 ? 1.0 : -1.0;
     359          }
    346360        case OpCodes.GT: {
    347361            double x = Evaluate(dataset, ref row, state);
Note: See TracChangeset for help on using the changeset viewer.