Skip to content

Commit 59c8053

Browse files
committed
Fix unbound type parameter
1 parent 356568f commit 59c8053

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

src/fusiontrees/fusiontreeblocks.jl

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ struct FusionTreeBlock{I,N₁,N₂,F<:FusionTreePair{I,N₁,N₂}}
22
trees::Vector{F}
33
end
44

5-
function FusionTreeBlock(uncoupled::Tuple{NTuple{N₁,I},NTuple{N₂,I}},
6-
isdual::Tuple{NTuple{N₁,Bool},NTuple{N₂,Bool}}) where {I<:Sector,N₁,N₂}
5+
function FusionTreeBlock{I}(uncoupled::Tuple{NTuple{N₁,I},NTuple{N₂,I}},
6+
isdual::Tuple{NTuple{N₁,Bool},NTuple{N₂,Bool}}) where {I<:Sector,
7+
N₁,N₂}
78
F₁ = fusiontreetype(I, N₁)
89
F₂ = fusiontreetype(I, N₂)
910
trees = Vector{Tuple{F₁,F₂}}(undef, 0)
@@ -66,7 +67,7 @@ function bendright(src::FusionTreeBlock)
6667
(src.uncoupled[2]..., dual(src.uncoupled[1][end])))
6768
isdual_dst = (TupleTools.front(src.isdual[1]),
6869
(src.isdual[2]..., !(src.isdual[1][end])))
69-
dst = FusionTreeBlock(uncoupled_dst, isdual_dst)
70+
dst = FusionTreeBlock{sectortype(src)}(uncoupled_dst, isdual_dst)
7071

7172
U = transformation_matrix(bendright, dst, src)
7273
return dst, U
@@ -78,7 +79,7 @@ function bendleft(src::FusionTreeBlock)
7879
TupleTools.front(src.uncoupled[2]))
7980
isdual_dst = ((src.isdual[1]..., !(src.isdual[2][end])),
8081
TupleTools.front(src.isdual[2]))
81-
dst = FusionTreeBlock(uncoupled_dst, isdual_dst)
82+
dst = FusionTreeBlock{sectortype(src)}(uncoupled_dst, isdual_dst)
8283

8384
U = transformation_matrix(bendleft, dst, src)
8485
return dst, U
@@ -89,7 +90,7 @@ function foldright(src::FusionTreeBlock)
8990
(dual(first(src.uncoupled[1])), src.uncoupled[2]...))
9091
isdual_dst = (Base.tail(src.isdual[1]),
9192
(!first(src.isdual[1]), src.isdual[2]...))
92-
dst = FusionTreeBlock(uncoupled_dst, isdual_dst)
93+
dst = FusionTreeBlock{sectortype(src)}(uncoupled_dst, isdual_dst)
9394

9495
U = transformation_matrix(foldright, dst, src)
9596
return dst, U
@@ -101,7 +102,7 @@ function foldleft(src::FusionTreeBlock)
101102
Base.tail(src.uncoupled[2]))
102103
isdual_dst = ((!first(src.isdual[2]), src.isdual[1]...),
103104
Base.tail(src.isdual[2]))
104-
dst = FusionTreeBlock(uncoupled_dst, isdual_dst)
105+
dst = FusionTreeBlock{sectortype(src)}(uncoupled_dst, isdual_dst)
105106

106107
U = transformation_matrix(foldleft, dst, src)
107108
return dst, U
@@ -212,7 +213,7 @@ function artin_braid(src::FusionTreeBlock{I,N,0}, i; inv::Bool=false) where {I,N
212213
isdual = src.isdual[1]
213214
isdual′ = TupleTools.setindex(isdual, isdual[i], i + 1)
214215
isdual′ = TupleTools.setindex(isdual′, isdual[i + 1], i)
215-
dst = FusionTreeBlock((uncoupled′, ()), (isdual′, ()))
216+
dst = FusionTreeBlock{I}((uncoupled′, ()), (isdual′, ()))
216217

217218
# TODO: do we want to rewrite `artin_braid` to take double trees instead?
218219
U = transformation_matrix(dst, src) do (f₁, f₂)
@@ -228,7 +229,7 @@ function braid(src::FusionTreeBlock{I,N,0}, p::NTuple{N,Int},
228229
if FusionStyle(I) isa UniqueFusion && BraidingStyle(I) isa SymmetricBraiding
229230
uncoupled′ = TupleTools._permute(src.uncoupled[1], p)
230231
isdual′ = TupleTools._permute(src.isdual[1], p)
231-
dst = FusionTreeBlock(uncoupled′, isdual′)
232+
dst = FusionTreeBlock{I}(uncoupled′, isdual′)
232233
U = transformation_matrix(dst, src) do (f₁, f₂)
233234
return ((f₁′, f₂) => c for (f₁, c) in braid(f₁, p, levels))
234235
end
@@ -268,7 +269,7 @@ const _FSBraidKey{I,N₁,N₂} = Tuple{<:FusionTreeBlock{I},Index2Tuple{N₁,N
268269
uncoupled′ = TupleTools._permute(dst.uncoupled[1], p)
269270
isdual′ = TupleTools._permute(dst.isdual[1], p)
270271

271-
dst′ = FusionTreeBlock(uncoupled′, isdual′)
272+
dst′ = FusionTreeBlock{I}(uncoupled′, isdual′)
272273
U_tmp = transformation_matrix(dst′, dst) do (f₁, f₂)
273274
return ((f₁′, f₂) => c for (f₁, c) in braid(f₁, p, levels))
274275
end

src/tensors/treetransformers.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ function GenericTreeTransformer(transform, p, Vdst, Vsrc)
7272
for cod_uncoupled_src in sectors(codomain(Vsrc)),
7373
dom_uncoupled_src in sectors(domain(Vsrc))
7474

75-
fs_src = FusionTreeBlock((cod_uncoupled_src, dom_uncoupled_src), isdual_src)
75+
fs_src = FusionTreeBlock{I}((cod_uncoupled_src, dom_uncoupled_src), isdual_src)
7676
trees_src = fusiontrees(fs_src)
7777
isempty(trees_src) && continue
7878

0 commit comments

Comments
 (0)