11# Groups
22# ------------------------------------------------------------------------------#
33"""
4- abstract type Group end
4+ abstract type Group
55
66Abstract supertype for representing different types of groups. Groups can be used
77to define Sector subtypes, either via their irreducible representations, or
@@ -11,7 +11,7 @@ are not meant to be instantiated and are defined as abstract types.
1111abstract type Group end
1212
1313"""
14- abstract type AbelianGroup <: Group end
14+ abstract type AbelianGroup <: Group
1515
1616Abstract supertype for representing different types of Abelian groups.
1717Abelian groups have both irreps and group elements that have several
@@ -20,7 +20,7 @@ simplified properties, that can be defined in general.
2020abstract type AbelianGroup <: Group end
2121
2222"""
23- abstract type Cyclic{N} <: AbelianGroup end
23+ abstract type Cyclic{N} <: AbelianGroup
2424
2525Type to represent the cyclic group of order `N`, i.e. the multiplicative
2626group of roots of unity of order `N`, which is a discrete abelian group.
@@ -30,7 +30,7 @@ and we define the latter as a type alias `const ℤ{N} = Cyclic{N}`.
3030abstract type Cyclic{N} <: AbelianGroup end
3131
3232"""
33- abstract type Dihedral{N} <: Group end
33+ abstract type Dihedral{N} <: Group
3434
3535Type to represent the dihedral group of order `2N`, which is the symmetry
3636group of a regular polygon with `N` sides, and is a discrete non-Abelian
@@ -40,23 +40,23 @@ abstract type Dihedral{N} <: Group end
4040
4141
4242"""
43- abstract type U₁ <: AbelianGroup end
43+ abstract type U₁ <: AbelianGroup
4444
4545Type to represent the group ``U(1)`` of complex numbers of unit modulus,
4646which is a compact Abelian Lie group.
4747"""
4848abstract type U₁ <: AbelianGroup end
4949
5050"""
51- abstract type SU{N} <: Group end
51+ abstract type SU{N} <: Group
5252
5353Type to represent the special unitary group ``SU(N)``, which is a
5454compact non-Abelian Lie group.
5555"""
5656abstract type SU{N} <: Group end
5757
5858"""
59- abstract type CU₁ <: Group end
59+ abstract type CU₁ <: Group
6060
6161Type to represent the group of U₁ in combination with charge conjugation,
6262i.e. the group generated by U₁ and an additional element that acts as
@@ -77,17 +77,17 @@ const SU₂ = SU{2}
7777type_repr (:: Type{ℤ₂} ) = " ℤ₂"
7878type_repr (:: Type{ℤ₃} ) = " ℤ₃"
7979type_repr (:: Type{ℤ₄} ) = " ℤ₄"
80+ type_repr (:: Type{ℤ{N}} ) where {N} = " ℤ{$N }"
8081type_repr (:: Type{D₃} ) = " D₃"
8182type_repr (:: Type{D₄} ) = " D₄"
8283type_repr (:: Type{SU₂} ) = " SU₂"
8384type_repr (:: Type{U₁} ) = " U₁"
8485type_repr (:: Type{CU₁} ) = " CU₁"
85- type_repr (T:: Type ) = repr (T)
8686
8787const GroupTuple = Tuple{Vararg{Group}}
8888
8989"""
90- abstract type ProductGroup{T <: Tuple{Vararg{Group}}} <: Group end
90+ abstract type ProductGroup{T <: Tuple{Vararg{Group}}} <: Group
9191
9292Type to represent the direct product of a tuple of groups. This is typically
9393constructed via the [`×`](@ref) operator.
0 commit comments