Skip to content

Commit 0ac3dad

Browse files
committed
apply changes to all methods
1 parent fac9000 commit 0ac3dad

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

src/tensors/tensoroperations.jl

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ function TO.tensorcontract_type(
3535
) where {N₁,N₂}
3636
spacetype(A) == spacetype(B) ||
3737
throw(SpaceMismatch("incompatible space types: $(spacetype(A))$(spacetype(B))"))
38-
M = promote_storagetype(TC, eltype(A), eltype(B))
38+
39+
I = TK.sectortype(A)
40+
Tnew = TKS.sectorscalartype(I) <: Real ? TC : complex(TC)
41+
M = promote_storagetype(Tnew, eltype(A), eltype(B))
3942
return if issparse(A) && issparse(B)
4043
sparseblocktensormaptype(spacetype(A), N₁, N₂, M)
4144
else
@@ -54,7 +57,10 @@ function TO.tensorcontract_type(
5457
) where {N₁,N₂}
5558
spacetype(A) == spacetype(B) ||
5659
throw(SpaceMismatch("incompatible space types: $(spacetype(A))$(spacetype(B))"))
57-
M = promote_storagetype(TC, typeof(A), eltype(B))
60+
61+
I = TK.sectortype(A)
62+
Tnew = TKS.sectorscalartype(I) <: Real ? TC : complex(TC)
63+
M = promote_storagetype(Tnew, typeof(A), eltype(B))
5864
return if issparse(A) && issparse(B)
5965
sparseblocktensormaptype(spacetype(A), N₁, N₂, M)
6066
else

0 commit comments

Comments
 (0)