Documentation contents

atlas Library · Script File

hodge_normalize.at

Source
atlas-scripts/hodge_normalize.at (185 lines)
Definitions
11
Loads
Loaded by
c_form_branch.at hodge_functions.at

Definitions in source order

imaginary_type

L5imaginary_type (int s, KGBElt x) = int
move to basic.at

also defined in basic.at

hodge_normalize_verbose

L7hodge_normalize_verbose = false

tau

L9tau(int n,int k)

also defined in basic.at, modules.at, sub_cells.at

hodge version of normalizing a parameter
L11
NOTE: the type hodgeParamPol is equal to [ParamPol]
however we cannot use any ParamPols here, because atlas
automatically finalizes parameters when put in a ParamPol
recall (see hodgeParamPol.at) if Q is a ParamPol,
dearrange(Q)=[(vec,Param)]:[(f1,p1),...,(fn,pn)] <-> f1(v)*p_1 + ... + fn(v)*p_n
we work entirely with these objects
the downside is there is no collection of terms
at the end, once all p_i are normal, do rearrange to get a hodgeParamPol (and collect terms)
n
L13
I(x,lambda,nu=0) is a parameter
gamma=infinitesimal character
alpha: simple complex root
beta=theta_x(alpha)
nu=0 => <gamma,beta^v>=<gamma,alpha^v>
Suppose: <gamma,alpha^v><=0
  alpha simple, complex root (not necessarily integral)

a) If theta_x(alpha)<0 (alpha is a complex descent) then

I(x,lambda,0) -> I(s_alpha x,s_alpha\lambda,0)

b) If theta_x(alpha)>0 (\alpha is a complex ascent)
   AND <gamma,alpha^v>=0  then return I(x,lambda,0)

c) If theta_x(alpha)>0 (\alpha is a complex ascent)
   AND <gamma,alpha^v> < 0  (strict inequality)
let x'=s_alpha x,lambda'=s_alpha\lambda

I(x,lambda,0) -> vI(x',lambda,0) +
                 \sum_{k=1}^{k=[n/2]-1}v^{k-1}(v^2-1)I(x',lambda'-k\alpha,0) +
                 [v^{n/2}(v-1)I(x',lambda'-(n/2)\alpha,0)

The last term is the same as the general one except (v^2-1) is
replaced by (v-1), and it only occurs if n is even.
L23

hodge_reflection_complex

L51hodge_reflection_complex(Param p, int i) = [(vec,Param)]

hodge_reflection_imaginary

L91hodge_reflection_imaginary(Param p, int i) = [(vec,Param)]

hodge_reflection 2 overloads

L141hodge_reflection(Param p, int i) = [vec,Param]
L148hodge_reflection(([vec,Param]) Q,int index,int root_number) = [vec,Param]
apply reflection #root_number to term #index

hodge_normalize_0

L166hodge_normalize_0([(vec,Param)] Q) = [(vec,Param)]
recursively hodge_normalize
first version: return [(vec,ParamPol)]

also in this file at line 183

hodge_normalize

L178hodge_normalize([(vec,Param)] Q,RealForm G) = hodgeParamPol
main version: return hodgeParamPol

also in this file at line 184

hodge_normalize_0

L183hodge_normalize_0 (Param p) = [(vec,Param)]

also in this file at line 166

hodge_normalize

L184hodge_normalize (Param p) = hodgeParamPol

also in this file at line 178

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