public ValueExpression Evaluate() { var leftValue = LeftExpression.Evaluate().Value; var rightValue = RightExpression.Evaluate().Value; switch (Operator) { case Operator.Plus: return(new ValueExpression { Value = leftValue + rightValue }); case Operator.Minus: return(new ValueExpression { Value = leftValue - rightValue }); case Operator.Asterisk: return(new ValueExpression { Value = leftValue * rightValue }); case Operator.Slash: return(new ValueExpression { Value = leftValue / rightValue }); } throw new InvalidOperationException(); }
/// <summary> /// Evaluates the expression. /// </summary> /// <param name="context">Evaluation context.</param> /// <returns>Expression result.</returns> protected override object EvaluateNode(LogEventInfo context) { var v1 = LeftExpression.Evaluate(context); var v2 = RightExpression.Evaluate(context); return(Compare(v1, v2, RelationalOperator)); }
/// <summary> /// Evaluates the expression. /// </summary> /// <param name="context">Evaluation context.</param> /// <returns>Expression result.</returns> protected override object EvaluateNode(LogEventInfo context) { object v1 = LeftExpression.Evaluate(context); object v2 = RightExpression.Evaluate(context); return(Compare(v1, v2, RelationalOperator) ? BoxedTrue : BoxedFalse); }
public override Object Evaluate() { object left = LeftExpression.Evaluate(); object right = RightExpression.Evaluate(); if (left is Complex) { if (right is Complex) { return(EvaluateComplexComplex((Complex)left, (Complex)right)); } else { throw ThrowWrongArgumentType("^"); } } else if (left is CMatrix) { if (right is Complex) { return(EvaluateCMatrixComplex((CMatrix)left, (Complex)right)); } else { throw ThrowWrongArgumentType("^"); } } else { throw ThrowWrongArgumentType("^"); } }
public override object Evaluate() { IList <double> v = LeftExpression.EvaluateAsRealVector(); if (RightExpression == Expression <Object> .Null) { return(new CMatrix(MathStats.Histogram(v))); } else { object intvals = RightExpression.Evaluate(); if (intvals is Complex) { return(new CMatrix(MathStats.Histogram(v, ExpressionExtensions.AsInt32((Complex)intvals)))); } else if (intvals is CMatrix) { return(new CMatrix(MathStats.Histogram(v, ExpressionExtensions.AsRealVector((CMatrix)intvals)))); } else { throw ExceptionHelper.ThrowWrongArgumentType(intvals); } } }
public override double Evaluate() { double left = LeftExpression.Evaluate(); double right = RightExpression.Evaluate(); return(left + Random.NextDouble() * (right - left)); }
public override int Evaluate() { if (RightExpression.Evaluate() == 0) { throw new DivideByZeroException("divide by zero exception"); } return(LeftExpression.Evaluate() / RightExpression.Evaluate()); }
public override object Evaluate() { CPolynomial poly = LeftExpression.EvaluateAsCPolynomial(); Object x = RightExpression.Evaluate(); if (x is Complex) { return(poly.Evaluate((Complex)x)); } else if (x is CMatrix) { return(poly.Evaluate((CMatrix)x)); } else { throw ExceptionHelper.ThrowWrongArgumentType(x); } }
public override int Evaluate() { return(LeftExpression.Evaluate() + RightExpression.Evaluate()); }
public override QValue Evaluate() { return(((IntValue)LeftExpression.Evaluate()).SmTh((IntValue)RightExpression.Evaluate())); }
public override QValue Evaluate() { return(((BoolValue)LeftExpression.Evaluate()).Or((BoolValue)RightExpression.Evaluate())); }
public override int Evaluate() { return LeftExpression.Evaluate() * RightExpression.Evaluate(); }
public override double Evaluate() { return(Math.Atan2(LeftExpression.Evaluate(), RightExpression.Evaluate())); }
public override double Evaluate() { return(LeftExpression.Evaluate() / RightExpression.Evaluate()); }