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.
翻译:我们提出了一个新的开放源代码 C 库 \ textt{ comsole}, 致力于通过计算机代数方法解决维度为零的多变量多维多元系统 。\ textt{ msoluve} 的核心算法框架依赖于 Gr\ 的“ obner 基础” 和基于线性代数的算法, 用于解决多元系统。 它依赖于 Gr\ 的“ obner 基础计算 ” w.r. t\ 位反向法顺序, Gr\\ 的' obner 转换到 词汇 Gr\ 的“ obner 基础 ”, 并真正解决 univariat 多边名 。 我们详细解释了解决进程的这三个主要步骤是如何执行的 。 我们如何利用\ textt{ AVX2} 教学处理器以及我们实践的更一般的执行理念 来更好地利用此算法框架的计算能力 。 我们比较了\ texttt{ molvevey 系统的实际性性性表现, 比如- frestroplecle- rostroplestrople- romastrops