atlas Library · Script File
simple_factors.at
<Weylgroup.at {for invariant_form}Definitions in source order
The simple factors of a root datum are the sub-rootdata each generated by the simple roots for a single connected component of the diagramL7
permute
L17
permute(RootDatum rd,[int] sigma) = RootDatumFor a permutation of the semisimple rank, given as list of integers, make new root datum whose new simple (co)root |i| is what used to be number |sigma[i]|. This is not a permutation of simple roots and coroots by |sigma| in the usual convention (and that of |permute@([int],vec)|, but rather by |inverse(sigma)|, which is why the argument |sigma| is written to the right of the root datum.
also defined in combinatorics.at, character_table_reps.at, isomorphism_W.at
reorder_diagram_Bourbaki
L26
reorder_diagram_Bourbaki(RootDatum rd) = (RootDatum,[int])Make a root datum with simple roots permuted, such that simple factors are grouped together and have their roots in Bourbaki order; this is achieved by a call to |permute| above, whose permutation argument is also returned.
stratify
L29
stratify(RootDatum rd) = RootDatumiron out any unusual diagram order
diagram_components
L33
diagram_components(RootDatum rd) = [[int]]partition of |#simisimple_rank(rd)| into Dynkin diagram components
diagram_component
L38
diagram_component(RootDatum rd, int i) = [int]list of simple roots in same simple factor as simple root #i
simple_factor 2 overloads
L43
simple_factor(RootDatum rd, int root_number) = RootDatumRootDatum of simple factor containing simple root number |root_number|
L46
simple_factor(RootDatum rd,vec alpha) = RootDatumsimple_factors
L50
simple_factors(RootDatum rd) = [RootDatum]complete list of simple factors, each stratified, as [RootDatum]
very_simple_factors
L54
very_simple_factors(RootDatum rd) = [RootDatum]best shot at finding factors whose root datum product equals |derived(rd)|
number_simple_factors
L58
number_simple_factors(RootDatum rd) = intsimple_factors_info
L61
simple_factors_info(RootDatum rd) = ([RootDatum],[[int]])combine simple factor root data with lists of their simple root numbers
project_on_simple_factor 2 overloads
L74
project_on_simple_factor(RootDatum rd, int i) = ratmatin case it is needed to project weights to the $\Q$-span of roots for one simple factor of the root datum the rational projection matrix is computed by |project_on_simple_factor|. On the root-coradical basis, this projection is a diagonal projection matrix with entries 1 at the simple root positions of the simple factor; therefore we do a base change from that basis to the standard basis (left multiply by |root_coradical(rd)|, right multiply by its inverse). Having the diagonal matrix in the middle can be implemented by selecting only the relevant columns on the left, and the corresponding rows on the right, before performing a single (integer*rational) matrix multiplication.
L79
project_on_simple_factor(RootDatum rd, int i,ratvec wt) = ratvecalso in this file at line 91, line 96; also defined in subgroups.at
same_weight_projection_simple_factor
L84
same_weight_projection_simple_factor((RootDatum,int)(rd,):rdi) = (ratvec,ratvec->bool)when only comparison of projections is needed, the above functions are not needed: all you need is vanishing of simple coroots for the simple factor
project_on_simple_factor 2 overloads
L91
project_on_simple_factor(int i,RootDatum rd) = ratmatthe same for coweights: use |coroot_radical| and (so as to use multiplication on the right for coweights as per convention), transpose everything
L96
project_on_simple_factor(ratvec cwt, int i,RootDatum rd)also in this file at line 74, line 79; also defined in subgroups.at
same_coweight_projection_simple_factor
L99
same_coweight_projection_simple_factor((RootDatum,int)(rd,):rdi) = (ratvec,ratvec->bool)Generated from atlas-scripts at commit 648506c (2026-10-13).