Documentation contents

atlas Library · Script File

structure_constants.at

structure constants for the Lie algebra
following Lusztig, via [Geck]:
"On the construction of semisimple Lie algebras and Chevalley groups" 2017
see structure_constants.pdf
Source
atlas-scripts/structure_constants.at (203 lines)
Definitions
21
Loads
Loaded by
tits_centralizer.at cyclotomic_Lie_algebra.at bracket.at

Definitions in source order

m_plus

L13m_plus(RootDatum rd,vec alpha, vec beta) = int
m_\pm defined as in [Geck]

also in this file at line 16

m_minus

L14m_minus(RootDatum rd,vec alpha, vec beta) = int

also in this file at line 17

m_plus

L16m_plus(RootDatum rd) = ((vec,vec)->int)

also in this file at line 13

m_minus

L17m_minus(RootDatum rd) = ((vec,vec)->int)

also in this file at line 14

f:simple roots -> \pm 1 satisfying f(alpha)f(beta)=-1 if
(distinct) roots alpha,beta are non-orthogonal
 there are exactly two such functions
L19

orientation_function

L24orientation_function(RootDatum rd) = (int ->int)
data type for structure constants for a Lusztig basis,
i.e. satisfying the conditions in [Geck,Section 4]
table: rows/columns <-> (all) roots
alpha,beta entry is N(alpha,beta)
where N(alpha,beta)=0 if alpha+beta is not a root
 (including the case beta=-alpha)
and [X_alpha,X_beta]=N(alpha,beta)X_{alpha+beta}
if alpha+beta is a root
L37

StructureConstantTable type

L47
set_type StructureConstantTable=
(RootDatum root_datum,
(int->int) orientation_function,  {mapping [0,...,n-1] to \pm 1}
mat table  
)

Fields: root_datum, orientation_function, table

epsilon

L58epsilon(StructureConstantTable T) = (vec->int)
Table has given orientation function, -> epsilon
epsilon is a map taking \pm simple root to \pm 1
epsilon(alpha)=orientation_function(simple_root_index(alpha)) if alpha is simple
and epsilon(alpha)=-epsilon(-alpha) for -alpha simple

lookup

L65lookup(StructureConstantTable T) = ((vec, vec)->int)
look up value of N(alpha,beta) in table
note that lookup is by vec alpha,beta, not int

also defined in basic.at, hodge_K_type_formula.at, hash.at

N

L70N(StructureConstantTable T) = ((vec,vec)->int)
synonym for lookup

also defined in tensor_product.at

update

L73update(StructureConstantTable T) = ((vec, vec,int)->StructureConstantTable)
update one entry of the table

initialize_structure_constant_table 2 overloads

L81initialize_structure_constant_table(RootDatum rd,(int->int) orientation_function) = StructureConstantTable
initialize table for rd, fill in all N(alpha,beta) with ht(alpha)=1,
using given orientation function
L101initialize_structure_constant_table(RootDatum rd) = StructureConstantTable
use the default orientation function

compute_structure_constant

L105compute_structure_constant(StructureConstantTable T,vec alpha,vec beta) = int
assuming all the necessary terms are already in the table, compute a new term

update_structure_constant_table

L139update_structure_constant_table(StructureConstantTable T,int height) = StructureConstantTable
assuming N(alpha,beta) is computed for all height(alpha)<m, all beta,
compute for all height(alpha)=m

fill_structure_constant_table

L147fill_structure_constant_table(StructureConstantTable T) = StructureConstantTable
starting with initialized table, fill completely

structure_constant_table

L150structure_constant_table(RootDatum rd) = StructureConstantTable

jacobi_formula

L154jacobi_formula(StructureConstantTable T) = ((vec,vec,vec)->(vec))
return [[X_alpha,X_beta],X_gamma] + [[X_beta,X_gamma],X_alpha] + [[X_gamma,[X_alpha,X_beta]]

also defined in cyclotomic_Lie_algebra.at, bracket.at

jacobi_structure_constants_identity 2 overloads

L183jacobi_structure_constants_identity(StructureConstantTable T) = bool
test all Jacobi identities for X,Y,Z root vectors
see jacobi@StructureConstantTable in brackets.at for a more complete test
L195jacobi_structure_constants_identity(RootDatum rd) = bool

sub_table 2 overloads

L198sub_table(StructureConstantTable T,[int] S) = mat
extract rows/columns given by S=[int]
L202sub_table(StructureConstantTable T,[vec] S) = mat
extract rows/columns given by S=[vec]

also defined in exceptional.at

Generated from atlas-scripts at commit 648506c (2026-10-13).