operator - method

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

Subtract operator. Creates a Subtract 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);
      result[i] = Subtract(a, b).simplifyBasic();
    }
    return Polynomial(result, variable: variable);
  }
  return Subtract(this, other);
}