Package edu.jas.ufd
Interface Factorization<C extends GcdRingElem<C>>
-
- All Superinterfaces:
java.io.Serializable
- All Known Implementing Classes:
FactorAbsolute,FactorAbstract,FactorAlgebraic,FactorAlgebraicPrim,FactorComplex,FactorInteger,FactorModular,FactorModularBerlekamp,FactorQuotient,FactorRational,FactorRealAlgebraic,FactorRealReal
public interface Factorization<C extends GcdRingElem<C>> extends java.io.Serializable
Factorization algorithms interface.Usage: To create objects that implement the
Factorizationinterface use theFactorFactory. It will select an appropriate implementation based on the types of polynomial coefficients C. To obtain an implementation usegetImplementation(), it returns an object of a class which extends theFactorAbstractclass which implements theFactorizationinterface.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);
- Author:
- Heinz Kredel
- See Also:
FactorFactory.getImplementation(edu.jas.arith.ModIntegerRing)
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description 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.booleanisFactorization(GenPolynomial<C> P, java.util.List<GenPolynomial<C>> F)GenPolynomial is factorization.booleanisFactorization(GenPolynomial<C> P, java.util.SortedMap<GenPolynomial<C>,java.lang.Long> F)GenPolynomial is factorization.booleanisIrreducible(GenPolynomial<C> P)GenPolynomial test if is irreducible.booleanisReducible(GenPolynomial<C> P)GenPolynomial test if a non trivial factorization exsists.booleanisSquarefree(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- GenPolynomialF- = [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.
-
-