atlas Library · Script File
coherent_irreducible.at
Definitions in source order
length_sign
length_sign (int k,int l) = intsign
sign (Param p,Param q) = intalso defined in basic.at, tits_centralizer.at, character_tables.at, extended.at
W_graph_of
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
mu (WGraph graph,int i,int j) = intThe mu function, obtained from W_graph
mu([Param] params,WGraph graph, Param p,Param q) = intalso defined in convert_c_form.at
matrix 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
graph_Hecke_action (WGraph graph,int s) = sparse_matalso in this file at line 101
graph_Hecke_action_column
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
graph_Hecke_irr_action_column (WGraph graph,int col_number,int s) = sparse_columngraph_Hecke_irr_action
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
graph_Hecke_action ([sparse_mat] matrices,int col_number,int s) = sparse_columnalso in this file at line 35
coherent_irr 7 overloads
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
coherent_irr ([Param] block,WGraph graph,ParamPol P,int s) = ParamPolvariants: ParamPol P, [int] w, WeylElt w
coherent_irr ([Param] block,WGraph graph,Param p,[int] w) = ParamPolcoherent_irr ([Param] block,WGraph graph,ParamPol P,[int] w) = ParamPolcoherent_irr ([Param] block,WGraph graph,Param p,WeylElt w) = ParamPolcoherent_irr ([Param] block,WGraph graph,ParamPol P,[int] w) = ParamPolcoherent_irr ([Param] block,WGraph graph,ParamPol P,WeylElt w) = ParamPolalso defined in coherent.at
coherent_irr_new 6 overloads
coherent_irr_new (Param p,int s) = ParamPolreplace coherent_irr(p,i) with coherent_irr(block_of(p),W_graph_of(p),p,s)
coherent_irr_new (ParamPol P,int s) = ParamPolcoherent_irr_new (Param p,[int] w) = ParamPolcoherent_irr_new (ParamPol P,[int] w) = ParamPolcoherent_irr_new (Param p,WeylElt w) = ParamPolcoherent_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
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
tT ([Param] params,WGraph graph,hodgeParamLaurentPol hplp,int i) = hodgeParamLaurentPolaction of \tilde T_\alpha on hodgeParamLaurentPol
tT ([Param] params,WGraph graph,hodgeParamPol hpp,int i) = hodgeParamLaurentPolaction of \tilde T_\alpha on hodgeParamPol
tT ([Param] params,WGraph graph,hodgeParamLaurentPol hplp,[int] w) = hodgeParamLaurentPolaction Weyl group element [int] on hodgeParamLaurentPol
tT ([Param] params,WGraph graph,hodgeParamLaurentPol hplp,WeylElt w) = hodgeParamLaurentPolaction Weyl group element WeylElt on hodgeParamLaurentPol
T 5 overloads
T ([Param] params,WGraph graph,Param p,int i) = hodgeParamLaurentPolget ordinary T_alpha from tT=\tilde T: T=v\tilde T+v^2
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
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
T ([Param] params,WGraph graph,hodgeParamLaurentPol hplp,[int] w) = hodgeParamLaurentPolget ordinary product of T_alpha's, given by [int]
T([Param] params,WGraph graph,hodgeParamPol hpp,WeylElt w) = hodgeParamLaurentPolget ordinary product of T_alpha's, given by WeylElt
T_inv 2 overloads
T_inv ([Param] params,WGraph graph,Param p,int i) = hodgeParamLaurentPolT^{-1}=v^{-2}T +(v^2-1)
T_inv([Param] params,WGraph graph,hodgeParamLaurentPol hplp,int i) = hodgeParamLaurentPolS 7 overloads
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)
S([Param] params,WGraph graph,hodgeParamLaurentPol hplp,int i) = hodgeParamLaurentPolS([Param] params,WGraph graph,hodgeParamPol hpp,int i) = hodgeParamLaurentPolS([Param] params,WGraph graph, hodgeParamLaurentPol hplp,[int] w) = hodgeParamLaurentPolS([Param] params,WGraph graph,Param p,[int] w) = hodgeParamLaurentPolS([Param] params,WGraph graph, hodgeParamLaurentPol hplp,WeylElt w) = hodgeParamLaurentPolS([Param] params,WGraph graph, Param p,WeylElt w) = hodgeParamLaurentPolS_inv 9 overloads
S_inv([Param] params,WGraph graph,Param p,int i) = hodgeParamLaurentPolS_inv=S^{-1}=(-T)^-1
S_inv([Param] params,WGraph graph,hodgeParamLaurentPol hplp,int i) = hodgeParamLaurentPolS_inv([Param] params,WGraph graph,hodgeParamPol hpp,int i) = hodgeParamLaurentPolS_inv([Param] params,WGraph graph, hodgeParamLaurentPol hplp,[int] w) = hodgeParamLaurentPolS_inv([Param] params,WGraph graph,Param p,[int] w) = hodgeParamLaurentPolS_inv([Param] params,WGraph graph, hodgeParamPol hpp,[int] w) = hodgeParamLaurentPolS_inv([Param] params,WGraph graph, hodgeParamLaurentPol hplp,WeylElt w) = hodgeParamLaurentPolS_inv([Param] params,WGraph graph, Param p,WeylElt w) = hodgeParamLaurentPolS_inv([Param] params,WGraph graph, hodgeParamPol hpp,WeylElt w) = hodgeParamLaurentPolgraded_standard
graded_standard(Param std) = hodgeParamLaurentPolhodgeParamPol giving grading on standard module
also defined in jantzen.at
reverse
reverse(hodgeParamLaurentPol hplp) = ParamPolalso defined in basic.at
quad_test 3 overloads
quad_test([Param] params,WGraph graph,hodgeParamLaurentPol hplp,int i)quad_test([Param] params,WGraph graph,Param p,int i)quad_test([Param] params,WGraph graph,[Param] list,int i)cross 8 overloads
cross([Param] params,WGraph graph, hodgeParamLaurentPol hplp,int i)cross(p)=q^{-1/2}(tTp-q^{-1/2}
=v^{-1}(tTp)-v^{-2}p
cross([Param] params,WGraph graph, hodgeParamPol hpp,int i)cross([Param] params,WGraph graph, ParamPol P,int i)cross([Param] params,WGraph graph, Param p,int i)cross([Param] params,WGraph graph,hodgeParamLaurentPol hplp,[int] w)cross([Param] params,WGraph graph,hodgeParamPol hpp,[int] w)cross([Param] params,WGraph graph,ParamPol P,[int] w)cross([Param] params,WGraph graph,Param p,[int] w)also in this file at line 330; also defined in basic.at, synthetic.at, extended_misc.at, coherent_characters.at
icross
icross([Param] params,WGraph graph,hodgeParamLaurentPol hplp,int i)cross
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, synthetic.at, extended_misc.at, coherent_characters.at
cross_graded 2 overloads
cross_graded([Param] params,WGraph graph,Param p,int i)cross_graded([Param] params,WGraph graph,Param p,[int] w)icross 2 overloads
icross([Param] params,WGraph graph, hodgeParamPol hpp,int i) = hodgeParamLaurentPolicross([Param] params,WGraph graph, Param p,int i)also in this file at line 327
icross_graded
icross_graded([Param] params,WGraph graph, Param p,int i)cross_square 4 overloads
cross_square([Param] params,WGraph graph, hodgeParamLaurentPol hplp,int i)cross_square([Param] params,WGraph graph, hodgeParamPol hpp,int i)cross_square([Param] params,WGraph graph, Param p,int i)cross_square([Param] params,WGraph graph, ParamPol P,int i)cross_square_test 2 overloads
cross_square_test([Param] params,WGraph graph, ParamPol P,int i) = boolcross_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
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
is_positive(hodgeParamLaurentPol hplp) = boolalso defined in misc.at
S_inv_plus
S_inv_plus([Param] params,WGraph graph, hodgeParamLaurentPol hplp,[int] w)keep all the intermediate results
h_test
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
h_test([RealForm] list) = voidalso in this file at line 429
list
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
millers_crossing([Param] params,WGraph graph, Param p,WeylElt w) = hodgeParamLaurentPolcompute graded composition series of principal series in the w-chamber
millers_crossing([Param] params,WGraph graph, Param p,[int] w) = hodgeParamLaurentPolmillers_crossing_sing 2 overloads
millers_crossing_sing([Param] params,WGraph graph, Param p,WeylElt w) = hodgeParamLaurentPolsingular infinitesimal character
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
theta_induce_irreducible_wgraph ([Param] block, WGraph graph, Param p, RealForm G) = ParamPoltheta_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 648506c (2026-10-13).
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