Skip navigation links

Package edu.jas.ufd

Unique factorization domain package.

See: Description

Package edu.jas.ufd Description

Unique factorization domain package.

This package contains classes for polynomials rings as unique factorization domains. Provided methods with interface GreatestCommonDivisor are e.g. greatest common divisors gcd(), primitive part primitivePart() or coPrime(). The different classes implement variants of polynomial remainder sequences (PRS) and modular methods. Interface Squarefree provides the greatest squarefree factor squarefreeFactor() and a complete squarefree decompostion can be obtained with method squarefreeFactors(). There is a Factorization interface with an FactorAbstract class with common codes. Factorization of univariate polynomials exists for several coefficient rings: modulo primes in class FactorModular, over integers in class FactorInteger, over rational numbers in class FactorRational, over algebraic numbers in class FactorAlgebraic<C> and over rational functions in class FactorQuotient<C> (where for the last two classes C can be any other ring for which the FactorFactory. getImplementation returns an implementation). Multivatiate polynomials over the integers (and rational numbers) are factored using the algorithm of P. Wang. For other coeffcients the multivatiate polynomials are reduced to univariate polynomials via Kronecker substitution. The rational function class Quotient computes quotients of polynomials reduced to lowest terms.

To choose the correct implementation always use the factory classes GCDFactory, SquarefreeFactory and FactorFactory with methods getImplementation() or getProxy(). These methods will take care of all possible (implemented) coefficient rings properties. The polynomial coefficients must implement the GcdRingElem interface and so must allow greatest common divisor computations. Greatest common divisor computation is completely generic and works for any implemented integral domain. If special, optimized implementations exist they will be used. Squarefree decomposition is also completely generic and works for any implemented integral domain. There are no special, optimized implementations. Factorization is generic relative to the implemented ring constructions: algebraic field extensions and transcendent field extensions. Implemented base cases are modular coefficient, integer coefficients and rational number coefficients.

The implementation follows Geddes & Czapor & Labahn Algorithms for Computer Algebra and Cohen A Curse in Computational Algebraic Number Theory. See also Kaltofen Factorization of Polynomials in Computing Supplement, Springer, 1982, Davenport & Gianni & Trager Scratchpad's View of Algebra II: A Categorical View of Factorization in ISSAC'91 and the ALDES/SAC2 code as contained in MAS.


Heinz Kredel

Last modified: Fri Sep 21 21:56:48 CEST 2012

$Id: package.html 4215 2012-09-21 21:56:08Z kredel $

Skip navigation links