Example #1
0
        public TExpression Substitute(MathContext context)
        {
            TOperand sub = this.Operand.Substitute(context);

            if (sub.Equals(this.Operand))
            {
                return(this.AsExpressionType());
            }

            return(this.OpFunction(sub));
        }
Example #2
0
        public TExpression Evaluate(MathContext context)
        {
            TOperand eval = this.Operand.Evaluate(context);

            if (eval.Equals(this.Operand))
            {
                return(this.AsExpressionType());
            }

            return(this.OpFunction(eval));
        }
Example #3
0
        public TExpression Substitute(MathContext context)
        {
            TArgA subA = this.A.Substitute(context);
            TArgB subB = this.B.Substitute(context);

            if (subA.Equals(this.A) && subB.Equals(this.B))
            {
                return(this.AsExpressionType());
            }

            return(this.OpFunction(subA, subB));
        }
Example #4
0
        public TExpression Evaluate(MathContext context)
        {
            TArgA evalA = this.A.Evaluate(context);
            TArgB evalB = this.B.Evaluate(context);

            if (evalA.Equals(this.A) && evalB.Equals(this.B))
            {
                return(this.AsExpressionType());
            }

            return(this.OpFunction(evalA, evalB));
        }
Example #5
0
 public TExpression Substitute(MathContext context)
 => (context[this.Identifier] is TExpression e) ? e : this.AsExpressionType();
Example #6
0
 public TExpression Evaluate(MathContext context)
 => (context[this.Identifier] is TExpression e) ? e.Evaluate(context) : this.AsExpressionType();