English

msolve: A Library for Solving Polynomial Systems

Symbolic Computation 2021-05-20 v2

Abstract

We present a new open source C library \texttt{msolve} dedicated to solving multivariate polynomial systems of dimension zero through computer algebra methods. The core algorithmic framework of \texttt{msolve} relies on Gr\''obner bases and linear algebra based algorithms for polynomial system solving. It relies on Gr\''obner basis computation w.r.t.\ the degree reverse lexicographical order, Gr\''obner conversion to a lexicographical Gr\''obner basis and real solving of univariate polynomials. We explain in detail how these three main steps of the solving process are implemented, how we exploit \texttt{AVX2} instruction processors and the more general implementation ideas we put into practice to better exploit the computational capabilities of this algorithmic framework. We compare the practical performances of \texttt{msolve} with leading computer algebra systems such as \textsc{Magma}, \textsc{Maple}, \textsc{Singular} on a wide range of systems with finitely many complex solutions, showing that \texttt{msolve} can tackle systems which were out of reach by the computer algebra software state-of-the-art.

Keywords

Cite

@article{arxiv.2104.03572,
  title  = {msolve: A Library for Solving Polynomial Systems},
  author = {Jérémy Berthomieu and Christian Eder and Mohab Safey El Din},
  journal= {arXiv preprint arXiv:2104.03572},
  year   = {2021}
}

Comments

2021 International Symposium on Symbolic and Algebraic Computation, Jul 2021, Saint-P{\'e}tersbourg, Russia

R2 v1 2026-06-24T00:57:08.382Z