Exemple #1
0
        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();
        }
Exemple #2
0
        /// <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);
                }
            }
        }
Exemple #6
0
            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);
            }
        }
Exemple #9
0
 public override int Evaluate()
 {
     return(LeftExpression.Evaluate() + RightExpression.Evaluate());
 }
Exemple #10
0
 public override QValue Evaluate()
 {
     return(((IntValue)LeftExpression.Evaluate()).SmTh((IntValue)RightExpression.Evaluate()));
 }
Exemple #11
0
 public override QValue Evaluate()
 {
     return(((BoolValue)LeftExpression.Evaluate()).Or((BoolValue)RightExpression.Evaluate()));
 }
 public override int Evaluate()
 {
     return LeftExpression.Evaluate() * RightExpression.Evaluate();
 }
Exemple #13
0
 public override double Evaluate()
 {
     return(Math.Atan2(LeftExpression.Evaluate(), RightExpression.Evaluate()));
 }
Exemple #14
0
 public override double Evaluate()
 {
     return(LeftExpression.Evaluate() / RightExpression.Evaluate());
 }