Package edu.jas.ufd

Class FactorAbsolute<C extends GcdRingElem<C>>

java.lang.Object
edu.jas.ufd.FactorAbstract<C>
edu.jas.ufd.FactorAbsolute<C>
Type Parameters:
C - coefficient type
All Implemented Interfaces:
Factorization<C>, Serializable
Direct Known Subclasses:
FactorAlgebraic, FactorAlgebraicPrim, FactorComplex, FactorModular, FactorModularBerlekamp, FactorRational

public abstract class FactorAbsolute<C extends GcdRingElem<C>> extends FactorAbstract<C>
Absolute factorization algorithms class. This class contains implementations of methods for factorization over algebraically closed fields. The required field extension is computed along with the factors. The methods have been tested for prime fields of characteristic zero, that is for BigRational. It might eventually also be used for prime fields of non-zero characteristic, that is with ModInteger. The field extension may yet not be minimal.
See Also:
  • Field Details

    • logger

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

      private static final boolean debug
  • Constructor Details

    • FactorAbsolute

      protected FactorAbsolute()
      No argument constructor. Note: can't use this constructor.
    • FactorAbsolute

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

    • toString

      public String toString()
      Get the String representation.
      Overrides:
      toString in class FactorAbstract<C extends GcdRingElem<C>>
      See Also:
    • isAbsoluteIrreducible

      public boolean isAbsoluteIrreducible(GenPolynomial<C> P)
      GenPolynomial test if is absolute irreducible.
      Parameters:
      P - GenPolynomial.
      Returns:
      true if P is absolute irreducible, else false.
    • baseFactorsAbsolute

      public FactorsMap<C> baseFactorsAbsolute(GenPolynomial<C> P)
      GenPolynomial absolute base factorization of a polynomial.
      Parameters:
      P - univariate GenPolynomial.
      Returns:
      factors map container: [p_1 -> e_1, ..., p_k -> e_k] with P = prod_{i=1,...,k} p_i**e_i. Note: K(alpha) not yet minimal.
    • baseFactorsAbsoluteSquarefree

      public FactorsList<C> baseFactorsAbsoluteSquarefree(GenPolynomial<C> P)
      GenPolynomial absolute base factorization of a squarefree polynomial.
      Parameters:
      P - squarefree and primitive univariate GenPolynomial.
      Returns:
      factors list container: [p_1,...,p_k] with P = prod_{i=1, ..., k} p_i. Note: K(alpha) not yet minimal.
    • baseFactorsAbsoluteIrreducible

      public Factors<C> baseFactorsAbsoluteIrreducible(GenPolynomial<C> P)
      GenPolynomial base absolute factorization of a irreducible polynomial.
      Parameters:
      P - irreducible! univariate GenPolynomial.
      Returns:
      factors container: [p_1,...,p_k] with P = prod_{i=1, ..., k} p_i in K(alpha)[x] for suitable alpha and p_i irreducible over L[x], where K \subset K(alpha) \subset L is an algebraically closed field over K. Note: K(alpha) not yet minimal.
    • baseAlgebraicPartialFraction

      public PartialFraction<C> baseAlgebraicPartialFraction(GenPolynomial<C> A, GenPolynomial<C> P)
      Univariate GenPolynomial algebraic partial fraction decomposition, Absolute factorization for elementary integration algorithm to linear factors.
      Parameters:
      A - univariate GenPolynomial, deg(A) ≤ deg(P).
      P - univariate squarefree GenPolynomial, gcd(A,P) == 1.
      Returns:
      partial fraction container.
    • baseAlgebraicPartialFractionIrreducibleAbsolute

      public PartialFraction<C> baseAlgebraicPartialFractionIrreducibleAbsolute(GenPolynomial<C> A, GenPolynomial<C> P)
      Univariate GenPolynomial algebraic partial fraction decomposition, via absolute factorization to linear factors.
      Parameters:
      A - univariate GenPolynomial, deg(A) < deg(P).
      P - univariate irreducible GenPolynomial, gcd(A,P) == 1.
      Returns:
      partial fraction container.
    • factorsAbsolute

      public FactorsMap<C> factorsAbsolute(GenPolynomial<C> P)
      GenPolynomial absolute factorization of a polynomial.
      Parameters:
      P - GenPolynomial.
      Returns:
      factors map container: [p_1 -> e_1, ..., p_k -> e_k] with P = prod_{i=1,...,k} p_i**e_i. Note: K(alpha) not yet minimal.
    • factorsAbsoluteSquarefree

      public FactorsList<C> factorsAbsoluteSquarefree(GenPolynomial<C> P)
      GenPolynomial absolute factorization of a squarefree polynomial.
      Parameters:
      P - squarefree and primitive GenPolynomial.
      Returns:
      factors list container: [p_1,...,p_k] with P = prod_{i=1, ..., k} p_i. Note: K(alpha) not yet minimal.
    • factorsAbsoluteIrreducible

      public Factors<C> factorsAbsoluteIrreducible(GenPolynomial<C> P)
      GenPolynomial absolute factorization of a irreducible polynomial.
      Parameters:
      P - irreducible! GenPolynomial.
      Returns:
      factors container: [p_1,...,p_k] with P = prod_{i=1, ..., k} p_i in K(alpha)[x] for suitable alpha and p_i irreducible over L[x], where K \subset K(alpha) \subset L is an algebraically closed field over K. Note: K(alpha) not yet minimal.
    • isAbsoluteFactorization

      public boolean isAbsoluteFactorization(Factors<C> facs)
      GenPolynomial is absolute factorization.
      Parameters:
      facs - factors container.
      Returns:
      true if P = prod_{i=1,...,r} p_i, else false.
    • isAbsoluteFactorization

      public boolean isAbsoluteFactorization(FactorsList<C> facs)
      GenPolynomial is absolute factorization.
      Parameters:
      facs - factors list container.
      Returns:
      true if P = prod_{i=1,...,r} p_i, else false.
    • isAbsoluteFactorization

      public boolean isAbsoluteFactorization(FactorsMap<C> facs)
      GenPolynomial is absolute factorization.
      Parameters:
      facs - factors map container.
      Returns:
      true if P = prod_{i=1,...,k} p_i**e_i , else false.