Documentation contents

atlas Library · Script File

simple_factors.at

<Weylgroup.at {for invariant_form}
Source
atlas-scripts/simple_factors.at (103 lines)
Definitions
17
Loads
Loaded by
finite_unipotents.at Weylgroup.at affine.at conjugate.at classical_W_classes_and_reps.at

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 diagram
L7

permute

L17permute(RootDatum rd,[int] sigma) = RootDatum
For 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

L26reorder_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

L29stratify(RootDatum rd) = RootDatum
iron out any unusual diagram order

diagram_components

L33diagram_components(RootDatum rd) = [[int]]
partition of |#simisimple_rank(rd)| into Dynkin diagram components

diagram_component

L38diagram_component(RootDatum rd, int i) = [int]
list of simple roots in same simple factor as simple root #i

simple_factor 2 overloads

L43simple_factor(RootDatum rd, int root_number) = RootDatum
RootDatum of simple factor containing simple root number |root_number|
L46simple_factor(RootDatum rd,vec alpha) = RootDatum

simple_factors

L50simple_factors(RootDatum rd) = [RootDatum]
complete list of simple factors, each stratified, as [RootDatum]

very_simple_factors

L54very_simple_factors(RootDatum rd) = [RootDatum]
best shot at finding factors whose root datum product equals |derived(rd)|

number_simple_factors

L58number_simple_factors(RootDatum rd) = int

simple_factors_info

L61simple_factors_info(RootDatum rd) = ([RootDatum],[[int]])
combine simple factor root data with lists of their simple root numbers

project_on_simple_factor 2 overloads

L74project_on_simple_factor(RootDatum rd, int i) = ratmat
in 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.
L79project_on_simple_factor(RootDatum rd, int i,ratvec wt) = ratvec

also in this file at line 91, line 96; also defined in subgroups.at

same_weight_projection_simple_factor

L84same_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

L91project_on_simple_factor(int i,RootDatum rd) = ratmat
the same for coweights: use |coroot_radical| and (so as to use multiplication
on the right for coweights as per convention), transpose everything
L96project_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

L99same_coweight_projection_simple_factor((RootDatum,int)(rd,):rdi) = (ratvec,ratvec->bool)

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