Groebner Basis
This is an implementation of the F4 and Buchberger algorithm for computing Groebner bases in Rust.
Examples:
Usage
To use in your project:
Create polynomials from strings with an explicit variable order:
use ;
use BigRational;
let ring = new?;
let f1 = ring.parse?;
let f2 = ring.parse?;
let basis = groebner_basis?;
# Ok::
For modular computations over a machine prime:
use ;
type F32003 = ;
let ring = new?;
let f1 = ring.parse?;
let f2 = ring.parse?;
let basis = groebner_basis?;
# Ok::
Test Suite
To run the examples, use:
The test suite is the full list of known Groebner bases for a variety of large multivariate polynomial systems.
References
- Cox, D., Little, J., O'Shea, D. "Ideals, Varieties, and Algorithms"
- Buchberger, B. "Gröbner Bases: An Algorithmic Method in Polynomial Ideal Theory"
- Giovini, A., Mora, T., Niesi, G., Robbiano, L., & Traverso, C. (1991, June). “One sugar cube, please” or selection strategies in the Buchberger algorithm. In Proceedings of the 1991 international symposium on Symbolic and algebraic computation (pp. 49-54).
- Gebauer, R., & Möller, H. M. (1988). On an installation of Buchberger's algorithm. Journal of Symbolic computation, 6(2-3), 275-286.
- Roune, B. H., & Stillman, M. (2012, July). Practical Gröbner basis computation. In Proceedings of the 37th International Symposium on Symbolic and Algebraic Computation (pp. 203-210).
License
Released under the MIT License. See LICENSE for details.