JuliaSymbolics / SymbolicUtils.jl

Symbolic expressions, rewriting and simplification
https://docs.sciml.ai/SymbolicUtils/stable/
Other
541 stars 108 forks source link

method ambiguity for exponentiation of `Complex{Num}` #556

Closed simeonschaub closed 1 week ago

simeonschaub commented 12 months ago

MWE:

julia> Complex{Symbolics.Num}(Symbolics.Sym{Real}(:x), 0)^Symbolics.Num(2)
ERROR: MethodError: ^(::Complex{Num}, ::Num) is ambiguous.

Candidates:
  ^(z::Complex{T}, p::S) where {T<:Real, S<:Real}
    @ Base complex.jl:876
  ^(z::Complex{T}, p::T) where T<:Real
    @ Base complex.jl:863
  ^(a::Number, b::Num)
    @ Symbolics ~/.julia/packages/SymbolicUtils/ssQsQ/src/methods.jl:76

Possible fix, define
  ^(::Complex{T}, ::Num) where T<:Real

Stacktrace:
 [1] top-level scope
   @ REPL[63]:1
Azercoco commented 8 months ago

I am having the same issue ... Did you find a solution ?

karlwessel commented 1 week ago

Seems to be fixed. Here is the output with Symbolics v6.12.0:

julia> using Symbolics

julia> Complex{Symbolics.Num}(Symbolics.Sym{Real}(:x), 0)^Symbolics.Num(2)
(x)^2