Macaulay2 » Documentation
Packages » EliminationTemplates :: EliminationTemplates
next | previous | forward | backward | up | index | toc

EliminationTemplates -- zero-dimensional polynomial solvers based on linear algebra

Description

EliminationTemplates is a package that supports solvers for the following problem: given a zero-dimensional radical ideal $I \subset R := \mathbb{C} [x_1, \ldots , x_n]$, find approximate values for the isolated solutions $(p_1, \ldots , p_n ) \in V_{\mathbb{C}} (I).$ The main applications occur when the ideal $I$ occur in a parametric family of problems with similar structure.

Following the references below, the package is geared twowards implementing a "two-stage" approach, consisting of (1) offline stage and (2) an online stage.

In the offline stage, the structure of a "template matrix" for $I$ is determined using Groebner basis computations.

In the online stage, prior knowledge of the template matrix can be used to construct a multiplication matrix for the quotient ring $R/I.$ From this multiplication matrix, solutions can be extracted using only linear algebra.

References

  • Optimizing Elimination Templates by Greedy Parameter Search, Martyushev-Vrablikova-Pajdla CVPR 2022
  • Efficient solvers for minimal problems by syzygy-based reduction, Larsson-Oskarsson-Astrom CVPR 2017

Authors

Version

This documentation describes version 1 of EliminationTemplates, released April 30, 2026.

Citation

If you have used this package in your research, please cite it as follows:

@misc{EliminationTemplatesSource,
  title = {{EliminationTemplates: A \emph{Macaulay2} package. Version~1}},
  author = {Manav Batavia and Cheng Chen and Wanchun / Rosie Shen and Anna Natalie Chlopecki and Tim Duff and Will Huang and Aolong Li},
  howpublished = {A \emph{Macaulay2} package available at
    ""}
}

Exports

  • Types
  • Functions and commands
  • Methods
    • actionVariable(EliminationTemplate) -- see actionVariable -- returns the action variable associated to the elimination template
    • basis(EliminationTemplate) -- access the quotient basis of an EliminationTemplate
    • copyTemplate(EliminationTemplate,Ideal) -- see copyTemplate -- copies EliminationTemplate object
    • eliminationTemplate(RingElement,Ideal) -- see eliminationTemplate -- constructor for an EliminationTemplate object
    • getActionMatrix(EliminationTemplate) -- see getActionMatrix -- computes or retrieves a template's action matrix
    • getTemplate(EliminationTemplate) -- see getTemplate -- construct the shifts and monomial partition for an elimination template
    • getTemplateMatrix(EliminationTemplate) -- see getTemplateMatrix -- computes template matrix
    • getTemplateMatrix(RingElement,Matrix,Ideal) -- see getTemplateMatrix -- computes template matrix
    • ideal(EliminationTemplate) -- access the ideal of an EliminationTemplate
    • net(EliminationTemplate) -- display an EliminationTemplate
    • templateSolve(EliminationTemplate) -- see templateSolve -- polynomial system solver using elimination templates
    • templateSolve(Ideal) -- see templateSolve -- polynomial system solver using elimination templates
    • templateSolve(RingElement,Ideal) -- see templateSolve -- polynomial system solver using elimination templates
  • Symbols
    • AdjustParams -- see getTemplate -- construct the shifts and monomial partition for an elimination template

For the programmer

The object EliminationTemplates is a package, defined in EliminationTemplates.m2, with auxiliary files in EliminationTemplates/.


The source of this document is in /build/reproducible-path/macaulay2-1.26.05+ds/M2/Macaulay2/packages/EliminationTemplates.m2:804:0.