atlas Library · Script File
cells.at
Definitions in source order
cells_verbose
L8
cells_verbose = falseBelow, conforming to definition of |WCell| given in W_reps.at, the term "cell" will always refer to a structure that includes action matrices. This was not so for the built-in functions |W_cells|, not directly used here.L10
vertex_and_W_cell
L16
vertex_and_W_cell(Param p) = (int,WCell)after generating cells using |vertex_and_W_cells|, single out cell for |p|
W_cell_of
L23
W_cell_of(Param p) = WCelljust the cell that has the vertex for |p|
also in this file at line 34
W_cell
L27
W_cell([Param] block,[WCell] cells, Param p) = (int,WCell)with block and cells already computed, this can replace |vertex_and_W_cell|
W_cell_of
L34
W_cell_of(([Param],[WCell],Param) arg) = WCellalso in this file at line 23
cell representations L38
cell_character
L41
cell_character (CharacterTable ct,WCell cell) = [int]without permutation
also defined in W_reps.at, character_table_reps.at
cell_character_inefficient 2 overloads
L45
cell_character_inefficient (CharacterTable ct,WCell cell) = [int]character of representation of W on cell
L60
cell_character_inefficient(CharacterTable ct) = (WCell cell)[int]cell_characters_inefficient
L62
cell_characters_inefficient (CharacterTable ct,[WCell] cells) = [[int]]special_irreducible
L66
special_irreducible (CharacterTable ct, [int] multiplicities) = intspecial_character
L74
special_character(CharacterTable ct,[int] cell_character) = intalso defined in character_table_reps.at
special_character_inefficient 2 overloads
L79
special_character_inefficient (CharacterTable ct,WCell cell) = intNO need to incorporate the permutation relating ct.root_datum and cell.root_datum
L90
special_character_inefficient(CharacterTable ct) = (WCell->int)#
L95
#(WCell cell) = intshould also equal |#cell.graph|
parameters 3 overloads
L97
parameters([Param] block,WCell cell) = [Param]L100
parameters([Param] block,[WCell] cells) = [Param]L103
parameters([[Param],[WCell]] data) = [Param]also defined in stable.at, weak_packets.at
blocks
L108
blocks ([Param] params) = [[Param]]expand and partition set of params into blocks
also defined in basic.at, weak_packets.at
blocks_and_cells 2 overloads
L118
blocks_and_cells([Param] params) = [[Param],[WCell]]W_cells@Param is built-in, returns the number in cell which we ignore here
L124
blocks_and_cells (Param p) = [[Param],[WCell]]block_and_cells
L128
block_and_cells (Param p) = ([Param],[WCell])really should be this, since it only returns one block:
find
L133
find ([[Param],[WCell]] blocks_and_cells, Param p) = (int,int)locate a given parameter in structure returned from |blocks_and_cells|
also defined in basic.at, tits_centralizer.at, nilpotent_orbits.at, K_types.at, hodgeParamLaurentPol.at, extended.at, disconnected.at, nilpotent_posets.at, K_types_plus.at
cells_given_AV
L140
cells_given_AV ( SpringerTable st , ComplexNilpotent O , ([Param],[WCell]) (block,cells) ) = ([Param],[WCell])parameters_given_AV
L154
parameters_given_AV ( (SpringerTable,ComplexNilpotent,([Param],[WCell])) data) = [Param]same arguments as |cells_given_AV|
push
L159
push ([Param] params, ratvec gamma) = [Param]cell_members_given_descent
L162
cell_members_given_descent (RootDatum rd, WCell (,graph,), [int] S) = [int]potential_cell
L169
potential_cell(RootDatum rd_int,WCell cell, ratvec gamma, int springer_dim) = boolgiven cell, gamma, dim_special, reject the cell unless #cell>=dim_special and some parameter p in cell has tau_complement(p)=singular roots on gamma
parameters_given_AV_infinitesimal_character 2 overloads
L186
parameters_given_AV_infinitesimal_character ( SpringerTable st , ComplexNilpotent O , [ [Param],[WCell] ] blocks_and_cells , ratvec gamma ) = [int,int,Param]used in computing weak unipotent packets Given blocks_and_cells (at regular infinitesimal character), compute all parameters whose special cell representation equals Springer(O), and push the results to infinitesimal character |gamma|, which is typically |O_check.H/2| and singular. The SpringerTable |st| and ComplexNilpotent |O| are for the integral root system; |O| is only used for its Springer representation
[(block number, cell number, parameter)]
L231
parameters_given_AV_infinitesimal_character(SpringerTable st, ComplexNilpotent O,[([Param],[WCell])] blocks_and_cells,ratvec gamma,mat permutation) = [(int,int,Param)]include permutation
[(block number, cell number, parameter)]
also in this file at line 269
/for blockL265
parameters_given_AV_infinitesimal_character
L269
parameters_given_AV_infinitesimal_character( SpringerTable st, ComplexNilpotent O, ratvec gamma, [(([Param],[WCell]),[([int],[int])])] cell_data ) = [(int,int,Param)]include precomputed cell characters (but NOT permutation) mainly used for even orbits in E8
[Param]: list of parameters in block [([int] indices of parameters in cell,[int] character of cell)]
[(block number, cell number, parameter)]
Generated from atlas-scripts at commit 648506c (2026-10-13).
Commented-out code, lines 298–382 (83 lines)
MOVED ALL THE REST TO associated_variety_annihilator.at: {assuming integral infinitesimal character} set associated_variety_int(SpringerTable st,WCell cell)=ComplexNilpotent:st.springer_inverse_special(st.ct.special_character(cell)) set associated_variety_int(SpringerTable st)=(WCell->ComplexNilpotent):(WCell cell):associated_variety_int(st,cell) set associated_variety_int(SpringerTable st,Param p)=ComplexNilpotent:associated_variety_int(st,W_cell_of(p)) set associated_variety_int(SpringerTable st)=(Param->ComplexNilpotent):(Param p):associated_variety_int(st,W_cell_of(p)) set associated_variety(SpringerTable st_G,WCell cell)=ComplexNilpotent: let G=st_G.root_datum then ct_G=st_G.ct then L=cell.root_datum then ct_L=L.character_table then index_pi_L=ct_L.special_character(cell) then char_L=ct_L.characters[index_pi_L] then d_L=ct_L.degrees[index_pi_L] then chars_G= ##for i:st_G.ct.n_irreps do { let ()=prints("i: ",i, " ", ct_G.degrees[i], " ", d_L) in } if ct_G.degrees[i]=d_L and !=ct_L.inner_product(char_L,restrict_character(G,L,ct_G,ct_L,ct_G.characters[i])) then [i] else [] fi od then index_G=chars_G[0] in st_G.springer_inverse(index_G) set associated_variety_test(SpringerTable st_G,WCell cell)= let G=st_G.root_datum then ct_G=st_G.ct then L=cell.root_datum then ct_L=L.character_table then index_pi_L=ct_L.special_character(cell) then char_L=ct_L.characters[index_pi_L] then d_L=ct_L.degrees[index_pi_L] then ()=prints("OK") in (G,L,ct_G,ct_L,index_pi_L,char_L,d_L){ chars_G= ##for i:st_G.ct.n_irreps do if ct.degrees[i]=d_L and !=ct_L.inner_product(char_L,restrict_character(G,L,ct_G,ct_L,ct.characters[i])) then [i] else [] fi od then ()=prints("OK2") then {()=prints("chars_G=",chars_G) then} index_G=chars_G[0] in st_G.springer_inverse(index_G) } set GK_dimension(SpringerTable st,Param p)=int:st.associated_variety_int(p).dim_nilpotent\2 set GK_dimension(SpringerTable st)=(Param->int):(Param p):st.associated_variety_int(p).dim_nilpotent\2 set show([WCell] cells)=void: for (cell,,)@i in cells do prints(i, " ", cell) od; for (cell,(,graph),)@i in cells do prints("// cell #",i, ":"); tabulate( for (a,b)@i in graph do let arrows=b in [i.to_string + "[" + cell[i].to_string + "]" + ":", a.to_string, "-->", let m=if #arrows=0 then 1 else max(for (,y) in arrows do y od) fi in if m=1 then (for (x,y) in arrows do x od).to_string else (for (x,y) in arrows do (x,y) od).to_string fi ] od) od { // cell #14: 0[45]: {1,2} --> 3 1[47]: {1,2} --> 3 2[49]: {2,3} --> 3 3[51]: {1,3} --> 0,1,2 Value: 16 atlas> cells[14] Value: ([45,47,49,51],[([0,1],[(3,1)]),([0,1],[(3,1)]),([1,2],[(3,1)]),([0,2],[(0,1),(1,1),(2,1)])]) }