Package edu.jas.ufd

Class FactorFraction<C extends GcdRingElem<C>,D extends GcdRingElem<D> & QuotPair<GenPolynomial<C>>>

java.lang.Object
edu.jas.ufd.FactorFraction<C,D>

public class FactorFraction<C extends GcdRingElem<C>,D extends GcdRingElem<D> & QuotPair<GenPolynomial<C>>> extends Object
Fraction factorization algorithms. This class implements factorization methods for fractions represended as pairs of polynomials.
  • Field Details

  • Constructor Details

    • FactorFraction

      protected FactorFraction()
      No argument constructor.
    • FactorFraction

      public FactorFraction(QuotPairFactory<GenPolynomial<C>,D> fac)
      Constructor.
      Parameters:
      fac - coefficient quotient ring factory.
    • FactorFraction

      public FactorFraction(QuotPairFactory<GenPolynomial<C>,D> fac, FactorAbstract<C> nengine)
      Constructor.
      Parameters:
      fac - coefficient quotient ring factory.
      nengine - factorization engine for polynomials over base coefficients.
  • Method Details

    • toString

      public String toString()
      Get the String representation.
      Overrides:
      toString in class Object
      See Also:
    • isIrreducible

      public boolean isIrreducible(D P)
      Test if a quotient pair is irreducible.
      Parameters:
      P - quotient pair (num,den), with gcd(num,den) == 1.
      Returns:
      true if P is irreducible, else false.
    • isReducible

      public boolean isReducible(D P)
      Test if a non trivial factorization exists.
      Parameters:
      P - quotient pair (num,den), with gcd(num,den) == 1.
      Returns:
      true if P is reducible, else false.
    • factors

      public SortedMap<D,Long> factors(D P)
      Quotient pair factorization.
      Parameters:
      P - quotient pair (num,den), with gcd(num,den) == 1.
      Returns:
      [p_1 -> e_1, ..., p_k -> e_k] with P = prod_{i=1,...,k} p_i**e_i.
    • isFactorization

      public boolean isFactorization(D P, SortedMap<D,Long> F)
      Test quotient pair factorization.
      Parameters:
      P - quotient pair.
      F - = [p_1 -> e_1, ..., p_k -> e_k].
      Returns:
      true if P = prod_{i=1,...,k} p_i**e_i, else false.