Rings: An Efficient JVM Library for Commutative Algebra (Invited Talk)
Rings is an open-source library, written in Java and Scala programming languages, which implements basic concepts and algorithms from computational commutative algebra. The goal of the Rings library is to provide a high-performance implementation packed into a lightweight library (not a full-featured CAS) with a clean application programming interface (API), which meets modern standards of software development. Polynomial arithmetic, GCDs, factorization, and Gröbner bases are implemented with the use of modern fast algorithms. Rings provides a simple API with a fully typed hierarchy of algebraic structures and algorithms for commutative algebra. The use of the Scala language brings a quite novel powerful, strongly typed functional programming model allowing to write short, expressive, and fast code for applications.
KeywordsComputer algebra software Commutative algebra
The author would like to thank the organizers of CASC 2019. The work was supported by the Russian Science Foundation grant #18–72–00070.
- 3.Lewis, R.: Computer Algebra System Fermat (2018). http://home.bway.net/lewis
- 4.Ruijl, B., Ueda, T., Vermaseren, J. : FORM version 4.2 (2017). arXiv:1707.06453
- 6.Kaltofen, E., Monagan, M.B.: On the genericity of the modular polynomial GCD algorithm. In: Proceedings of ISSAC 1999, pp. 59–66. ACM Press, New York (1999)Google Scholar
- 8.Lee, M.M.-D.: Factorization of multivariate polynomials. Ph.D. thesis, University of Kaiserslautern (2013)Google Scholar
- 10.Trager, B.M.: Algebraic factoring and rational function integration. In: Proceedings of Third ACM Symposium on Symbolic and Algebraic Computation, SYMSAC 1976, pp. 219–226. ACM, New York (1976)Google Scholar
- 12.Coladon, T.: OpenF4 implementation (2018). https://github.com/nauotit/openf4