Package edu.jas.ufd

Class FactorModularBerlekamp<MOD extends GcdRingElem<MOD>>

java.lang.Object
edu.jas.ufd.FactorAbstract<MOD>
edu.jas.ufd.FactorAbsolute<MOD>
edu.jas.ufd.FactorModularBerlekamp<MOD>
All Implemented Interfaces:
Factorization<MOD>, Serializable

public class FactorModularBerlekamp<MOD extends GcdRingElem<MOD>> extends FactorAbsolute<MOD>
Modular coefficients Berlekamp factorization algorithms. This class implements Berlekamp, Cantor and Zassenhaus factorization methods for polynomials over (prime) modular integers.
See Also:
  • Field Details

    • logger

      private static final org.apache.logging.log4j.Logger logger
  • Constructor Details

    • FactorModularBerlekamp

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

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

    • 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>>
      Parameters:
      P - squarefree and monic! GenPolynomial.
      Returns:
      [p_1,...,p_k] with P = prod_{i=1,...,r} p_i.
    • baseFactorsSquarefreeSmallPrime

      public List<GenPolynomial<MOD>> baseFactorsSquarefreeSmallPrime(GenPolynomial<MOD> P)
      GenPolynomial base factorization of a squarefree polynomial. Small prime version of Berlekamps algorithm.
      Parameters:
      P - squarefree and monic! GenPolynomial.
      Returns:
      [p_1,...,p_k] with P = prod_{i=1,...,r} p_i.
    • baseFactorsSquarefreeBigPrime

      public List<GenPolynomial<MOD>> baseFactorsSquarefreeBigPrime(GenPolynomial<MOD> P)
      GenPolynomial base factorization of a squarefree polynomial. Big prime version of Berlekamps algorithm.
      Parameters:
      P - squarefree and monic! GenPolynomial.
      Returns:
      [p_1,...,p_k] with P = prod_{i=1,...,r} p_i.