Skip to content

Commit 69e6055

Browse files
committed
update factorization
1 parent ce5aae5 commit 69e6055

File tree

4 files changed

+7
-8
lines changed

4 files changed

+7
-8
lines changed

src/factorizations/diagonal.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ function MAK.initialize_output(
7272
V_cod = fuse(codomain(t))
7373
V_dom = fuse(domain(t))
7474
U = similar(t, codomain(t) V_cod)
75-
S = DiagonalTensorMap{real(scalartype(t))}(undef, V_cod V_dom)
75+
S = similar_diagonal(t, real(scalartype(t)), V_cod V_dom)
7676
Vᴴ = similar(t, V_dom domain(t))
7777
return U, S, Vᴴ
7878
end

src/factorizations/factorizations.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ module Factorizations
66
export copy_oftype, factorisation_scalartype, one!, truncspace
77

88
using ..TensorKit
9-
using ..TensorKit: AdjointTensorMap, SectorDict, SectorVector, blocktype, foreachblock, one!
9+
using ..TensorKit: AdjointTensorMap, SectorDict, SectorVector, blocktype, foreachblock, one!, similar_diagonal
1010

1111
using LinearAlgebra: LinearAlgebra, BlasFloat, Diagonal, svdvals, svdvals!, eigen, eigen!,
1212
isposdef, isposdef!, ishermitian

src/factorizations/matrixalgebrakit.jl

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ end
7474
function MAK.initialize_output(::typeof(svd_compact!), t::AbstractTensorMap, ::AbstractAlgorithm)
7575
V_cod = V_dom = infimum(fuse(codomain(t)), fuse(domain(t)))
7676
U = similar(t, codomain(t) V_cod)
77-
S = DiagonalTensorMap{real(scalartype(t))}(undef, V_cod)
77+
S = similar_diagonal(t, real(scalartype(t)), V_cod)
7878
Vᴴ = similar(t, V_dom domain(t))
7979
return U, S, Vᴴ
8080
end
@@ -89,16 +89,15 @@ end
8989
# ------------------------
9090
function MAK.initialize_output(::typeof(eigh_full!), t::AbstractTensorMap, ::AbstractAlgorithm)
9191
V_D = fuse(domain(t))
92-
T = real(scalartype(t))
93-
D = DiagonalTensorMap{T}(undef, V_D)
92+
D = similar_diagonal(t, real(scalartype(t)), V_D)
9493
V = similar(t, codomain(t) V_D)
9594
return D, V
9695
end
9796

9897
function MAK.initialize_output(::typeof(eig_full!), t::AbstractTensorMap, ::AbstractAlgorithm)
9998
V_D = fuse(domain(t))
10099
Tc = complex(scalartype(t))
101-
D = DiagonalTensorMap{Tc}(undef, V_D)
100+
D = similar_diagonal(t, Tc, V_D)
102101
V = similar(t, Tc, codomain(t) V_D)
103102
return D, V
104103
end

src/factorizations/truncation.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ function MAK.truncate(
6767

6868
= similar(U, codomain(U) V_truncated)
6969
truncate_domain!(Ũ, U, ind)
70-
= DiagonalTensorMap{scalartype(S)}(undef, V_truncated)
70+
= similar_diagonal(S, V_truncated)
7171
truncate_diagonal!(S̃, S, ind)
7272
Ṽᴴ = similar(Vᴴ, V_truncated domain(Vᴴ))
7373
truncate_codomain!(Ṽᴴ, Vᴴ, ind)
@@ -132,7 +132,7 @@ for f! in (:eig_trunc!, :eigh_trunc!)
132132
ind = MAK.findtruncated(diagview(D), strategy)
133133
V_truncated = truncate_space(space(D, 1), ind)
134134

135-
= DiagonalTensorMap{scalartype(D)}(undef, V_truncated)
135+
D = similar_diagonal(D, V_truncated)
136136
truncate_diagonal!(D̃, D, ind)
137137

138138
= similar(V, codomain(V) V_truncated)

0 commit comments

Comments
 (0)