Script File
four.at
Definitions in source order
permute_character
L3
permute_character(mat M,CharacterTable ct,[int] char) = [int]four_inner_products
L5
four_inner_products(RealForm G,CharacterTable ct_G,[int] char_G)five_inner_products 2 overloads
L13
five_inner_products(RealForm G,CharacterTable ct_G,[int] char_G)L22
five_inner_products(RealForm G,RealForm G_dual,CharacterTable ct_G,[int] char_G)also in this file at line 42
five_inner_products_r
L32
five_inner_products_r(RealForm G,RealForm G_dual,CharacterTable ct_G,[int] char_G)also in this file at line 45
five_inner_products
L42
five_inner_products(RealForm G,RealForm G_dual,CharacterTable ct_G,[[int]] chars)five_inner_products_r
L45
five_inner_products_r(RealForm G,RealForm G_dual,CharacterTable ct_G,[[int]] chars)also in this file at line 32
special_characters
L48
special_characters(SpringerTable st) = [[int]]show_big_table
L50
show_big_table(RealForm G,RealForm G_dual,CharacterTable ct_G)show_big_table_r
L62
show_big_table_r(RealForm G,RealForm G_dual,CharacterTable ct_G)also in this file at line 95
show_BXYI_tables
L74
show_BXYI_tables (RealForm G, CharacterTable ct_G) = voidalso in this file at line 93
show_X
L84
show_X (RealForm G) = voidshow_BXYI_tables
L93
show_BXYI_tables (RealForm G)also in this file at line 74
show_big_table_r
L95
show_big_table_r(RealForm G,RealForm G_dual)also in this file at line 62
test_inv_conj
L99
test_inv_conj(RealForm G) = boolTest whether the Weyl group representation on the twisted involutions is invariant under tensoring with sign
make_vector 2 overloads
L103
make_vector(Param p, [Param] list) = vecL106
make_vector(ParamPol P, [Param] list) = vecblock_action_matrix_std
L109
block_action_matrix_std ([Param] bl, int s) = matblock_action_matrix_irr
L114
block_action_matrix_irr ([Param] bl, int s) = matGenerated from atlas-scripts at commit 7e1b958 (2026-09-17).
Commented-out code, lines 118–260 (141 lines)
set show_four_inner_products_special(RealForm G,SpringerTable st_G,SpringerTable st_G_v)= let tip=four_inner_products(G,st_G.ct,st_G.special_characters) then {orbits indexed by special orbits in G} other=four_inner_products(G,st_G.ct,lusztig_cells_characters_special(G,st_G,st_G_v)) {for each orbit mult((sum over Lusztig left cell),BXYI)} then lusztig_cells=lusztig_cells(G,st_G,st_G_v) then (indices,orbits)=st_G.special_orbits_indexed in prints(new_line,"Table of inner products for G=", G,new_line,"#: number of special orbit O_v of G^v in list of all orbits",new_line, "diag: diagram of orbit O_v",new_line, "dim: dimension of special representation",new_line, "deg: degree of special representation",new_line, "bxyi: multiplicity of special in coherent continuation representations B,X,Y,I",new_line, "BXYI: inner product of Lusztig left cell character with coherent continuation representations B,X,Y,I"); tabulate( ["#O^v","diag","dim","deg","gdeg","sigma","sigma*sgn","b","x","y","i", "B", "X","Y", "I"]# for i:#indices do let (a,b,bprime,c)=tip[i] then (d,e,eprime,f)=other[i] then j=indices[i] in [j.to_string, st_G.dual_map(st_G.special_orbits[i]).diagram.to_string, {st_G_v.orbits[j].diagram.to_string,}{wrong order} st_G.ct.dimension(lusztig_cells[i][0]).to_string, st_G.ct.degree(lusztig_cells[i][0]).to_string, if #st_G.degrees>0 then st_G.degrees[i].to_string else "" fi, lusztig_cells[i].to_string, (for a in lusztig_cells[i] do st_G.ct.tensor_sign_index(a) od).to_string, a.to_string,b.to_string,bprime.to_string,c.to_string, d.to_string,e.to_string,eprime.to_string,f.to_string] od); prints(new_line,"Springer table of G_^v:");show_reps(st_G_v); prints(new_line,"Springer table of G:");show_reps(st_G); prints(new_line,"Orbits for G:");show_long(st_G); prints(new_line,"lusztig cells for G:"); show_lusztig_cells(G,st_G,st_G_v); prints(new_line,"full decomposition of BXYI: ");show_big_table(G,st_G.ct) set show_four_inner_products_special(RealForm G,RealForm G_dual,SpringerTable st_G,SpringerTable st_G_v)= let tip=four_inner_products(G,G_dual,st_G.ct,st_G.special_characters) then {orbits indexed by special orbits in G} other=four_inner_products(G,G_dual,st_G.ct,lusztig_cells_characters_special(G,st_G,st_G_v)) {for each orbit mult((sum over Lusztig left cell),BXYI)} then ()=prints("tip: ", tip, new_line, "other: ", other) then lusztig_cells=lusztig_cells(G,st_G,st_G_v) then (indices,orbits)=st_G.special_orbits_indexed in prints(new_line,"Table of inner products for G=", G,new_line,"#: number of special orbit O_v of G^v in list of all orbits",new_line, "diag: diagram of orbit O_v",new_line, "dim: dimension of special representation",new_line, "deg: degree of special representation",new_line, "bxyi: multiplicity of special in coherent continuation representations B,X,Y,I",new_line, "BXYI: inner product of Lusztig left cell character with coherent continuation representations B,X,Y,I"); tabulate( ["#O^v","diag","dim","deg","gdeg","sigma","sigma*sgn","b","x","y","i", "B", "X","Y", "I"]# for i:#indices do let (a,b,bprime,c)=tip[i] then (d,e,eprime,f)=other[i] then j=indices[i] in [j.to_string, st_G.dual_map(st_G.special_orbits[i]).diagram.to_string, {st_G_v.orbits[j].diagram.to_string,}{wrong order} st_G.ct.dimension(lusztig_cells[i][0]).to_string, st_G.ct.degree(lusztig_cells[i][0]).to_string, if #st_G.degrees>0 then st_G.degrees[i].to_string else "" fi, lusztig_cells[i].to_string, (for a in lusztig_cells[i] do st_G.ct.tensor_sign_index(a) od).to_string, a.to_string,b.to_string,bprime.to_string,c.to_string, d.to_string,e.to_string,eprime.to_string,f.to_string] od); prints(new_line,"Springer table of G_^v:");show_reps(st_G_v); prints(new_line,"Springer table of G:");show_reps(st_G); prints(new_line,"Orbits for G:");show_long(st_G); prints(new_line,"lusztig cells for G:"); show_lusztig_cells(G,st_G,st_G_v); prints(new_line,"full decomposition of BXYI: ");show_big_table(G,st_G.ct) set show_four_inner_products_special(RealForm G)=void: let st_0=G.springer_table then st=update_degrees(G,st_0) in show_four_inner_products_special(G,st, G.dual.springer_table) set show_four_inner_products_special(RealForm G,RealForm G_dual)=void: let st_0=G.springer_table then st=update_generic_degrees(st_0,G) in show_four_inner_products_special(G,G_dual,st, G.dual.springer_table) { set g(RealForm G,CharacterTable ct_G,[Param] parameters)=g(G,ct_G,parameters,G.dual_special_orbits) set g(RealForm G)= g(G,G.character_table,all_parameters_gamma(G,rho(G)),G.dual_special_orbits) } {note st_G here not ct_G} set show_lusztig_sommers_cells(RootDatum G,SpringerTable st_G,SpringerTable st_G_v,[ComplexNilpotent] dual_orbits)=void: let ct_G=st_G.ct then ()=prints("O^v: orbit for dual",new_line,"M: (small) pseudo_levi", new_line, "H_M: H for orbit in M",new_line, "v: exp(2\pi iv) in center of M",new_line, "L: centralizer of exp(2\pi iv)",new_line, "j_L: index of W-representation sigma_L given by Lusztig algorithm",new_line, "dim/deg: dimension/degree of this character",new_line, "O_L: sigma_L=Springer(O_L) (blank if sigma_L is not a Springer representation)", "j_S: index of W-representation given by Sommers algorithm",new_line, "dim/deg: dimension/degree of this character",new_line, "O_S: sigma_S=Springer(O_S) (blank if sigma_S is not a Springer representation", "=: Lusztig and Sommers give same result") then ()=prints("G=", G.nice_format, new_line, "#orbits: ", #dual_orbits) in tabulate( ["O^v","dim","i","M","H_M","v","L_v","O_L_v","j_L","dim","deg","O_L","j_S","dim","deg","O_S","="]# ##for O_v@counter in dual_orbits do let ()=prints("orbit ",counter,": ", O_v.root_datum.nice_format, " H=", O_v.H, " diagram=", O_v.diagram, " normalized diagram=", O_v.diagram_normalized) in let data= for (M_v,H_M_v,y) in component_representatives_plus(O_v) do let (j_L,j_S,O_L_v)=sigma_L_S(G,ct_G,st_G_v,O_v,M_v,H_M_v,y) in (M_v,H_M_v,O_L_v,y,j_L,j_S) od in for i:#data do let (M_v,H_M_v,O_L_v,y,j_L,j_S)=data[i] then sigma_L=ct_G.characters[j_L] then sigma_S=ct_G.characters[j_S] in [O_v.diagram.to_string+st_G_v.special_star(O_v), O_v.dim_nilpotent.to_string, i.to_string, M_v.nice_format, H_M_v.compact_ratvec, y.compact_ratvec, O_L_v.root_datum.nice_format, O_L_v.diagram.to_string, j_L.to_string, ct_G.dimension(j_L).to_string, ct_G.degrees[j_L].to_string, let (valid,orbit)=st_G.springer_inverse(j_L) in if valid then orbit.diagram.to_string+st_G.special_star(orbit) else "*" fi, j_S.to_string, ct_G.dimension(j_S).to_string, ct_G.degrees[j_S].to_string, let (valid,orbit)=st_G.springer_inverse(j_S) in if valid then orbit.diagram.to_string+st_G.special_star(orbit) else "*" fi, if j_L=j_S then "=" else "" fi ] od {/for i:#data} od {for O_v}) set show_lusztig_sommers_cells( RootDatum G,SpringerTable st_G,SpringerTable st_G_v)=void: show_lusztig_sommers_cells(G,st_G,st_G_v,G.dual_orbits) set show_lusztig_sommers_cell(RootDatum G,SpringerTable st_G,SpringerTable st_G_v,ComplexNilpotent dual_orbit)=void: show_lusztig_sommers_cells(G,st_G,st_G_v,[dual_orbit]) set show_lusztig_sommers_cell(RootDatum G, SpringerTable st_G,ComplexNilpotent O_v)=void:show_lusztig_sommers_cell(G,st_G,G.dual.springer_table,O_v) {set show_lusztig_sommers_cell(RootDatum G, ComplexNilpotent O_v)=void:show_lusztig_sommers_cell(G,G.character_table,G.dual.springer_table,O_v) set show_lusztig_sommers_cell(ComplexNilpotent O_v)=void:show_lusztig_sommers_cell(O_v.root_datum.dual,O_v) set show_lusztig_sommers_cells(RootDatum G,SpringerTable st_G)=void:show_lusztig_sommers_cells(G,st_G,G.dual.springer_table,G.dual_orbits) } set show_lusztig_sommers_cells(RootDatum G)=void:show_lusztig_sommers_cells(G,G.springer_table,G.dual.springer_table,G.dual_orbits)