atlas Library · Script File
hodge_deform.at
Definitions in source order
hodge_verbose
L4
hodge_verbose = falsehodge version of deformation algorithm used to be called the "q" version, although it is really "v"L6
poly_rows_minus
L11
poly_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
L14
last_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
L29
mat_as_poly_mat(mat A) = i_poly_matconvert 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
L35
hodge_compress ([Param] B, mat KL_mat, [i_poly] polys) = ([Param], i_poly_mat)hodge-version of compress from deform.at
compress
L45
compress ([Param] B, mat KL_mat, [i_poly] polys) = ([Param],mat)the same, but evaluating polynomials at $q=-1$
Q_v_inverse
L57
Q_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
L59
v_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
L64
hodge_deformation_terms (Param Gamma) = hodgeParamPolhodge-version of deformation_terms, using last_column_mat_poly_inverse(KL_mat) to compute column of inverse as polynomial in v
hodge_recursive_deform
L115
hodge_recursive_deform (Param p) = hodgeParamPolhodge version of recursive deform
hodge_recursive_deform_reverse
L160
hodge_recursive_deform_reverse (Param p) = hodgeParamPolanother identical copy of the hodge_recursive_deform *except* that the deformation is outward, which is useful for debugging
hodge_recursive_deform 2 overloads
L201
hodge_recursive_deform(ParamPol P) = hodgeParamPolL205
hodge_recursive_deform(hodgeParamPol Q)also in this file at line 115
hodge_grading_std 2 overloads
L212
hodge_grading_std(Param p) = hodgeParamPolL213
hodge_grading_std(ParamPol P) = hodgeParamPolhodge_signed_P_matrix
L215
hodge_signed_P_matrix(Param Gamma) = i_poly_mathodge_P_matrix
L218
hodge_P_matrix(Param Gamma) = i_poly_mathodge_grading_irreducible
L223
hodge_grading_irreducible(Param p)write hodge(J(Gamma)) in terms of hodge(I(x,lambda,0))
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) odGenerated from atlas-scripts at commit 648506c (2026-10-13).
Commented-out code, lines 239–239 (1 lines)