evaluate method
Evaluates the Polynomial for a given x value.
Implementation
@override
dynamic evaluate([dynamic x]) {
// If x is a context Map, look up the variable's value
final value = (x is Map<String, dynamic>)
? (x[variable.identifier.name] ?? Complex.zero())
: (x ?? Complex.zero());
dynamic result = Complex.zero();
for (var i = 0; i < coefficients.length; i++) {
// result += coefficients[i] * pow(x, coefficients.length - 1 - i);
var term = Multiply(coefficients[i],
Pow(Literal(value), Literal(coefficients.length - 1 - i)));
Expression currentResult =
(result is Expression) ? result : Literal(result);
result = Add(currentResult, term).evaluate();
}
return result;
}