Skip to content

Commit 622f4cb

Browse files
committed
Add JordanMPOTensor constructor that promotes types
1 parent 0df7c4d commit 622f4cb

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

src/operators/jordanmpotensor.jl

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,8 @@ end
6767

6868
function JordanMPOTensor(
6969
V::TensorMapSumSpace{S, 2, 2},
70-
A::SparseBlockTensorMap{TA, E, S, 2, 2},
71-
B::SparseBlockTensorMap{TB, E, S, 2, 1},
72-
C::SparseBlockTensorMap{TC, E, S, 1, 2},
73-
D::SparseBlockTensorMap{TD, E, S, 1, 1}
70+
A::SparseBlockTensorMap{TA, E, S, 2, 2}, B::SparseBlockTensorMap{TB, E, S, 2, 1},
71+
C::SparseBlockTensorMap{TC, E, S, 1, 2}, D::SparseBlockTensorMap{TD, E, S, 1, 1}
7472
) where {E, S, TA, TB, TC, TD}
7573
allVs = eachspace(V)
7674
VA = space(allVs[2:(end - 1), 1, 1, 2:(end - 1)])
@@ -87,6 +85,18 @@ function JordanMPOTensor(
8785

8886
return JordanMPOTensor{E, S, TA, TB, TC, TD}(V, A, B, C, D)
8987
end
88+
function JordanMPOTensor(
89+
V::TensorMapSumSpace{S, 2, 2},
90+
A::AbstractTensorMap{E, S, 2, 2}, B::AbstractTensorMap{E, S, 2, 1},
91+
C::AbstractTensorMap{E, S, 1, 2}, D::AbstractTensorMap{E, S, 1, 1}
92+
) where {E, S}
93+
return JordanMPOTensor(V,
94+
A isa SparseBlockTensorMap ? A : SparseBlockTensorMap(A),
95+
B isa SparseBlockTensorMap ? B : SparseBlockTensorMap(B),
96+
C isa SparseBlockTensorMap ? C : SparseBlockTensorMap(C),
97+
D isa SparseBlockTensorMap ? D : SparseBlockTensorMap(D)
98+
)
99+
end
90100

91101
function JordanMPOTensor(W::SparseBlockTensorMap{TT, E, S, 2, 2}) where {TT, E, S}
92102
@assert W[1, 1, 1, 1] isa BraidingTensor && W[end, 1, 1, end] isa BraidingTensor

0 commit comments

Comments
 (0)