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
Definitions in source order
m_plus
L13
m_plus(RootDatum rd,vec alpha, vec beta) = intm_\pm defined as in [Geck]
also in this file at line 16
m_minus
L14
m_minus(RootDatum rd,vec alpha, vec beta) = intalso in this file at line 17
m_plus
L16
m_plus(RootDatum rd) = ((vec,vec)->int)also in this file at line 13
m_minus
L17
m_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 functionsL19
orientation_function
L24
orientation_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 rootL37StructureConstantTable 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
L58
epsilon(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
L65
lookup(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
L70
N(StructureConstantTable T) = ((vec,vec)->int)synonym for lookup
also defined in tensor_product.at
update
L73
update(StructureConstantTable T) = ((vec, vec,int)->StructureConstantTable)update one entry of the table
initialize_structure_constant_table 2 overloads
L81
initialize_structure_constant_table(RootDatum rd,(int->int) orientation_function) = StructureConstantTableinitialize table for rd, fill in all N(alpha,beta) with ht(alpha)=1, using given orientation function
L101
initialize_structure_constant_table(RootDatum rd) = StructureConstantTableuse the default orientation function
compute_structure_constant
L105
compute_structure_constant(StructureConstantTable T,vec alpha,vec beta) = intassuming all the necessary terms are already in the table, compute a new term
update_structure_constant_table
L139
update_structure_constant_table(StructureConstantTable T,int height) = StructureConstantTableassuming N(alpha,beta) is computed for all height(alpha)<m, all beta, compute for all height(alpha)=m
fill_structure_constant_table
L147
fill_structure_constant_table(StructureConstantTable T) = StructureConstantTablestarting with initialized table, fill completely
structure_constant_table
L150
structure_constant_table(RootDatum rd) = StructureConstantTablejacobi_formula
L154
jacobi_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
L183
jacobi_structure_constants_identity(StructureConstantTable T) = booltest all Jacobi identities for X,Y,Z root vectors see jacobi@StructureConstantTable in brackets.at for a more complete test
L195
jacobi_structure_constants_identity(RootDatum rd) = boolsub_table 2 overloads
L198
sub_table(StructureConstantTable T,[int] S) = matextract rows/columns given by S=[int]
L202
sub_table(StructureConstantTable T,[vec] S) = matextract rows/columns given by S=[vec]
also defined in exceptional.at
Generated from atlas-scripts at commit 648506c (2026-10-13).