JuliaSymbolics / Symbolics.jl

Symbolic programming for the next generation of numerical software
https://docs.sciml.ai/Symbolics/stable/
Other
1.37k stars 153 forks source link

Ambiguous method on array adjoint of Num #575

Open matbesancon opened 2 years ago

matbesancon commented 2 years ago
julia> typeof(E)
Symbolics.Arr{Num, 2}

julia> typeof(d)
Vector{Num} (alias for Array{Num, 1})

julia> ex2 = d' * inv(E) * d
ERROR: MethodError: *(::Adjoint{Num, Vector{Num}}, ::Symbolics.Arr{Num, 2}) is ambiguous. Candidates:
  *(A::AbstractMatrix, B::Symbolics.Arr{<:Any, 2}) in Symbolics at /home/mbesancon/.julia/packages/Symbolics/DCeQ3/src/wrapper-types.jl:128
  *(x::Adjoint{T, <:AbstractVector} where T, A::AbstractMatrix) in LinearAlgebra at /home/mbesancon/programs/julia-18/share/julia/stdlib/v1.8/LinearAlgebra/src/matmul.jl:119
Possible fix, define
  *(::Adjoint{T, <:AbstractVector} where T, ::Symbolics.Arr{<:Any, 2})
Stacktrace:
 [1] *(tu::Adjoint{Num, Vector{Num}}, B::Symbolics.Arr{Num, 2}, v::Vector{Num})
   @ LinearAlgebra ~/programs/julia-18/share/julia/stdlib/v1.8/LinearAlgebra/src/matmul.jl:1152
 [2] top-level scope
   @ REPL[12]:1
stelmo commented 2 years ago

I also ran into this issue! I have

f(x)' * y

where f is a julia function yielding a sparse matrix.