private SimplificationReturnValue EvaluateExpression(NumberClass expression)
{
var parser = new Parser();
foreach (var cfh in _customFunctions)
{
parser.AddCustomFunction(cfh.Key, cfh.Value);
}
foreach (var v in _variables)
{
if (v.Value.NumberType == NumberClass.NumberTypes.Float)
{
parser.AddVariable(v.Key, v.Value.FloatNumber);
}
if (v.Value.NumberType == NumberClass.NumberTypes.Integer)
{
parser.AddVariable(v.Key, v.Value.IntNumber);
}
if (v.Value.NumberType == NumberClass.NumberTypes.Expression)
{
parser.AddVariable(v.Key, v.Value.Expression);
}
}
foreach (var f in _functions)
{
parser.AddFunction(f.Name, f.Arguments, f.Expression);
}
return(parser.Simplify(expression.Expression));
}