diff --git a/src/tensors/braidingtensor.jl b/src/tensors/braidingtensor.jl index 4eb7d1e71..a4a184e5f 100644 --- a/src/tensors/braidingtensor.jl +++ b/src/tensors/braidingtensor.jl @@ -31,12 +31,15 @@ end function BraidingTensor{T}(V1::S, V2::S, adjoint::Bool=false) where {T,S<:IndexSpace} return BraidingTensor{T,S}(V1, V2, adjoint) end +function BraidingTensor{T}(V1::IndexSpace, V2::IndexSpace, adjoint::Bool=false) where {T} + return BraidingTensor{T}(promote(V1, V2)..., adjoint) +end +function BraidingTensor(V1::IndexSpace, V2::IndexSpace, adjoint::Bool=false) + return BraidingTensor(promote(V1, V2)..., adjoint) +end function BraidingTensor(V1::S, V2::S, adjoint::Bool=false) where {S<:IndexSpace} - if BraidingStyle(sectortype(S)) isa SymmetricBraiding - return BraidingTensor{Float64,S}(V1, V2, adjoint) - else - return BraidingTensor{ComplexF64,S}(V1, V2, adjoint) - end + T = BraidingStyle(sectortype(S)) isa SymmetricBraiding ? Float64 : ComplexF64 + return BraidingTensor{T,S}(V1, V2, adjoint) end function BraidingTensor(V::HomSpace, adjoint::Bool=false) domain(V) == reverse(codomain(V)) ||