edu.jas.ufd
Class FactorAbsolute<C extends GcdRingElem<C>>

java.lang.Object
  extended by edu.jas.ufd.FactorAbstract<C>
      extended by edu.jas.ufd.FactorAbsolute<C>
Type Parameters:
C - coefficient type
All Implemented Interfaces:
Factorization<C>, java.io.Serializable
Direct Known Subclasses:
FactorAlgebraic, FactorAlgebraicPrim, FactorComplex, FactorModular, 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.

Author:
Heinz Kredel
See Also:
Serialized Form

Field Summary
 
Fields inherited from class edu.jas.ufd.FactorAbstract
engine, sengine
 
Constructor Summary
protected FactorAbsolute()
          No argument constructor.
  FactorAbsolute(RingFactory<C> cfac)
          Constructor.
 
Method Summary
 PartialFraction<C> baseAlgebraicPartialFraction(GenPolynomial<C> A, GenPolynomial<C> P)
          Univariate GenPolynomial algebraic partial fraction decomposition, Absolute factorization or Rothstein-Trager algorithm.
 PartialFraction<C> baseAlgebraicPartialFractionIrreducible(GenPolynomial<C> A, GenPolynomial<C> P)
          Deprecated. 
 PartialFraction<C> baseAlgebraicPartialFractionIrreducibleAbsolute(GenPolynomial<C> A, GenPolynomial<C> P)
          Univariate GenPolynomial algebraic partial fraction decomposition, via absolute factorization to linear factors.
 FactorsMap<C> baseFactorsAbsolute(GenPolynomial<C> P)
          GenPolynomial absolute base factorization of a polynomial.
 Factors<C> baseFactorsAbsoluteIrreducible(GenPolynomial<C> P)
          GenPolynomial base absolute factorization of a irreducible polynomial.
 FactorsList<C> baseFactorsAbsoluteSquarefree(GenPolynomial<C> P)
          GenPolynomial absolute base factorization of a squarefree polynomial.
 FactorsMap<C> factorsAbsolute(GenPolynomial<C> P)
          GenPolynomial absolute factorization of a polynomial.
 Factors<C> factorsAbsoluteIrreducible(GenPolynomial<C> P)
          GenPolynomial absolute factorization of a irreducible polynomial.
 FactorsList<C> factorsAbsoluteSquarefree(GenPolynomial<C> P)
          GenPolynomial absolute factorization of a squarefree polynomial.
 boolean isAbsoluteFactorization(Factors<C> facs)
          GenPolynomial is absolute factorization.
 boolean isAbsoluteFactorization(FactorsList<C> facs)
          GenPolynomial is absolute factorization.
 boolean isAbsoluteFactorization(FactorsMap<C> facs)
          GenPolynomial is absolute factorization.
 boolean isAbsoluteIrreducible(GenPolynomial<C> P)
          GenPolynomial test if is absolute irreducible.
 java.lang.String toString()
          Get the String representation.
 
Methods inherited from class edu.jas.ufd.FactorAbstract
baseFactors, baseFactorsRadical, baseFactorsSquarefree, basePrimitivePart, factors, factorsDegree, factorsRadical, factorsRadical, factorsSquarefree, isFactorization, isFactorization, isIrreducible, isRecursiveFactorization, isReducible, isSquarefree, primitivePart, recursiveFactors, recursiveFactorsSquarefree, squarefreeFactors, squarefreePart
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

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 Detail

toString

public java.lang.String toString()
Get the String representation.

Overrides:
toString in class FactorAbstract<C extends GcdRingElem<C>>
See Also:
Object.toString()

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 or Rothstein-Trager algorithm.

Parameters:
A - univariate GenPolynomial, deg(A) < deg(P).
P - univariate squarefree GenPolynomial, gcd(A,P) == 1.
Returns:
partial fraction container.

baseAlgebraicPartialFractionIrreducible

@Deprecated
public PartialFraction<C> baseAlgebraicPartialFractionIrreducible(GenPolynomial<C> A,
                                                                             GenPolynomial<C> P)
Deprecated. 

Univariate GenPolynomial algebraic partial fraction decomposition, Rothstein-Trager algorithm.

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 squarefree 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.