Package edu.jas.ufd

Interface Factorization<C extends GcdRingElem<C>>

All Superinterfaces:
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 Serializable
Factorization algorithms interface.

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);
 
See Also:
  • Method Details

    • 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 exists.
      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

      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

      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

      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

      SortedMap<GenPolynomial<C>,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, 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, SortedMap<GenPolynomial<C>,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.