Skip to content

Commit 569392e

Browse files
committed
get rid of isC and friends
1 parent f8a311c commit 569392e

File tree

1 file changed

+9
-36
lines changed

1 file changed

+9
-36
lines changed

src/multifusion.jl

Lines changed: 9 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,6 @@ struct IsingBimod <: Sector
1818
end
1919
end
2020

21-
isC(x::IsingBimod) = (x.row == x.col == 1)
22-
isM(x::IsingBimod) = (x.row == 1 && x.col == 2)
23-
isMop(x::IsingBimod) = (x.row == 2 && x.col == 1)
24-
isD(x::IsingBimod) = (x.row == 2 && x.col == 2)
25-
26-
function ismodulecategory(a::IsingBimod)
27-
return (isM(a) || isMop(a))
28-
end
29-
3021
const all_isingbimod_objects = (IsingBimod(1, 1, 0), IsingBimod(1, 1, 1),
3122
IsingBimod(2, 1, 0),
3223
IsingBimod(1, 2, 0), IsingBimod(2, 2, 0),
@@ -57,7 +48,7 @@ function Base.iterate(iter::IsingBimodIterator, state=0)
5748
end
5849

5950
function Base.convert(::Type{IsingAnyon}, a::IsingBimod) # identify RepZ2 ⊕ RepZ2 ≅ Ising
60-
ismodulecategory(a) && return IsingAnyon(:σ)
51+
(a.row != a.col) && return IsingAnyon(:σ)
6152
return IsingAnyon(a.label == 0 ? :I : :ψ)
6253
end
6354

@@ -79,37 +70,19 @@ function Fsymbol(a::I, b::I, c::I, d::I, e::I, f::I) where {I<:IsingBimod}
7970
end
8071

8172
function Base.conj(a::IsingBimod) # ℳ ↔ ℳop when conjugating elements within these
82-
if isC(a) || isD(a) # self-conjugate within RepZ2
83-
return a
84-
elseif isM(a)
85-
return IsingBimod(2, 1, a.label)
86-
else
87-
return IsingBimod(1, 2, a.label)
88-
end
73+
return IsingBimod(a.col, a.row, a.label)
8974
end
9075

9176
function rightone(a::IsingBimod)
92-
if isC(a) || isD(a)
93-
return IsingBimod(a.row, a.col, 0)
94-
elseif isM(a) # ℳ as right-𝒟 module category
95-
return IsingBimod(2, 2, 0)
96-
else
97-
return IsingBimod(1, 1, 0)
98-
end
77+
return IsingBimod(a.col, a.col, 0)
9978
end
10079

10180
function leftone(a::IsingBimod)
102-
if isC(a) || isD(a)
103-
return IsingBimod(a.row, a.col, 0)
104-
elseif isM(a) # ℳ as left-𝒞 module category
105-
return IsingBimod(1, 1, 0)
106-
else
107-
return IsingBimod(2, 2, 0)
108-
end
81+
return IsingBimod(a.row, a.row, 0)
10982
end
11083

11184
function Base.one(a::IsingBimod)
112-
if isC(a) || isD(a)
85+
if a.row == a.col
11386
return IsingBimod(a.row, a.col, 0)
11487
else
11588
throw(DomainError("unit of module category ($(a.row), $(a.col)) doesn't exist"))
@@ -119,13 +92,13 @@ end
11992
Base.one(::Type{IsingBimod}) = throw(ArgumentError("one of Type IsingBimod doesn't exist"))
12093

12194
function Base.show(io::IO, ::MIME"text/plain", a::IsingBimod)
122-
if isC(a)
95+
if (a.row == a.col == 1)
12396
print(io, "𝒞[$(a.label)]")
124-
elseif isM(a)
97+
elseif (a.row == 1 && a.col == 2)
12598
print(io, "ℳ[$(a.label)]")
126-
elseif isMop(a)
99+
elseif (a.row == 2 && a.col == 1)
127100
print(io, "ℳᵒᵖ[$(a.label)]")
128-
elseif isD(a)
101+
elseif (a.row == a.col == 2)
129102
print(io, "𝒟[$(a.label)]")
130103
end
131104
end

0 commit comments

Comments
 (0)