JuliaStats / PDMats.jl

Uniform Interface for positive definite matrices of various structures
Other
104 stars 43 forks source link

Missing `*` method for `PDiagMat` #176

Open btmit opened 1 year ago

btmit commented 1 year ago
ERROR: MethodError: *(::PDMats.PDiagMat{Float64, Vector{Float64}}, ::Diagonal{Float64, Vector{Float64}}) is ambiguous.

Candidates:
  *(A::AbstractMatrix, D::Diagonal)
    @ LinearAlgebra /Applications/Julia-1.9.app/Contents/Resources/julia/share/julia/stdlib/v1.9/LinearAlgebra/src/diagonal.jl:247
  *(a::PDMats.PDiagMat, x::AbstractMatrix)
    @ PDMats ~/.julia/packages/PDMats/CbBv1/src/pdiagmat.jl:51

Possible fix, define
  *(::PDMats.PDiagMat, ::Diagonal)
RomeoV commented 2 months ago

A workaround is to change

pdmat * diagmat

to

(diagmat * pdmat)'

since they are both symmetric.