Skip to content

Commit 783256a

Browse files
committed
fix some diagonal edge cases
1 parent 71a6ba2 commit 783256a

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/tensors/factorizations/diagonal.jl

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,22 @@ for f! in (:lq_full!, :lq_compact!)
4949
end
5050
end
5151

52-
function initialize_output(::typeof(left_orth!), d::AdjointTensorMap)
52+
function initialize_output(::typeof(left_orth!), d::DiagonalTensorMap)
5353
return d, similar(d)
5454
end
55-
function initialize_output(::typeof(right_orth!), d::AdjointTensorMap)
55+
function initialize_output(::typeof(right_orth!), d::DiagonalTensorMap)
5656
return similar(d), d
5757
end
5858

59+
function initialize_output(::typeof(svd_full!), t::AbstractTensorMap, ::DiagonalAlgorithm)
60+
V_cod = fuse(codomain(t))
61+
V_dom = fuse(domain(t))
62+
U = similar(t, codomain(t) V_cod)
63+
S = DiagonalTensorMap{real(scalartype(t))}(undef, V_cod V_dom)
64+
Vᴴ = similar(t, V_dom domain(t))
65+
return U, S, Vᴴ
66+
end
67+
5968
for f! in
6069
(:qr_full!, :qr_compact!, :lq_full!, :lq_compact!, :eig_full!, :eig_trunc!, :eigh_full!,
6170
:eigh_trunc!, :right_orth!, :left_orth!)

0 commit comments

Comments
 (0)