operator + method
Add operator. Creates an Add expression.
Throws ExpressionOperationException if the operand cannot be converted to an Expression.
Implementation
@override
Expression operator +(dynamic other) {
if (other is Polynomial) {
int maxDegree = dmath.max(coefficients.length, other.coefficients.length);
List<Expression> result =
List<Expression>.generate(maxDegree, (index) => Literal(0));
for (var i = 0; i < maxDegree; i++) {
Expression a = i < coefficients.length ? coefficients[i] : Literal(0);
Expression b =
i < other.coefficients.length ? other.coefficients[i] : Literal(0);
// Use simplifyBasic to combine literals if possible
result[i] = Add(a, b).simplifyBasic();
}
return Polynomial(result, variable: variable);
}
return Add(this, other);
}