Documentation contents

atlas Library · Script File

hodgeParamPol.at

Source
atlas-scripts/hodgeParamPol.at (290 lines)
Definitions
52
Loads
Loaded by
jantzen.at hodgeParamLaurentPol.at hodge_deform.at hodge_functions.at

Definitions in source order

Commented-out code, lines 5–29 (24 lines)
set P_t(G)={non-zero, final, standard, tempered parameter}
 this is precisely the set of "K-types" (parameters of G)
 p_i -> LKT(p_i) is a bijection with K^ (irreducible representations of K)

We write
"K_type" to mean an element of P_t
"K_rep": an irreducible representation of K

In the K-world p\in P_t can be viewed two ways:

1) p_i -> I(p_i)|_K = all of the K_reps of I(p)
2) p_i -> LKT(I(p_i)) = a single K_rep

So \sum_i a_i(v)p_i (finite sum) can be viewed two ways:

1) \sum_i a_i(v)I(p_i)|_K    [infinite sum of K_reps with Z[v] coefficients]
2) \sum_i a_i(v)LKT(I(p_i))  [a finite sum of K_reps with Z[v] coefficients]

We could use the same data structure for both. This is similar to
using parameters for both standard or irreducible modules: you need to
know which is appropriate, by the context.

Instead we'll use an extra void to specify when something is a
K_rep. We can and should revisit this issue.
Conclusion:

hodgeParamPol: \sum{i=1}^n a_i(v)p_i where a_i(v) is a polynomial and p_i\in P_t
corresponding to \sum_i a_i(v)I(p_i)|_K
data type: hodgeParamPol

KHodgeParamPol:  \sum{i=1}^n a_i(v)p_i where a_i(v) is a polynomial and p_i\in P_t
corresponding to \sum_{i=1}^n a_i(v)LKT(p_i) (finite sum of K_reps)
data type: (hodgeParamPol,void)

a hodgeParamPol is an _infinite_ sum of K_reps (with Z[v] coefficients)
truncated at an integer bound it becomes a finite sum of K_reps with Z[v]
coefficients, i.e. a KHodgeParamPol
this is hodge_branch@(hodgeParamPol,int) and variants
L31

hodgeParamPol type

L65
set_type hodgeParamPol=[ParamPol] { list is not empty }
the data type hodgeParamPol is [ParamPol]
[P_0,P_1,..,P_n] <-> P_0+P_1*v+...+P_n*v^n

[P_0,...,P_m] -> (P_0+P_1*v+...+P_m*v^m)
Write the union of monomials(P_i) as {p_0,...,p_r}.
The order of this set matters.
Write P_i=\sum a_{i,j}p_j where j\le r.
Then this corresponds to
\sum a_{i,0}v^i)p_0 +
\sum a_{i,1}v^i)p_1 +
...
\sum a_{i,r}v^i)p_r


The advantage of the non-obvious convention is that we can use the
features of ParamPol to take care of combining terms.
See the functions rearrange and dearrange.

HodgeKTypePol type

L66
set_type HodgeKTypePol=[KTypePol] { list is not empty }

hodgeParamPol versions L68

nullHodgeParamPol

L71nullHodgeParamPol(RealForm G) = hodgeParamPol
by ensuring at least one term is recorded, we can recover RealForm

hodge_param_pol

L72hodge_param_pol(Param p) = hodgeParamPol

also defined in hodgeParamLaurentPol.at

real_form

L73real_form (hodgeParamPol P) = RealForm

also in this file at line 78, line 148; also defined in basic.at, weak_packets_precomputed_cell_traces.at, parabolics.at, K.at, nilpotent_orbits.at, hodgeParamLaurentPol.at

*

L74*(Split c,hodgeParamPol P)

also in this file at line 79, line 134, line 135, line 152, line 154, line 177, line 180, line 182; also defined in basic.at, extParamPol.at, complex.at, modules.at, hodge_tensor.at, tits_centralizer.at, stable.at, synthetic.at, Weylgroup.at, group_operations.at, ratmat.at, tits.at, twisted_root_datum.at, cyclotomic.at, polynomial.at, hodgeParamLaurentPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, sparse.at, lazy_lists.at

nullHodgeKTypePol

L76nullHodgeKTypePol (RealForm G) = HodgeKTypePol

hodge_K_type_pol

L77hodge_K_type_pol (KType t) = HodgeKTypePol

real_form

L78real_form (HodgeKTypePol P) = RealForm

also in this file at line 73, line 148; also defined in basic.at, weak_packets_precomputed_cell_traces.at, parabolics.at, K.at, nilpotent_orbits.at, hodgeParamLaurentPol.at

*

L79*(Split c,HodgeKTypePol P)

also in this file at line 74, line 134, line 135, line 152, line 154, line 177, line 180, line 182; also defined in basic.at, extParamPol.at, complex.at, modules.at, hodge_tensor.at, tits_centralizer.at, stable.at, synthetic.at, Weylgroup.at, group_operations.at, ratmat.at, tits.at, twisted_root_datum.at, cyclotomic.at, polynomial.at, hodgeParamLaurentPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, sparse.at, lazy_lists.at

rearrange:
 takes hodgeParamPol:[P_0,P_1,..,P_n] <-> P_0+P_1*v+...+P_n*v^{n-1}

write P_i=\sum_0^r a_{i,j}p_j   i\le r, j\le m

\sum a_{i,0}v^i)p_0 +
\sum a_{i,1}v^i)p_1 +
...
\sum a_{i,r}v^i)p_r
 represented by
[
( [a_{0,0},a_{1,0},...,a_{m,0}],p_0),
( [a_{0,1},a_{1,1},...,a_{m,1}],p_1),
...
( [a_{0,r},a_{1,r},...,a_{m,r}],p_r)
]
This is a more natural way to think of a hodgeParamPol, but less convenient
computationally.
L82

rearrange 2 overloads

L103rearrange(hodgeParamPol pols) = [(i_poly,Param)]
Regroup by parameter or K-type
L108rearrange(HodgeKTypePol pols) = [(i_poly,KType)]

also defined in hodgeParamLaurentPol.at

dearrange

L121dearrange([vec,Param] f, RealForm G) = hodgeParamPol
go other way:
 given f_0(v)p_0 + ... + f_n(v) p_n, take it to [P_0,...,P_m]
[a_0+a_1v+...a_kv^k]*p_0 + [b_0+...+b_rv^r]*p_1 + ... [...]*p_n
 <->  by [([a_0,...,a_k],p_0),...,([...],p_n)] goes to
 P_0+P_1*v^2+...+P_m*v^m, represented by
 [P_0,P_1,..,P_n]

also defined in hodgeParamLaurentPol.at

Hodge_K_type_pol

L128Hodge_K_type_pol ([vec,KType] f,RealForm G) = HodgeKTypePol

also in this file at line 179

* 2 overloads

L134*(i_poly f,Param p) = hodgeParamPol
L135*(i_poly f,hodgeParamPol P) = hodgeParamPol

also in this file at line 74, line 79, line 152, line 154, line 177, line 180, line 182; also defined in basic.at, extParamPol.at, complex.at, modules.at, hodge_tensor.at, tits_centralizer.at, stable.at, synthetic.at, Weylgroup.at, group_operations.at, ratmat.at, tits.at, twisted_root_datum.at, cyclotomic.at, polynomial.at, hodgeParamLaurentPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, sparse.at, lazy_lists.at

Note: error if #P=0
L137

coefficient

L141coefficient(hodgeParamPol P,Param p) = i_poly

also in this file at line 186, line 287; also defined in hodgeParamLaurentPol.at, hodge_functions.at, lazy_lists.at

=

L145=(hodgeParamPol P,hodgeParamPol Q) = bool
equality is term by term

also in this file at line 190; also defined in basic.at, combinatorics.at, modules.at, parabolics.at, synthetic.at, hash.at, tits.at, K_highest_weights.at, nilpotent_orbits.at, cyclotomic.at, polynomial.at, W_reps_type_BC.at, hodgeParamLaurentPol.at, laurentPolynomial.at, extended.at, disconnected.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at

real_form

L148real_form(hodgeParamPol P) = RealForm

also in this file at line 73, line 78; also defined in basic.at, weak_packets_precomputed_cell_traces.at, parabolics.at, K.at, nilpotent_orbits.at, hodgeParamLaurentPol.at

* 2 overloads

L152*(i_poly f,hodgeParamPol P) = hodgeParamPol
polynomial  in v, or constant, times hodgeParamPol
L154*(int c,hodgeParamPol P) = hodgeParamPol

also in this file at line 74, line 79, line 134, line 135, line 177, line 180, line 182; also defined in basic.at, extParamPol.at, complex.at, modules.at, hodge_tensor.at, tits_centralizer.at, stable.at, synthetic.at, Weylgroup.at, group_operations.at, ratmat.at, tits.at, twisted_root_datum.at, cyclotomic.at, polynomial.at, hodgeParamLaurentPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, sparse.at, lazy_lists.at

+

L156+(hodgeParamPol P,hodgeParamPol Q) = hodgeParamPol

also in this file at line 205; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, polynomial.at, hodgeParamLaurentPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, lazy_lists.at

one_minus_v

L163one_minus_v = [1,-1]

-

L164-(hodgeParamPol P,hodgeParamPol Q) = hodgeParamPol

also in this file at line 209; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, polynomial.at, hodgeParamLaurentPol.at, laurentPolynomial.at, cyclotomicMat.at, hodge_functions.at, lazy_lists.at

evaluate_at_s

L166evaluate_at_s (hodgeParamPol Q) = ParamPol

evaluate_at_1

L169evaluate_at_1(hodgeParamPol Q) = ParamPol

also defined in stable.at, polynomial.at

v_to_s

L172v_to_s(hodgeParamPol Q) = ParamPol

also in this file at line 215

v_to_1

L173v_to_1(hodgeParamPol Q) = ParamPol

also in this file at line 214; also defined in hodgeParamLaurentPol.at

HodgeKTypePol versions L175

*

L177*(i_poly f,KType mu) = HodgeKTypePol

also in this file at line 74, line 79, line 134, line 135, line 152, line 154, line 180, line 182; also defined in basic.at, extParamPol.at, complex.at, modules.at, hodge_tensor.at, tits_centralizer.at, stable.at, synthetic.at, Weylgroup.at, group_operations.at, ratmat.at, tits.at, twisted_root_datum.at, cyclotomic.at, polynomial.at, hodgeParamLaurentPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, sparse.at, lazy_lists.at

Hodge_K_type_pol

L179Hodge_K_type_pol (KType mu) = HodgeKTypePol

also in this file at line 128

* 2 overloads

L180*(Split c,HodgeKTypePol KP) = HodgeKTypePol
L182*(i_poly f,HodgeKTypePol KP) = HodgeKTypePol

also in this file at line 74, line 79, line 134, line 135, line 152, line 154, line 177; also defined in basic.at, extParamPol.at, complex.at, modules.at, hodge_tensor.at, tits_centralizer.at, stable.at, synthetic.at, Weylgroup.at, group_operations.at, ratmat.at, tits.at, twisted_root_datum.at, cyclotomic.at, polynomial.at, hodgeParamLaurentPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, sparse.at, lazy_lists.at

coefficient

L186coefficient(HodgeKTypePol KP,KType p) = i_poly

also in this file at line 141, line 287; also defined in hodgeParamLaurentPol.at, hodge_functions.at, lazy_lists.at

=

L190= (HodgeKTypePol KP,HodgeKTypePol KQ) = bool
equality is term by term

also in this file at line 145; also defined in basic.at, combinatorics.at, modules.at, parabolics.at, synthetic.at, hash.at, tits.at, K_highest_weights.at, nilpotent_orbits.at, cyclotomic.at, polynomial.at, W_reps_type_BC.at, hodgeParamLaurentPol.at, laurentPolynomial.at, extended.at, disconnected.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at

rearrange:
 takes HodgeKTypePol:([P_0,P_1,..,P_n],) <-> P_0+P_1*q+...+P_n*v^{n-1}
 to
((a_0+a_1q+...a_kv^k)*p_0 + (b_0+...+b_rv^r)*p_1 + ... (...)p_m,)
 represented by ([([a_0,...,a_k],p_0),...,([...],p_m)],)
 where {p_i} are the monomials of all of the {P_j}
 the coefficients are i_pols
This is a more natural way to think of a hodgeParamPol, but less convenient
computationally.
L194

+

L205+(HodgeKTypePol KP,HodgeKTypePol KQ) = HodgeKTypePol

also in this file at line 156; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, polynomial.at, hodgeParamLaurentPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, lazy_lists.at

-

L209-(HodgeKTypePol KP,HodgeKTypePol KQ) = HodgeKTypePol

also in this file at line 164; also defined in basic.at, extParamPol.at, modules.at, ratmat.at, cyclotomic.at, polynomial.at, hodgeParamLaurentPol.at, laurentPolynomial.at, cyclotomicMat.at, hodge_functions.at, lazy_lists.at

v_to_1

L214v_to_1 (HodgeKTypePol KP) = KTypePol

also in this file at line 173; also defined in hodgeParamLaurentPol.at

v_to_s

L215v_to_s (HodgeKTypePol KP) = KTypePol

also in this file at line 172


shift 2 overloads

L221shift(hodgeParamPol P, int k) = hodgeParamPol
multiply hodgeParamPol by v^k (k\ge 0)
L224shift(HodgeKTypePol KP, int k) = HodgeKTypePol

also defined in hodge_tensor.at, laurentPolynomial.at, lazy_lists.at

Commented-out code, lines 227–227 (1 lines)
set hodge_branch_irr(Param p,int N)=hodgeParamPol:hodge_branch_std(hodge_grading_irreducible(p),N)

show 2 overloads

L230show(hodgeParamPol P) = void
nice output
L238show(HodgeKTypePol P) = void
nice output

also defined in modules.at, K_Nilpotent.at, good_W_representatives.at, arthur_parameters.at, sub_cells.at, associated_variety_annihilator.at, geck_generic.at, L_packet.at, ratmat.at, Levi_subgroups.at, nilpotent_orbits.at, subgroups.at, poset.at, cyclotomic.at, polynomial.at, character_tables.at, springer_tables.at, hodgeParamLaurentPol.at, laurentPolynomial.at, weak_packets.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, exceptional.at, nilpotent_posets.at, lazy_lists.at

show_long 3 overloads

L246show_long(hodgeParamPol P,KGBElt x_K) = void
alternative output version
L253show_long(hodgeParamPol P) = void
L260show_long(HodgeKTypePol KP) = void

also defined in character_tables.at, springer_tables.at, hodgeParamLaurentPol.at, weak_packets.at, cyclotomic_Lie_algebra.at, bracket.at, exceptional.at

hodge_print 3 overloads

L276hodge_print = show@hodgeParamPol
L277hodge_print([(vec,Param)] P,RealForm G) = void
L278hodge_print([(vec,KType)] P,RealForm G) = void

hodge_print_long 3 overloads

L280hodge_print_long = show_long@hodgeParamPol
L281hodge_print_long([vec,Param] P,RealForm G) = void
L283hodge_print_long ([vec,KType] L,RealForm G) = void

coefficient

L287coefficient (hodgeParamPol P,KType mu) = i_poly

also in this file at line 141, line 186; also defined in hodgeParamLaurentPol.at, hodge_functions.at, lazy_lists.at

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