MultivariatePolynomials.jl icon indicating copy to clipboard operation
MultivariatePolynomials.jl copied to clipboard

`MA.operate!(-, term0, term1)` recurs infinitely

Open nsajko opened this issue 2 years ago • 2 comments

julia> using DynamicPolynomials

julia> import MutableArithmetics

julia> const MA = MutableArithmetics
MutableArithmetics

julia> @polyvar x
(x,)

julia> MA.operate!(-, 2x, 3x)
^CERROR: InterruptException:
Stacktrace:
   [1] operate!
     @ MultivariatePolynomials ~/tmp/jl/MultivariatePolynomials.jl/src/operators.jl:303 [inlined]
   [2] operate!
     @ MultivariatePolynomials ~/tmp/jl/MultivariatePolynomials.jl/src/operators.jl:97 [inlined]
   [3] operate!
     @ MultivariatePolynomials ~/tmp/jl/MultivariatePolynomials.jl/src/operators.jl:303 [inlined]
   [4] operate!(op::typeof(-), p::Term{Int64, Monomial{DynamicPolynomials.Commutative{…}, Graded{…}}}, α::Term{Term{Term{…}, Monomial{…}}, Monomial{DynamicPolynomials.Commutative{…}, Graded{…}}})
     @ MultivariatePolynomials ~/tmp/jl/MultivariatePolynomials.jl/src/operators.jl:97--- the above 4 lines are repeated 54 more times ---
Some type information was truncated. Use `show(err)` to see complete types.

nsajko avatar Nov 26 '23 06:11 nsajko

related: #167?

nsajko avatar Nov 26 '23 06:11 nsajko

These might indeed be related but I think it's different. I guess operate! should mutate the coefficient if the terms have the same monomial and error otherwise. This simply need a new method

blegat avatar Nov 28 '23 15:11 blegat