edu.jas.ufd
Interface Factorization<C extends GcdRingElem<C>>

Type Parameters:
C - coefficient type
All Superinterfaces:
java.io.Serializable
All Known Implementing Classes:
FactorAbsolute, FactorAbstract, FactorAlgebraic, FactorAlgebraicPrim, FactorComplex, FactorInteger, FactorModular, FactorQuotient, FactorRational, FactorRealAlgebraic, FactorRealReal

public interface Factorization<C extends GcdRingElem<C>>
extends java.io.Serializable

Factorization algorithms interface.

Author:
Heinz Kredel
See Also:
FactorFactory.getImplementation(edu.jas.arith.ModIntegerRing)
Usage
To create objects that implement the Factorization interface use the FactorFactory. It will select an appropriate implementation based on the types of polynomial coefficients C. To obtain an implementation use getImplementation(), it returns an object of a class which extends the FactorAbstract class which implements the Factorization interface.
 Factorization<CT> engine;
 engine = FactorFactory.<CT> getImplementation(cofac);
 c = engine.factors(a);
 
For example, if the coefficient type is BigInteger, the usage looks like
 BigInteger cofac = new BigInteger();
 Factorization<BigInteger> engine;
 engine = FactorFactory.getImplementation(cofac);
 Sm = engine.factors(poly);
 

Method Summary
 java.util.SortedMap<GenPolynomial<C>,java.lang.Long> factors(GenPolynomial<C> P)
          GenPolynomial factorization.
 java.util.List<GenPolynomial<C>> factorsRadical(GenPolynomial<C> P)
          GenPolynomial factorization ignoring multiplicities.
 java.util.List<GenPolynomial<C>> factorsSquarefree(GenPolynomial<C> P)
          GenPolynomial factorization of a squarefree polynomial.
 boolean isFactorization(GenPolynomial<C> P, java.util.List<GenPolynomial<C>> F)
          GenPolynomial is factorization.
 boolean isFactorization(GenPolynomial<C> P, java.util.SortedMap<GenPolynomial<C>,java.lang.Long> F)
          GenPolynomial is factorization.
 boolean isIrreducible(GenPolynomial<C> P)
          GenPolynomial test if is irreducible.
 boolean isReducible(GenPolynomial<C> P)
          GenPolynomial test if a non trivial factorization exsists.
 boolean isSquarefree(GenPolynomial<C> P)
          GenPolynomial test if is squarefree.
 java.util.SortedMap<GenPolynomial<C>,java.lang.Long> squarefreeFactors(GenPolynomial<C> P)
          GenPolynomial squarefree factorization.
 GenPolynomial<C> squarefreePart(GenPolynomial<C> P)
          GenPolynomial greatest squarefree divisor.
 

Method Detail

isIrreducible

boolean isIrreducible(GenPolynomial<C> P)
GenPolynomial test if is irreducible.

Parameters:
P - GenPolynomial.
Returns:
true if P is irreducible, else false.

isReducible

boolean isReducible(GenPolynomial<C> P)
GenPolynomial test if a non trivial factorization exsists.

Parameters:
P - GenPolynomial.
Returns:
true if P is reducible, else false.

isSquarefree

boolean isSquarefree(GenPolynomial<C> P)
GenPolynomial test if is squarefree.

Parameters:
P - GenPolynomial.
Returns:
true if P is squarefree, else false.

factorsSquarefree

java.util.List<GenPolynomial<C>> factorsSquarefree(GenPolynomial<C> P)
GenPolynomial factorization of a squarefree polynomial.

Parameters:
P - squarefree and primitive! or monic! GenPolynomial.
Returns:
[p_1,...,p_k] with P = prod_{i=1,...,r} p_i.

factors

java.util.SortedMap<GenPolynomial<C>,java.lang.Long> factors(GenPolynomial<C> P)
GenPolynomial factorization.

Parameters:
P - GenPolynomial.
Returns:
[p_1 -> e_1, ..., p_k -> e_k] with P = prod_{i=1,...,k} p_i**e_i.

factorsRadical

java.util.List<GenPolynomial<C>> factorsRadical(GenPolynomial<C> P)
GenPolynomial factorization ignoring multiplicities.

Parameters:
P - GenPolynomial.
Returns:
[p_1, ..., p_k] with P = prod_{i=1,...,k} p_i**{e_i} for some e_i.

squarefreePart

GenPolynomial<C> squarefreePart(GenPolynomial<C> P)
GenPolynomial greatest squarefree divisor.

Parameters:
P - GenPolynomial.
Returns:
squarefree(P).

squarefreeFactors

java.util.SortedMap<GenPolynomial<C>,java.lang.Long> squarefreeFactors(GenPolynomial<C> P)
GenPolynomial squarefree factorization.

Parameters:
P - GenPolynomial.
Returns:
[p_1 -> e_1, ..., p_k -> e_k] with P = prod_{i=1,...,k} p_i^{e_i} and p_i squarefree.

isFactorization

boolean isFactorization(GenPolynomial<C> P,
                        java.util.List<GenPolynomial<C>> F)
GenPolynomial is factorization.

Parameters:
P - GenPolynomial
F - = [p_1,...,p_k].
Returns:
true if P = prod_{i=1,...,r} p_i, else false.

isFactorization

boolean isFactorization(GenPolynomial<C> P,
                        java.util.SortedMap<GenPolynomial<C>,java.lang.Long> F)
GenPolynomial is factorization.

Parameters:
P - GenPolynomial.
F - = [p_1 -> e_1, ..., p_k -> e_k].
Returns:
true if P = prod_{i=1,...,k} p_i**e_i , else false.