-
Notifications
You must be signed in to change notification settings - Fork 56
Open
Description
Currently, in VectorInterface.add we are not correctly handling the case where one of the tensors is diagonal, but the other is not:
using TensorKit
t = rand(ComplexSpace(2), ComplexSpace(2))
d = DiagonalTensorMap(rand(2), ComplexSpace(2))
t - t # fine
d - d # fine
t - d # fine
d - t # error:
julia> d - t
ERROR: ArgumentError: cannot set off-diagonal entry (2, 1) to a nonzero value (-0.09276549337779227)
Stacktrace:
[1] setindex!
@ ~/.julia/juliaup/julia-1.12.4+0.x64.linux.gnu/share/julia/stdlib/v1.12/LinearAlgebra/src/diagonal.jl:226 [inlined]
[2] _setindex!
@ ./abstractarray.jl:1473 [inlined]
[3] setindex!
@ ./abstractarray.jl:1443 [inlined]
[4] macro expansion
@ ./broadcast.jl:995 [inlined]
[5] macro expansion
@ ./simdloop.jl:77 [inlined]
[6] copyto!
@ ./broadcast.jl:994 [inlined]
[7] copyto!(dest::LinearAlgebra.Diagonal{…}, bc::Base.Broadcast.Broadcasted{…})
@ LinearAlgebra ~/.julia/juliaup/julia-1.12.4+0.x64.linux.gnu/share/julia/stdlib/v1.12/LinearAlgebra/src/structuredbroadcast.jl:207
[8] materialize!
@ ./broadcast.jl:905 [inlined]
[9] materialize!
@ ./broadcast.jl:902 [inlined]
[10] add!(y::LinearAlgebra.Diagonal{…}, x::Base.ReshapedArray{…}, α::Float64, β::VectorInterface.One)
@ VectorInterface ~/.julia/packages/VectorInterface/J6qCR/src/abstractarray.jl:89
[11] add!(ty::DiagonalTensorMap{…}, tx::TensorMap{…}, α::Float64, β::VectorInterface.One)
@ TensorKit /home/ldevos/LocalProjects/TensorKit.jl/src/tensors/vectorinterface.jl:79
[12] add!
@ ~/.julia/packages/VectorInterface/J6qCR/src/interface.jl:124 [inlined]
[13] add(ty::DiagonalTensorMap{…}, tx::TensorMap{…}, α::Float64, β::VectorInterface.One)
@ TensorKit /home/ldevos/LocalProjects/TensorKit.jl/src/tensors/vectorinterface.jl:72
[14] add
@ ~/.julia/packages/VectorInterface/J6qCR/src/interface.jl:108 [inlined]
[15] -(t1::DiagonalTensorMap{Float64, ComplexSpace, Vector{…}}, t2::TensorMap{Float64, ComplexSpace, 1, 1, Vector{…}})
@ TensorKit /home/ldevos/LocalProjects/TensorKit.jl/src/tensors/linalg.jl:9Metadata
Metadata
Assignees
Labels
No labels