edu.jas.ufd
Class FactorInteger<MOD extends GcdRingElem<MOD> & Modular>

java.lang.Object
  extended by edu.jas.ufd.FactorAbstract<BigInteger>
      extended by edu.jas.ufd.FactorInteger<MOD>
Type Parameters:
MOD -
All Implemented Interfaces:
Factorization<BigInteger>, java.io.Serializable

public class FactorInteger<MOD extends GcdRingElem<MOD> & Modular>
extends FactorAbstract<BigInteger>

Author:
kredel
See Also:
Serialized Form

Field Summary
protected  GreatestCommonDivisorAbstract<MOD> mengine
          Gcd engine for modular base coefficients.
protected  FactorAbstract<MOD> mfactor
          Factorization engine for modular base coefficients.
 
Fields inherited from class edu.jas.ufd.FactorAbstract
engine, sengine
 
Constructor Summary
FactorInteger()
          No argument constructor.
FactorInteger(RingFactory<BigInteger> cfac)
          Constructor.
 
Method Summary
 java.util.List<GenPolynomial<BigInteger>> baseFactorsSquarefree(GenPolynomial<BigInteger> P)
          GenPolynomial base factorization of a squarefree polynomial.
static
<C extends RingElem<C>>
long
degreeSum(java.util.List<GenPolynomial<C>> L)
          Sum of all degrees.
 java.util.BitSet factorDegrees(java.util.List<ExpVector> E, int deg)
          BitSet for factor degree list.
 java.util.List<GenPolynomial<BigInteger>> factorsSquarefree(GenPolynomial<BigInteger> P)
          GenPolynomial factorization of a multivariate squarefree polynomial, using Hensel lifting if possible.
 java.util.List<GenPolynomial<BigInteger>> factorsSquarefreeHensel(GenPolynomial<BigInteger> P)
          GenPolynomial factorization of a multivariate squarefree polynomial, using Hensel lifting.
 
Methods inherited from class edu.jas.ufd.FactorAbstract
baseFactors, baseFactorsRadical, basePrimitivePart, factors, factorsDegree, factorsRadical, factorsRadical, isFactorization, isFactorization, isIrreducible, isRecursiveFactorization, isReducible, isSquarefree, primitivePart, recursiveFactors, recursiveFactorsSquarefree, squarefreeFactors, squarefreePart, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

mfactor

protected final FactorAbstract<MOD extends GcdRingElem<MOD> & Modular> mfactor
Factorization engine for modular base coefficients.


mengine

protected final GreatestCommonDivisorAbstract<MOD extends GcdRingElem<MOD> & Modular> mengine
Gcd engine for modular base coefficients.

Constructor Detail

FactorInteger

public FactorInteger()
No argument constructor.


FactorInteger

public FactorInteger(RingFactory<BigInteger> cfac)
Constructor.

Parameters:
cfac - coefficient ring factory.
Method Detail

baseFactorsSquarefree

public java.util.List<GenPolynomial<BigInteger>> baseFactorsSquarefree(GenPolynomial<BigInteger> P)
GenPolynomial base factorization of a squarefree polynomial.

Specified by:
baseFactorsSquarefree in class FactorAbstract<BigInteger>
Parameters:
P - squarefree and primitive! GenPolynomial.
Returns:
[p_1,...,p_k] with P = prod_{i=1, ..., k} p_i.

factorDegrees

public java.util.BitSet factorDegrees(java.util.List<ExpVector> E,
                                      int deg)
BitSet for factor degree list.

Parameters:
E - exponent vector list.
Returns:
b_0,...,b_k} a BitSet of possible factor degrees.

degreeSum

public static <C extends RingElem<C>> long degreeSum(java.util.List<GenPolynomial<C>> L)
Sum of all degrees.

Parameters:
L - univariate polynomial list.
Returns:
sum deg(p) for p in L.

factorsSquarefree

public java.util.List<GenPolynomial<BigInteger>> factorsSquarefree(GenPolynomial<BigInteger> P)
GenPolynomial factorization of a multivariate squarefree polynomial, using Hensel lifting if possible.

Specified by:
factorsSquarefree in interface Factorization<BigInteger>
Overrides:
factorsSquarefree in class FactorAbstract<BigInteger>
Parameters:
P - squarefree and primitive! (respectively monic) multivariate GenPolynomial over the integers.
Returns:
[p_1,...,p_k] with P = prod_{i=1,...,r} p_i.

factorsSquarefreeHensel

public java.util.List<GenPolynomial<BigInteger>> factorsSquarefreeHensel(GenPolynomial<BigInteger> P)
GenPolynomial factorization of a multivariate squarefree polynomial, using Hensel lifting.

Parameters:
P - squarefree and primitive! (respectively monic) multivariate GenPolynomial over the integers.
Returns:
[p_1,...,p_k] with P = prod_{i=1,...,r} p_i.