Rings: efficient Java/Scala library for polynomial rings¶
Rings is an efficient implementation of univariate and multivariate polynomial algebra over arbitrary coefficient rings. It makes use of asymptotically fast algorithms for basic algebraic operations as well as for advanced methods like GCDs, factorization and Gröbner bases. Performance achieved in Rings is comparable to well known solutions like Singular/NTL/FLINT/Maple/Mathematica.
The key features of Rings include:
- Polynomials →
Univariate and multivariate polynomials over arbitrary coefficient rings- Polynomial GCD →
Polynomial GCD over arbitrary coefficient domains- Univariate factorization →
Univariate polynomial factorization over arbitrary finite fields, \(Z\) and \(Q\) etc- Multivariate factorization →
Multivariate polynomial factorization over arbitrary finite fields, \(Z\) and \(Q\) etc- Commutative algebra →
Arbitrary rings, Galois fields, polynomial ideals etc- Ideals and Gröbner bases →
Polynomial ideals and efficient algorithms for Gröbner bases- Scala DSL →
Powerful domain specific language in Scala- Fast →
Really fast library suitable for real-world computational challenges
For a quick overview of what Rings can do proceed to Quick Tour and try out Rings.repl.
Rings sources are hosted at GitHub: https://github.com/PoslavskySV/rings.
License¶
Apache License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0.txt