@@ -92,6 +92,22 @@ Return the unit element within this type of sector.
92
92
"""
93
93
Base. one (a:: Sector ) = one (typeof (a))
94
94
95
+ """
96
+ leftone(a::Sector) -> Sector
97
+
98
+ Return the left unit element within this type of sector.
99
+ See also [`rightone`](@ref) and [`Base.one`](@ref).
100
+ """
101
+ leftone (a:: Sector ) = one (a)
102
+
103
+ """
104
+ rightone(a::Sector) -> Sector
105
+
106
+ Return the right unit element within this type of sector.
107
+ See also [`leftone`](@ref) and [`Base.one`](@ref).
108
+ """
109
+ rightone (a:: Sector ) = one (a)
110
+
95
111
"""
96
112
dual(a::Sector) -> Sector
97
113
@@ -235,9 +251,9 @@ function dim(a::Sector)
235
251
if FusionStyle (a) isa UniqueFusion
236
252
1
237
253
elseif FusionStyle (a) isa SimpleFusion
238
- abs (1 / Fsymbol (a, conj (a), a, a, one (a), one (a)))
254
+ abs (1 / Fsymbol (a, conj (a), a, a, leftone (a), rightone (a)))
239
255
else
240
- abs (1 / Fsymbol (a, conj (a), a, a, one (a), one (a))[1 ])
256
+ abs (1 / Fsymbol (a, conj (a), a, a, leftone (a), rightone (a))[1 ])
241
257
end
242
258
end
243
259
sqrtdim (a:: Sector ) = (FusionStyle (a) isa UniqueFusion) ? 1 : sqrt (dim (a))
@@ -250,20 +266,20 @@ Return the Frobenius-Schur indicator of a sector `a`.
250
266
"""
251
267
function frobeniusschur (a:: Sector )
252
268
if FusionStyle (a) isa UniqueFusion || FusionStyle (a) isa SimpleFusion
253
- sign (Fsymbol (a, conj (a), a, a, one (a), one (a)))
269
+ sign (Fsymbol (a, conj (a), a, a, leftone (a), rightone (a)))
254
270
else
255
- sign (Fsymbol (a, conj (a), a, a, one (a), one (a))[1 ])
271
+ sign (Fsymbol (a, conj (a), a, a, leftone (a), rightone (a))[1 ])
256
272
end
257
273
end
258
274
259
275
# Not necessary
260
276
function Asymbol (a:: I , b:: I , c:: I ) where {I<: Sector }
261
277
if FusionStyle (I) isa UniqueFusion || FusionStyle (I) isa SimpleFusion
262
278
(sqrtdim (a) * sqrtdim (b) * invsqrtdim (c)) *
263
- conj (frobeniusschur (a) * Fsymbol (dual (a), a, b, b, one (a), c))
279
+ conj (frobeniusschur (a) * Fsymbol (dual (a), a, b, b, leftone (a), c))
264
280
else
265
281
reshape ((sqrtdim (a) * sqrtdim (b) * invsqrtdim (c)) *
266
- conj (frobeniusschur (a) * Fsymbol (dual (a), a, b, b, one (a), c)),
282
+ conj (frobeniusschur (a) * Fsymbol (dual (a), a, b, b, leftone (a), c)),
267
283
(Nsymbol (a, b, c), Nsymbol (dual (a), c, b)))
268
284
end
269
285
end
@@ -284,10 +300,11 @@ number. Otherwise it is a square matrix with row and column size
284
300
"""
285
301
function Bsymbol (a:: I , b:: I , c:: I ) where {I<: Sector }
286
302
if FusionStyle (I) isa UniqueFusion || FusionStyle (I) isa SimpleFusion
287
- (sqrtdim (a) * sqrtdim (b) * invsqrtdim (c)) * Fsymbol (a, b, dual (b), a, c, one (a))
303
+ (sqrtdim (a) * sqrtdim (b) * invsqrtdim (c)) *
304
+ Fsymbol (a, b, dual (b), a, c, rightone (a))
288
305
else
289
306
reshape ((sqrtdim (a) * sqrtdim (b) * invsqrtdim (c)) *
290
- Fsymbol (a, b, dual (b), a, c, one (a)),
307
+ Fsymbol (a, b, dual (b), a, c, rightone (a)),
291
308
(Nsymbol (a, b, c), Nsymbol (c, dual (b), a)))
292
309
end
293
310
end
0 commit comments