Package edu.jas.ufd

Class FactorModular<MOD extends GcdRingElem<MOD> & Modular>

All Implemented Interfaces:
Factorization<MOD>, Serializable

public class FactorModular<MOD extends GcdRingElem<MOD> & Modular> extends FactorAbsolute<MOD>
Modular coefficients factorization algorithms. This class implements factorization methods for polynomials over (prime) modular integers.
See Also:
  • Field Details

    • logger

      private static final org.apache.logging.log4j.Logger logger
    • debug

      private static final boolean debug
  • Constructor Details

    • FactorModular

      private FactorModular()
      No argument constructor, do not use.
    • FactorModular

      public FactorModular(RingFactory<MOD> cfac)
      Constructor.
      Parameters:
      cfac - coefficient ring factory.
  • Method Details

    • baseDistinctDegreeFactors

      public SortedMap<Long,GenPolynomial<MOD>> baseDistinctDegreeFactors(GenPolynomial<MOD> P)
      GenPolynomial base distinct degree factorization.
      Parameters:
      P - squarefree and monic GenPolynomial.
      Returns:
      [e_1 -> p_1, ..., e_k -> p_k] with P = prod_{i=1,...,k} p_i and p_i has only irreducible factors of degree e_i.
    • baseEqualDegreeFactors

      public List<GenPolynomial<MOD>> baseEqualDegreeFactors(GenPolynomial<MOD> P, long deg)
      GenPolynomial base equal degree factorization.
      Parameters:
      P - squarefree and monic GenPolynomial.
      deg - such that P has only irreducible factors of degree deg.
      Returns:
      [p_1,...,p_k] with P = prod_{i=1,...,r} p_i.
    • baseFactorsSquarefree

      public List<GenPolynomial<MOD>> baseFactorsSquarefree(GenPolynomial<MOD> P)
      GenPolynomial base factorization of a squarefree polynomial.
      Specified by:
      baseFactorsSquarefree in class FactorAbstract<MOD extends GcdRingElem<MOD> & Modular>
      Parameters:
      P - squarefree and monic! GenPolynomial.
      Returns:
      [p_1,...,p_k] with P = prod_{i=1,...,r} p_i.