Skip to content

Commit 55c4765

Browse files
committed
utility mps copy
1 parent 72c50e4 commit 55c4765

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

src/states/infinitemps.jl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,14 @@ Base.size(ψ::InfiniteMPS, args...) = size(ψ.AL, args...)
216216
Base.length(ψ::InfiniteMPS) = length(ψ.AL)
217217
Base.eltype(ψ::InfiniteMPS) = eltype(ψ.AL)
218218
Base.copy(ψ::InfiniteMPS) = InfiniteMPS(copy(ψ.AL), copy(ψ.AR), copy(ψ.C), copy(ψ.AC))
219+
function Base.copy!(ψ::InfiniteMPS, ϕ::InfiniteMPS)
220+
copy!.(ψ.AL, ϕ.AL)
221+
copy!.(ψ.AR, ϕ.AR)
222+
copy!.(ψ.AC, ϕ.AC)
223+
copy!.(ψ.C, ϕ.C)
224+
return ψ
225+
end
226+
219227
function Base.repeat(ψ::InfiniteMPS, i::Int)
220228
return InfiniteMPS(repeat(ψ.AL, i), repeat(ψ.AR, i), repeat(ψ.C, i), repeat(ψ.AC, i))
221229
end

src/states/multilinemps.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,5 +83,8 @@ TensorKit.normalize!(a::MultilineMPS) = (normalize!.(parent(a)); return a)
8383
Base.convert(::Type{MultilineMPS}, st::InfiniteMPS) = Multiline([st])
8484
Base.convert(::Type{InfiniteMPS}, st::MultilineMPS) = only(st)
8585
Base.eltype(t::MultilineMPS) = eltype(t[1])
86+
Base.copy!(ψ::MultilineMPS, ϕ::MultilineMPS) = (copy!.(parent(ψ), parent(ϕ));
87+
ψ)
88+
8689
left_virtualspace(t::MultilineMPS, i::Int, j::Int) = left_virtualspace(t[i], j)
8790
right_virtualspace(t::MultilineMPS, i::Int, j::Int) = right_virtualspace(t[i], j)

0 commit comments

Comments
 (0)