operator + method

  1. @override
Expression operator +(
  1. dynamic other
)
override

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);
}