JuliaAlgebra / MultivariatePolynomials.jl

Multivariate polynomials interface
https://juliaalgebra.github.io/MultivariatePolynomials.jl/stable/
Other
135 stars 27 forks source link

errors after updating to MutableArithmetics v0.2.15 #158

Closed chriscoey closed 3 years ago

chriscoey commented 3 years ago

MutableArithmetics v0.2.15 update caused Hypatia's tests to fail: https://github.com/chriscoey/Hypatia.jl/runs/2301349951?check_suite_focus=true#step:6:1957

MWE:

using DynamicPolynomials
DynamicPolynomials.@polyvar x
m = DynamicPolynomials.monomials(x, 0:2)
rand(2,3) * m

gives:

ERROR: MethodError: mutable_buffered_operate!(::Polynomial{true, Float64}, ::typeof(MutableArithmetics.add_mul), ::Vector{Polynomial{true, Float64}}, ::Matrix{Float64}, ::MonomialVector{true}) is ambiguous. Candidates:
  mutable_buffered_operate!(buffer, ::typeof(MutableArithmetics.add_mul), C::VecOrMat{T} where T, A::AbstractMatrix{T} where T, B::AbstractVecOrMat{T} where T) in MutableArithmetics at /Users/coey/.julia/packages/MutableArithmetics/47eRY/src/linear_algebra.jl:290
  mutable_buffered_operate!(buffer::AbstractPolynomial, op::Union{typeof(MutableArithmetics.add_mul), typeof(MutableArithmetics.sub_mul)}, x, y, z, args::Vararg{Any, N}) where N in MultivariatePolynomials at /Users/coey/.julia/packages/MultivariatePolynomials/uzAhM/src/operators.jl:365
Possible fix, define
  mutable_buffered_operate!(::AbstractPolynomial, ::typeof(MutableArithmetics.add_mul), ::VecOrMat{T} where T, ::AbstractMatrix{T} where T, ::AbstractVecOrMat{T} where T)
Stacktrace:
 [1] mutable_operate!(#unused#::typeof(MutableArithmetics.add_mul), C::Vector{Polynomial{true, Float64}}, A::Matrix{Float64}, B::MonomialVector{true})
   @ MutableArithmetics ~/.julia/packages/MutableArithmetics/47eRY/src/linear_algebra.jl:316
 [2] mutable_operate_to!(C::Vector{Polynomial{true, Float64}}, #unused#::typeof(*), A::Matrix{Float64}, B::MonomialVector{true})
   @ MutableArithmetics ~/.julia/packages/MutableArithmetics/47eRY/src/linear_algebra.jl:333
 [3] _mul!(output::Vector{Polynomial{true, Float64}}, A::Matrix{Float64}, B::MonomialVector{true})
   @ MutableArithmetics ~/.julia/packages/MutableArithmetics/47eRY/src/dispatch.jl:73
 [4] mul!(::Vector{Polynomial{true, Float64}}, ::Matrix{Float64}, ::MonomialVector{true})
   @ MutableArithmetics ~/.julia/packages/MutableArithmetics/47eRY/src/dispatch.jl:90
 [5] *(A::Matrix{Float64}, x::MonomialVector{true})
   @ LinearAlgebra ~/julia/usr/share/julia/stdlib/v1.6/LinearAlgebra/src/matmul.jl:51

on Julia 1.6.0