Unique factorization domains in the Java computer algebra system.

*(English)*Zbl 1302.13020
Sturm, Thomas (ed.) et al., Automated deduction in geometry. 7th international workshop, ADG 2008, Shanghai, China, September 22–24, 2008. Revised papers. Berlin: Springer (ISBN 978-3-642-21045-7/pbk). Lecture Notes in Computer Science 6301. Lecture Notes in Artificial Intelligence, 86-115 (2011).

Summary: This paper describes the implementation of recursive algorithms in unique factorization domains, namely multivariate polynomial greatest common divisors (gcd) and factorization into irreducible parts in the Java computer algebra library (JAS). The implementation of gcds, resultants and factorization is part of the essential building blocks for any computation in algebraic geometry, in particular in automated deduction in geometry. There are various implementations of these algorithms in procedural programming languages. Our aim is an implementation in a modern object oriented programming language with generic data types, as it is provided by Java programming language. We exemplify that the type design and implementation of JAS is suitable for the implementation of several greatest common divisor algorithms and factorization of multivariate polynomials. Due to the design we can employ this package in very general settings not commonly seen in other computer algebra systems. As for example, in the coefficient arithmetic for advanced GrĂ¶bner basis computations like in polynomial rings over rational function fields or (finite, commutative) regular rings. The new package provides factory methods for the selection of one of the several implementations for non experts. Further we introduce a parallel proxy for gcd implementations which runs different implementations concurrently.

For the entire collection see [Zbl 1214.68020].

For the entire collection see [Zbl 1214.68020].

##### MSC:

13F15 | Commutative rings defined by factorization properties (e.g., atomic, factorial, half-factorial) |

68N15 | Theory of programming languages |