Documentation contents

atlas Library · Script File

hodge_deform.at

Source
atlas-scripts/hodge_deform.at (276 lines)
Definitions
18
Loads
Loaded by
hodge_normalize.at hodge_functions.at

Definitions in source order

hodge_verbose

L4hodge_verbose = false
hodge version of deformation algorithm
used to be called the "q" version, although it is really "v"
L6

poly_rows_minus

L11poly_rows_minus([i_poly] f,[i_poly] g) = [i_poly]
difference of two vectors of polynomials of the same length

last_column_mat_poly_inverse

L14last_column_mat_poly_inverse(i_poly_mat A) = [i_poly]
compute last column of the inverse of an upper unitriangular polynomial matrix

mat_as_poly_mat

L29mat_as_poly_mat(mat A) = i_poly_mat
convert mat to i_poly_mat
caution: mat is by columns, i_poly_mat is by rows

also defined in stable.at, polynomial.at

hodge_compress

L35hodge_compress ([Param] B, mat KL_mat, [i_poly] polys) = ([Param], i_poly_mat)
hodge-version of compress from deform.at

compress

L45compress ([Param] B, mat KL_mat, [i_poly] polys) = ([Param],mat)
the same, but evaluating polynomials at $q=-1$

Q_v_inverse

L57Q_v_inverse(i_poly f)
Q(v^{-1}), this is a Laurent polynomial so shouldn't be needed/used,
except in the subsequent function

v_to_the_k_times_Q_v_inverse

L59v_to_the_k_times_Q_v_inverse(int N,i_poly f)
v^k*Q(v^{-1}), k should be large enough so this is a polynomial

hodge_deformation_terms

L64hodge_deformation_terms (Param Gamma) = hodgeParamPol
hodge-version of deformation_terms, using last_column_mat_poly_inverse(KL_mat)
to compute column of inverse as polynomial in v

hodge_recursive_deform

L115hodge_recursive_deform (Param p) = hodgeParamPol
hodge version of recursive deform

also in this file at line 201, line 205

hodge_recursive_deform_reverse

L160hodge_recursive_deform_reverse (Param p) = hodgeParamPol
another identical copy of the hodge_recursive_deform *except* that
the deformation is outward, which is useful for debugging

hodge_recursive_deform 2 overloads

L201hodge_recursive_deform(ParamPol P) = hodgeParamPol
L205hodge_recursive_deform(hodgeParamPol Q)

also in this file at line 115

hodge_grading_std 2 overloads

L212hodge_grading_std(Param p) = hodgeParamPol
L213hodge_grading_std(ParamPol P) = hodgeParamPol

hodge_signed_P_matrix

L215hodge_signed_P_matrix(Param Gamma) = i_poly_mat

hodge_P_matrix

L218hodge_P_matrix(Param Gamma) = i_poly_mat

hodge_grading_irreducible

L223hodge_grading_irreducible(Param p)
write hodge(J(Gamma)) in terms of hodge(I(x,lambda,0))
Commented-out code, lines 239–239 (1 lines)
set hodge_branch_irr(Param p,int N)=KHodgeParamPol:hodge_branch_std(hodge_grading_irreducible(p),N)

some test functions L241

Commented-out code, lines 242–276 (33 lines)
a few issues here: come back and fix them, commented out for now

{hodge_grading_irreducible(p) evaluated at v=s should equal c_form_irreducible(p)}
set hodgeTestIrreducible(Param p)=bool:hodge_grading_irreducible(p).v_to_s=c_form_irreducible(p)
set hodgeTestIrreducible([Param] params)=(bool,[bool]):
let results=for p in params do hodgeTestIrreducible(p) od in (all(results),results)

set hodgetest(Param p,int N)=bool:
let hodgedef=hodge_recursive_deform(p) then
rv=hodge_branch_std(hodgedef,N) then
positive=all(##for i:#rv do for c@p in rv[i] do split_as_int(c)>0 od od) then
valid_evaluation_at_s=evaluate_at_s(hodgedef)=recursive_deform(p) then
valid_evaluation_at_1=evaluate_at_1(hodgedef)=p*0 in
prints(p.real_form,new_line,"N:",N,new_line,p,new_line,"hodge_deformation to 0: ");print(rv);prints(new_line,
"correct evaluation at v=1:",valid_evaluation_at_1,new_line,
"correct evaluation at v=s:",valid_evaluation_at_s,new_line,
"positive coefficients: ",positive,new_line);valid_evaluation_at_1 and valid_evaluation_at_s and positive

set hodgeTest(RealForm G,int N)=bool:hodgetest(trivial(G),N)

set hodgeTest([Param] params,int N)=(bool,[bool]):let result=for p in params do hodgetest(p,N) od in (all(result),result)

set runHodgeTests()=
let groups=
[(SL(2,C),10),
(SL(3,C),15),
(SL(4,C),20),
(SO(3,1),40),
(SO(5,1),50),
(SO(7,1),80),
(Sp(4,C),20),
(complexification(G2_s),50)]
in for (G,N) in groups do hodgeTest(G,N) od

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