Welcome to Maxima Grobner development site

Maxima Grobner is a Maxima extension which provides for calculation of Grobner bases within Maxima.

Grobner bases is a mathematical device for solving problems involving polynomial equations in several variables. There are vast resources on Groebner bases, and there are many software systems which compute them. Maxima Groebner is particularly good in several areas:

  • It is relatively compact, easy to understand, and easy to modify.
  • It is integrated with the Maxima expression pseudo-ring (the set of Maxima expressions with its specific simplification rules).
  • It can perform calculations with transcendental functions, symbolic parameters, etc.
  • It is suitable for calculations with differential polynomials.
  • It is written in Common Lisp.
  • It is extremely reliable in comparison with many other non-commercial packages, i.e. it does not produce incorrect results. This may be important to some :).
  • It implements several different algorithms.

The package is not particularly fast, which is the cost of its great flexibility. The algorithm is not particularly new, either. It is based on the original work of Buchberger, and more recent work of Gebauer and Moeller, and the "sugar" algorithm of A. Giovini, T. Mora, G. Niesi, L. Robbiano and C. Traverso. The more recent work of Faugere is not reflected in the code, as of today.

On the software level, the package can be optimized in many ways by a programmer proficient in Common Lisp. The optimization of Lisp code consists in careful inlining and adding declarations if the data types of certain variables can be known in advance. It is a mundane process, and due to this cost, one must be motivated by a problem at hand. However, the speedup may be significant. The source code provides no such optimizations, so that the same source code can work with the widest class of coefficient rings.

Marek Rychlik

Last modified 8 years ago Last modified on Jan 25, 2009, 9:25:03 PM