/// <summary> /// Differentiates the specified expression. /// </summary> /// <param name="expression">The expression.</param> /// <param name="variable">The variable.</param> /// <param name="parameters">The parameters.</param> /// <returns> /// Returns the derivative. /// </returns> public IExpression Differentiate(IExpression expression, Variable variable, ExpressionParameters parameters) { Differentiator.Variable = variable; Differentiator.Parameters = parameters; return(expression.Analyze(Differentiator)); }
private void SimpleTest(IExpression exp, IExpression expected) { var simple = exp.Analyze(simplifier); Assert.Equal(expected, simple); }
private IExpression Differentiate(IExpression exp, Variable variable, ExpressionParameters parameters) { return exp.Analyze(new Differentiator(parameters, variable)); }
/// <summary> /// Simplifies the <paramref name="expression"/>. /// </summary> /// <param name="expression">A expression to simplify.</param> /// <returns>A simplified expression.</returns> public IExpression Simplify(IExpression expression) { return(expression.Analyze(Simplifier)); }
private IExpression Differentiate(IExpression exp, Variable variable) { return exp.Analyze(new Differentiator(variable)); }
private IExpression Differentiate(IExpression exp) { return exp.Analyze(new Differentiator()); }
protected void TestException(IExpression exp) { Assert.Throws <ParameterTypeMismatchException>(() => exp.Analyze(analyzer)); }
protected void Test(IExpression exp, ResultType expected) { var simple = exp.Analyze(analyzer); Assert.Equal(expected, simple); }