This is a Macaulay2 package based on a combinatorial algorithm of the paper arXiv:2410.00652 to determine the linear space $Ik+1$ of homogeneous polynomials of
The following examples demonstrate basic usage, with more available in examples.m2.
To use this package, first run:
load "ProlongationKernels.m2"Then, it provides the following three functions:
prolongationKernelOfVeroneseEmbringVeroneseWeightrunProlongationProcedure
Tested on: Macaulay2, version 1.25.11 (Intel Core i7-1260P @ 4.7 GHz, 64 GB RAM).
For
-- s_4v_4P^3: dP4
result = prolongationKernelOfVeroneseEmb(
4,3,3, -- k,d,n
ReturnGenerators => true,
Parallel => true,
Verbose => false
);
keys(result)
result#dimInfoWe can output all intermediate steps of the procedure, which is useful for both manual verification and understanding how the algorithm works.
Setting
-- s_3v_3P^2: Aronhold invariant
R = ringVeroneseWeight(3,2) -- d, n
wt = {4,4,4} -- target weight: sum of wt = d*(k+1)
result = runProlongationProcedure(
R, wt,
InitialVariables => {}, -- you can put some monomial, e.g., s_(0,0,3)*s_(0,2,1)*s_(2,1,0)^2
ReturnGenerators => true,
ReturnSteps => true
);
keys(result)
result#generators#0 -- Aronhold invariant
result#steps