Weight lattices

Weight lattices are represented by objects of type WeightLattice <: AdditiveGroup, and their elements by WeightLatticeElem <: AdditiveGroupElement.

They are introduced to have a formal parent object of all weights that correspond to a common given root system.

Note

See Cartan types for our conventions on Cartan types and ordering of simple roots.

Table of contents

Constructing weight lattices

weight_latticeMethod
weight_lattice(R::RootSystem) -> WeightLattice

Return the weight lattice of R, i.e. the lattice spanned by the fundamental weights.

This is the parent of all weights of R.

Examples

julia> weight_lattice(root_system([2 -1; -1 2]))
Weight lattice
  of root system of rank 2
    of type A2

julia> weight_lattice(root_system(matrix(ZZ, 2, 2, [2, -1, -1, 2]); detect_type=false))
Weight lattice
  of root system of rank 2
    of unknown type

julia> weight_lattice(root_system(matrix(ZZ, [2 -1 -2; -1 2 0; -1 0 2])))
Weight lattice
  of root system of rank 3
    of type C3 (with non-canonical ordering of simple roots)
source

Properties of weight lattices

rankMethod
rank(P::WeightLattice) -> Int

Return the rank of the weight lattice P.

source
is_finiteMethod
is_finite(P::WeightLattice) -> Bool

Check if the weight lattice P is finite, i.e. if it has rank 0.

source
zeroMethod
zero(P::WeightLattice) -> WeightLatticeElem

Return the neutral additive element in the weight lattice P.

source
genMethod
gen(P::WeightLattice, i::Int) -> WeightLatticeElem

Return the i-th generator of the weight lattice P, i.e. the i-th fundamental weight of the root system of P.

This is a more efficient version for gens(P)[i].

See also: fundamental_weight(::RootSystem, ::Int).

source
root_systemMethod
root_system(P::WeightLattice) -> RootSystem

Return the underlying root system of P.

source

Weight lattice elements

WeightLatticeElemMethod
WeightLatticeElem(P::WeightLattice, vec::Vector{<:IntegerUnion}) -> WeightLatticeElem

Construct a weight lattice element in P with the given coefficients w.r.t. the fundamental weights of corresponding root system.

source
WeightLatticeElemMethod
WeightLatticeElem(R::RootSystem, vec::Vector{<:IntegerUnion}) -> WeightLatticeElem

Construct a weight lattice element in the root system R with the given coefficients w.r.t. the fundamental weights of R.

source
WeightLatticeElemMethod
WeightLatticeElem(P::WeightLattice, vec::ZZMatrix) -> WeightLatticeElem

Construct a weight lattice element in P with the given coefficients w.r.t. the fundamental weights of corresponding root system.

vec must be a row vector of the same length as the rank of P.

source
WeightLatticeElemMethod
WeightLatticeElem(R::RootSystem, vec::ZZMatrix) -> WeightLatticeElem

Construct a weight lattice element in the root system R with the given coefficient vector w.r.t. the fundamental weights of R.

vec must be a row vector of the same length as the rank of R.

source
WeightLatticeElemMethod
WeightLatticeElem(r::RootSpaceElem) -> WeightLatticeElem

Construct a weight lattice element from the root space element r.

source

Basic arithmetic operations like zero, +, -, * (with integer scalars), and == are supported.

coeffMethod
coeff(w::WeightLatticeElem, i::Int) -> ZZRingElem

Return the coefficient of the i-th fundamental weight in w.

This can be also accessed via w[i].

source
coefficientsMethod
coefficients(w::WeightLatticeElem) -> ZZMatrix

Return the coefficients of the weight lattice element w w.r.t. the fundamental weights as a row vector.

Note

The return type may not be relied on; we only guarantee that it is a one-dimensional iterable with eltype ZZRingElem that can be indexed with integers.

source
iszeroMethod
iszero(w::WeightLatticeElem) -> Bool

Return whether w is zero.

source
is_dominantMethod
is_dominant(w::WeightLatticeElem) -> Bool

Check if w is a dominant weight, i.e. if all coefficients are non-negative.

source

Reflections

Conjugate dominant weight

conjugate_dominant_weight_with_elemMethod
conjugate_dominant_weight_with_elem(w::WeightLatticeElem) -> Tuple{WeightLatticeElem, WeylGroupElem}

Return the unique dominant weight dom conjugate to w and a Weyl group element x such that w * x == dom.

source
This documentation is not for the latest stable release, but for either the development version or an older release.
Click here to go to the documentation for the latest stable release.