Script File
coherent_irreducible.at
Definitions in source order
length_sign
L7
length_sign (int k,int l) = intsign
L8
sign (Param p,Param q) = intalso defined in basic.at, tits_centralizer.at
W_graph_of
L12
W_graph_of (Param p)W_graph@Param is built-in, returns (int,WGraph) here is just the W_graph, analogous to block_of@Param
mu 2 overloads
L15
mu (WGraph graph,int i,int j) = intThe mu function, obtained from W_graph
L20
mu([Param] params,WGraph graph, Param p,Param q) = intmatrix of Hecke algebra operator $T_\alpha$, given by a W-graph, at $q=1$ on the basis of length-parity flipped irreducibles Note: the Hecke action on W-generators is given by the negated matrices of the coherent continuation action. Basis change from irreducibles to length-parity flipped irreducibles restores non-negative off-diagonal entries (same ones as coherent continuation matrices). but diagonal entries remain opposite. In practice one should avoid building the full |graph_Hecke_action| sparse matrix, prefer using |graph_Hecke_action_column|L23
graph_Hecke_action
L35
graph_Hecke_action (WGraph graph,int s) = sparse_matalso in this file at line 101
graph_Hecke_action_column
L60
graph_Hecke_action_column (WGraph graph,int col_number,int s) = sparse_columnsingle column of matrix of Hecke action of T_s, coming from W-graph, with q=1 Example: big block of SL(2,R) graph_Hecke_action_column(graph,0,0)=[(0,-1),(2,1)] graph_Hecke_action_column(graph,1,0)=[(1,-1),(2,1)] graph_Hecke_action_column(graph,2,0)=[(2,1)] graph_Hecke_action(graph,0)= (list of these columns) -> matrix -1 0 0 0 -1 0 1 1 1 see filtrations.pdf
same as previous, except in the basis of irreducibles. Since length difference is odd across all graph edges, just multiply off-diagonal part by -1L72
graph_Hecke_irr_action_column
L75
graph_Hecke_irr_action_column (WGraph graph,int col_number,int s) = sparse_columngraph_Hecke_irr_action
L89
graph_Hecke_irr_action ([Param] params,WGraph graph,int s) = sparse_matjust as graph_Hecke_action was mainly for testing, this function isn't essential but is a useful tool
graph_Hecke_action
L101
graph_Hecke_action ([sparse_mat] matrices,int col_number,int s) = sparse_columnalso in this file at line 35
coherent_irr 7 overloads
L108
coherent_irr([Param] block,WGraph graph,Param p,int s) = ParamPolcoherent continuation of irreducibles is defined using the W-graph, keeping in mind the W-graph is the action in the basis of (-1)^length(p)p
L117
coherent_irr ([Param] block,WGraph graph,ParamPol P,int s) = ParamPolvariants: ParamPol P, [int] w, WeylElt w
L119
coherent_irr ([Param] block,WGraph graph,Param p,[int] w) = ParamPolL123
coherent_irr ([Param] block,WGraph graph,ParamPol P,[int] w) = ParamPolL125
coherent_irr ([Param] block,WGraph graph,Param p,WeylElt w) = ParamPolL127
coherent_irr ([Param] block,WGraph graph,ParamPol P,[int] w) = ParamPolL129
coherent_irr ([Param] block,WGraph graph,ParamPol P,WeylElt w) = ParamPolcoherent_irr_new 6 overloads
L133
coherent_irr_new (Param p,int s) = ParamPolreplace coherent_irr(p,i) with coherent_irr(block_of(p),W_graph_of(p),p,s)
L135
coherent_irr_new (ParamPol P,int s) = ParamPolL137
coherent_irr_new (Param p,[int] w) = ParamPolL139
coherent_irr_new (ParamPol P,[int] w) = ParamPolL141
coherent_irr_new (Param p,WeylElt w) = ParamPolL143
coherent_irr_new (ParamPol P,WeylElt w) = ParamPolHecke action L147
the action of \tilde T_alpha=v^{-1}(-T_alpha+v^2)
see filtrations.pdf in Dropbox
\tilde T_alpha(J(delta))=(v+1/v)J + \sum J(delta') + \sum mu(gamma,delta)J(gamma)L149tT 5 overloads
L156
tT ([Param] params,WGraph graph,Param p,int i ) = hodgeParamLaurentPoltT stands for \tilde T=v^{-1}(-T+v^2)
action of \tilde T_\alpha in basis of irreducibles
simple root
L170
tT ([Param] params,WGraph graph,hodgeParamLaurentPol hplp,int i) = hodgeParamLaurentPolaction of \tilde T_\alpha on hodgeParamLaurentPol
L181
tT ([Param] params,WGraph graph,hodgeParamPol hpp,int i) = hodgeParamLaurentPolaction of \tilde T_\alpha on hodgeParamPol
L186
tT ([Param] params,WGraph graph,hodgeParamLaurentPol hplp,[int] w) = hodgeParamLaurentPolaction Weyl group element [int] on hodgeParamLaurentPol
L191
tT ([Param] params,WGraph graph,hodgeParamLaurentPol hplp,WeylElt w) = hodgeParamLaurentPolaction Weyl group element WeylElt on hodgeParamLaurentPol
T 5 overloads
L196
T ([Param] params,WGraph graph,Param p,int i) = hodgeParamLaurentPolget ordinary T_alpha from tT=\tilde T: T=v\tilde T+v^2
L202
T([Param] params,WGraph graph,hodgeParamLaurentPol hplp,int i) = hodgeParamLaurentPolget ordinary T_alpha from tT=\tilde T: T=v\tilde T+v^2 acting on hodgeParamLaurentPol
L207
T ([Param] params,WGraph graph,hodgeParamPol hpp,int i) = hodgeParamLaurentPolget ordinary T_alpha from tT=\tilde T: T=v\tilde T+v^2 acting on hodgeParamPol
L212
T ([Param] params,WGraph graph,hodgeParamLaurentPol hplp,[int] w) = hodgeParamLaurentPolget ordinary product of T_alpha's, given by [int]
L217
T([Param] params,WGraph graph,hodgeParamPol hpp,WeylElt w) = hodgeParamLaurentPolget ordinary product of T_alpha's, given by WeylElt
T_inv 2 overloads
L222
T_inv ([Param] params,WGraph graph,Param p,int i) = hodgeParamLaurentPolT^{-1}=v^{-2}T +(v^2-1)
L225
T_inv([Param] params,WGraph graph,hodgeParamLaurentPol hplp,int i) = hodgeParamLaurentPolS 7 overloads
L230
S([Param] params,WGraph graph,Param p,int i) = hodgeParamLaurentPolS=-T: S at v=1 is coherent continuation, i.e. S(b,g,p,i).v_to_1=coherent_irr(p,i)
L231
S([Param] params,WGraph graph,hodgeParamLaurentPol hplp,int i) = hodgeParamLaurentPolL232
S([Param] params,WGraph graph,hodgeParamPol hpp,int i) = hodgeParamLaurentPolL234
S([Param] params,WGraph graph, hodgeParamLaurentPol hplp,[int] w) = hodgeParamLaurentPolL237
S([Param] params,WGraph graph,Param p,[int] w) = hodgeParamLaurentPolL240
S([Param] params,WGraph graph, hodgeParamLaurentPol hplp,WeylElt w) = hodgeParamLaurentPolL243
S([Param] params,WGraph graph, Param p,WeylElt w) = hodgeParamLaurentPolS_inv 9 overloads
L247
S_inv([Param] params,WGraph graph,Param p,int i) = hodgeParamLaurentPolS_inv=S^{-1}=(-T)^-1
L248
S_inv([Param] params,WGraph graph,hodgeParamLaurentPol hplp,int i) = hodgeParamLaurentPolL249
S_inv([Param] params,WGraph graph,hodgeParamPol hpp,int i) = hodgeParamLaurentPolL251
S_inv([Param] params,WGraph graph, hodgeParamLaurentPol hplp,[int] w) = hodgeParamLaurentPolL254
S_inv([Param] params,WGraph graph,Param p,[int] w) = hodgeParamLaurentPolL257
S_inv([Param] params,WGraph graph, hodgeParamPol hpp,[int] w) = hodgeParamLaurentPolL260
S_inv([Param] params,WGraph graph, hodgeParamLaurentPol hplp,WeylElt w) = hodgeParamLaurentPolL263
S_inv([Param] params,WGraph graph, Param p,WeylElt w) = hodgeParamLaurentPolL266
S_inv([Param] params,WGraph graph, hodgeParamPol hpp,WeylElt w) = hodgeParamLaurentPolgraded_standard
L270
graded_standard(Param std) = hodgeParamLaurentPolhodgeParamPol giving grading on standard module
also defined in jantzen.at
reverse
L284
reverse(hodgeParamLaurentPol hplp) = ParamPolalso defined in basic.at
quad_test 3 overloads
L286
quad_test([Param] params,WGraph graph,hodgeParamLaurentPol hplp,int i)L292
quad_test([Param] params,WGraph graph,Param p,int i)L295
quad_test([Param] params,WGraph graph,[Param] list,int i)cross 8 overloads
L303
cross([Param] params,WGraph graph, hodgeParamLaurentPol hplp,int i)cross(p)=q^{-1/2}(tTp-q^{-1/2}
=v^{-1}(tTp)-v^{-2}p
L306
cross([Param] params,WGraph graph, hodgeParamPol hpp,int i)L309
cross([Param] params,WGraph graph, ParamPol P,int i)L312
cross([Param] params,WGraph graph, Param p,int i)L315
cross([Param] params,WGraph graph,hodgeParamLaurentPol hplp,[int] w)L318
cross([Param] params,WGraph graph,hodgeParamPol hpp,[int] w)L321
cross([Param] params,WGraph graph,ParamPol P,[int] w)L324
cross([Param] params,WGraph graph,Param p,[int] w)icross
L327
icross([Param] params,WGraph graph,hodgeParamLaurentPol hplp,int i)cross
L330
cross([Param] params,WGraph graph,hodgeParamPol hpp,int i) = hodgeParamLaurentPolalso in this file at line 303, line 306, line 309, line 312, line 315, line 318, line 321, line 324; also defined in basic.at
cross_graded 2 overloads
L333
cross_graded([Param] params,WGraph graph,Param p,int i)L336
cross_graded([Param] params,WGraph graph,Param p,[int] w)icross 2 overloads
L339
icross([Param] params,WGraph graph, hodgeParamPol hpp,int i) = hodgeParamLaurentPolL342
icross([Param] params,WGraph graph, Param p,int i)also in this file at line 327
icross_graded
L345
icross_graded([Param] params,WGraph graph, Param p,int i)cross_square 4 overloads
L348
cross_square([Param] params,WGraph graph, hodgeParamLaurentPol hplp,int i)L351
cross_square([Param] params,WGraph graph, hodgeParamPol hpp,int i)L354
cross_square([Param] params,WGraph graph, Param p,int i)L357
cross_square([Param] params,WGraph graph, ParamPol P,int i)cross_square_test 2 overloads
L360
cross_square_test([Param] params,WGraph graph, ParamPol P,int i) = boolL363
cross_square_test([Param] params,WGraph graph, Param p,int i) = boolmoved from induction.at to avoid circularity issueL366
in singular case, move to regular infinitesimal character, apply w, and move back Dangerous Bend (example): atlas> set G=Sp(6,R) atlas> set p=parameter(KGB(G,3),[3,2,2],[0,0,0]) Value: zero parameter (x=3,lambda=[3,2,2]/1,nu=[0,0,0]/1) the root e2-e3 is compact, so this limit of DS is zero however its coherent continuation is not zero atlas> coherent_std(0,p) Value: -1*final parameter (x=4,lambda=[3,2,2]/1,nu=[0,0,0]/1) 1*final parameter (x=9,lambda=[3,2,2]/1,nu=[1,-1,0]/2)L368
action of simple root on parameter, basis of standardsL385
need to provide block and graph at regular infinitesimal characterL386
h_init
L405
h_init(RealForm G)use: set (G,p,b,g,gs,w)=h_init(G) then show_long(S_inv(b,g,gs,w)
is_positive
L415
is_positive(hodgeParamLaurentPol hplp) = boolS_inv_plus
L419
S_inv_plus([Param] params,WGraph graph, hodgeParamLaurentPol hplp,[int] w)keep all the intermediate results
h_test
L429
h_test(RealForm G)G should be split
also in this file at line 444
then valid=all(for (,,,x) in rv do x od) in
prints("number of terms: ", #rv,new_line,"result: ",valid);
(rv,valid)L439h_test
L444
h_test([RealForm] list) = voidalso in this file at line 429
list
L446
list = [SL(2,R),SL(3,R),SL(4,R),GL(4,R),Sp(4,R), Sp(6,R),Spin(4,3),Spin(5,4),G2_s]also defined in basic.at
normalized version of S_inv L450
for Stephen Miller
intended for use (only?) with minimal principal series:
given a parameter p of a minimal principal series, replace p with
p_new, so that S_inv(params,graph,p_new,w) has the same composition
factors as p
Note: S_inv(params,graph,p,w) replaces the M-parameter lambda of p with w\times\lambda,
so for p_new use: lambda_new=cross(w^{-1},p).lambdaL452Commented-out code, lines 461–467 (6 lines)
typical usage:
set p=parameter(G.x_open,lambda,nu) {at regular infinitesimal character}
set b=block_of(p)
set g=W_graph_of(p)
for w=[int] or WeylElt do:
show_long(millers_crossing(b,g,p,w))millers_crossing 2 overloads
L470
millers_crossing([Param] params,WGraph graph, Param p,WeylElt w) = hodgeParamLaurentPolcompute graded composition series of principal series in the w-chamber
L480
millers_crossing([Param] params,WGraph graph, Param p,[int] w) = hodgeParamLaurentPolmillers_crossing_sing 2 overloads
L490
millers_crossing_sing([Param] params,WGraph graph, Param p,WeylElt w) = hodgeParamLaurentPolsingular infinitesimal character
L497
millers_crossing_sing([Param] params,WGraph graph, Param p,[int] w) = hodgeParamLaurentPolSecond version using coherent continuation of irreducibles: using W_graph version of coherent_continuation block: block for G of the induced representation graph: W_graph of the blockL500
theta_induce_irreducible_wgraph 2 overloads
L506
theta_induce_irreducible_wgraph ([Param] block, WGraph graph, Param p, RealForm G) = ParamPolL519
theta_induce_irreducible_wgraph (Param p, RealForm G) = ParamPolthis is slow and probably negates the possible speed advantage of theta_induce_irreducible_wgraph, but useful for testing
Generated from atlas-scripts at commit 7e1b958 (2026-09-17).
Commented-out code, lines 387–398 (10 lines)
set coherent_irr ([Param] block_reg,WGraph graph_reg,Param p,int s) = ParamPol: if is_regular(p) then let block_gamma=for q in block_reg do first_param(T_irr(q,p.infinitesimal_character)) od in coherent_irr_reg(block_gamma,graph,p,s) else let gamma=infinitesimal_character(p) then p_reg=T(p,gamma+rho(real_form(p))) then block_gamma=for q in block_reg do first_param(T_irr(q,p.infinitesimal_character)) od in T(coherent_irr_reg(block_gamma,graph,p_reg,s),gamma) fi