@@ -157,10 +157,29 @@ end
157157
158158# # Vector interface
159159
160- function VectorInterface. scalartype (:: Type{NT} ) where {NT<: InfinitePEPS }
161- return scalartype (eltype (NT))
160+ VI. scalartype (:: Type{NT} ) where {NT<: InfinitePEPS } = scalartype (eltype (NT))
161+ VI. zerovector (A:: InfinitePEPS ) = InfinitePEPS (zerovector (unitcell (A)))
162+
163+ function VI. scale (ψ:: InfinitePEPS , α:: Number )
164+ _scale = Base. Fix2 (scale, α)
165+ return InfinitePEPS (map (_scale, unitcell (ψ)))
166+ end
167+ function VI. scale! (ψ:: InfinitePEPS , α:: Number )
168+ _scale! = Base. Fix2 (scale!, α)
169+ return foreach (_scale!, unitcell (ψ))
170+ end
171+ VI. scale!! (ψ:: InfinitePEPS , α:: Number ) = scale! (ψ, α)
172+
173+ function VI. add (ψ₁:: InfinitePEPS , ψ₂:: InfinitePEPS , α:: Number , β:: Number )
174+ _add (x, y) = add (x, y, α, β)
175+ return InfinitePEPS (map (_add, unitcell (ψ₁), unitcell (ψ₂)))
176+ end
177+ function VI. add! (ψ₁:: InfinitePEPS , ψ₂:: InfinitePEPS , α:: Number , β:: Number )
178+ _add! (x, y) = add! (x, y, α, β)
179+ foreach (_add!, unitcell (ψ₁), unitcell (ψ₂))
180+ return ψ₁
162181end
163- VectorInterface . zerovector (A :: InfinitePEPS ) = InfinitePEPS ( zerovector ( unitcell (A)) )
182+ VI . add!! (ψ₁ :: InfinitePEPS , ψ₂ :: InfinitePEPS , α :: Number , β :: Number ) = add! (ψ₁, ψ₂, α, β )
164183
165184# # Math
166185
0 commit comments