# CategoryData

TensorKit.jl extension for low rank unitary fusion categories, using smallRankUnitaryFusionData

This package provides TensorKit's sectortypes for all objects of multiplicity-free (braided) fusion categories up to rank 6. The full list, along with the naming convention can be found in the Anyon Wiki.

The fusion categories adhere to a hierarchical structure of exported abstract types:

`PreModularFusionCategory{R,N,I,D₁,D₂} <: UnitaryFusionCategory{R,N,I,D₁} <: FusionRing{R,N,I}`

which indicate implementations of fusion rules (`Nsymbol`

), associators (`Fsymbol`

) and braidings (`Rsymbol`

). The naming is such that `R`

indicates the rank, `N`

the amount of non-self-dual objects, `I`

the fusion ring index, such that equal values imply the same objects and fusion rules. `D₁`

is the category index, enumerating different solutions for `Fsymbol`

of the pentagon equation, while `D₂`

enumerates different solutions of `Rsymbol`

the hexagon equation.

Objects in these categories are identified with integers ranging from `1`

to `R`

, where the unit is always `1`

. These can then be used as any other `Sector`

for constructing `TensorMap`

s.

```
using TensorKit, CategoryData
𝒞 = PreModularFusionCategory{2,0,2,0,0} # Fibonacci category
𝒪 = Object{𝒞}
@show collect(values(𝒪)) # 1 -> I, 2 -> τ
t = TensorMap(rand, ComplexF64, Vect[𝒪](1 => 2, 2 => 2) ← Vect[𝒪](1 =>2, 2 => 2))
```