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

java.lang.Object
  extended by edu.jas.ufd.GreatestCommonDivisorAbstract<C>
All Implemented Interfaces:
GreatestCommonDivisor<C>
Direct Known Subclasses:
GCDProxy, GreatestCommonDivisorModEval, GreatestCommonDivisorModular, GreatestCommonDivisorPrimitive, GreatestCommonDivisorSimple, GreatestCommonDivisorSubres

public abstract class GreatestCommonDivisorAbstract<C extends GcdRingElem<C>>
extends java.lang.Object
implements GreatestCommonDivisor<C>

Greatest common divisor algorithms.

Author:
Heinz Kredel

Constructor Summary
GreatestCommonDivisorAbstract()
           
 
Method Summary
 C baseContent(GenPolynomial<C> P)
          GenPolynomial base coefficient content.
abstract  GenPolynomial<C> baseGcd(GenPolynomial<C> P, GenPolynomial<C> S)
          Univariate GenPolynomial greatest common divisor.
 GenPolynomial<C> basePrimitivePart(GenPolynomial<C> P)
          GenPolynomial base coefficient primitive part.
 java.util.SortedMap<java.lang.Integer,GenPolynomial<C>> baseSquarefreeFactors(GenPolynomial<C> P)
          GenPolynomial polynomial squarefee factorization.
 GenPolynomial<C> baseSquarefreePart(GenPolynomial<C> P)
          GenPolynomial polynomial greatest squarefee divisor.
 GenPolynomial<C> content(GenPolynomial<C> P)
          GenPolynomial content.
 GenPolynomial<C> divide(GenPolynomial<C> a, C b)
          GenPolynomial division.
 C gcd(C a, C b)
          Coefficient greatest common divisor.
 GenPolynomial<C> gcd(GenPolynomial<C> P, GenPolynomial<C> S)
          GenPolynomial greatest common divisor.
 GenPolynomial<C> lcm(GenPolynomial<C> P, GenPolynomial<C> S)
          GenPolynomial least common multiple.
 GenPolynomial<C> primitivePart(GenPolynomial<C> P)
          GenPolynomial primitive part.
 GenPolynomial<C> recursiveContent(GenPolynomial<GenPolynomial<C>> P)
          GenPolynomial recursive content.
abstract  GenPolynomial<GenPolynomial<C>> recursiveGcd(GenPolynomial<GenPolynomial<C>> P, GenPolynomial<GenPolynomial<C>> S)
          Univariate GenPolynomial recursive greatest common divisor.
 GenPolynomial<GenPolynomial<C>> recursivePrimitivePart(GenPolynomial<GenPolynomial<C>> P)
          GenPolynomial recursive primitive part.
 java.util.SortedMap<java.lang.Integer,GenPolynomial<GenPolynomial<C>>> recursiveSquarefreeFactors(GenPolynomial<GenPolynomial<C>> P)
          GenPolynomial recursive polynomial squarefee factorization.
 GenPolynomial<GenPolynomial<C>> recursiveSquarefreePart(GenPolynomial<GenPolynomial<C>> P)
          GenPolynomial recursive polynomial greatest squarefee divisor.
 GenPolynomial<C> resultant(GenPolynomial<C> P, GenPolynomial<C> S)
          GenPolynomial resultant.
 java.util.SortedMap<java.lang.Integer,GenPolynomial<C>> squarefreeFactors(GenPolynomial<C> P)
          GenPolynomial squarefree factorization.
 GenPolynomial<C> squarefreePart(GenPolynomial<C> P)
          GenPolynomial greatest squarefree divisor.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GreatestCommonDivisorAbstract

public GreatestCommonDivisorAbstract()
Method Detail

baseContent

public C baseContent(GenPolynomial<C> P)
GenPolynomial base coefficient content.

Parameters:
P - GenPolynomial.
Returns:
cont(P).

basePrimitivePart

public GenPolynomial<C> basePrimitivePart(GenPolynomial<C> P)
GenPolynomial base coefficient primitive part.

Parameters:
P - GenPolynomial.
Returns:
pp(P).

baseGcd

public abstract GenPolynomial<C> baseGcd(GenPolynomial<C> P,
                                         GenPolynomial<C> S)
Univariate GenPolynomial greatest common divisor. Uses sparse pseudoRemainder for remainder.

Parameters:
P - univariate GenPolynomial.
S - univariate GenPolynomial.
Returns:
gcd(P,S).

baseSquarefreePart

public GenPolynomial<C> baseSquarefreePart(GenPolynomial<C> P)
GenPolynomial polynomial greatest squarefee divisor.

Parameters:
P - GenPolynomial.
Returns:
squarefree(pp(P)).

baseSquarefreeFactors

public java.util.SortedMap<java.lang.Integer,GenPolynomial<C>> baseSquarefreeFactors(GenPolynomial<C> P)
GenPolynomial polynomial squarefee factorization.

Parameters:
P - primitive! GenPolynomial.
Returns:
squarefreeFactors(P).

recursiveContent

public GenPolynomial<C> recursiveContent(GenPolynomial<GenPolynomial<C>> P)
GenPolynomial recursive content.

Parameters:
P - recursive GenPolynomial.
Returns:
cont(P).

recursivePrimitivePart

public GenPolynomial<GenPolynomial<C>> recursivePrimitivePart(GenPolynomial<GenPolynomial<C>> P)
GenPolynomial recursive primitive part.

Parameters:
P - recursive GenPolynomial.
Returns:
pp(P).

recursiveGcd

public abstract GenPolynomial<GenPolynomial<C>> recursiveGcd(GenPolynomial<GenPolynomial<C>> P,
                                                             GenPolynomial<GenPolynomial<C>> S)
Univariate GenPolynomial recursive greatest common divisor. Uses pseudoRemainder for remainder.

Parameters:
P - univariate recursive GenPolynomial.
S - univariate recursive GenPolynomial.
Returns:
gcd(P,S).

recursiveSquarefreePart

public GenPolynomial<GenPolynomial<C>> recursiveSquarefreePart(GenPolynomial<GenPolynomial<C>> P)
GenPolynomial recursive polynomial greatest squarefee divisor.

Parameters:
P - recursive GenPolynomial.
Returns:
squarefree(pp(P)).

recursiveSquarefreeFactors

public java.util.SortedMap<java.lang.Integer,GenPolynomial<GenPolynomial<C>>> recursiveSquarefreeFactors(GenPolynomial<GenPolynomial<C>> P)
GenPolynomial recursive polynomial squarefee factorization.

Parameters:
P - primitive recursive GenPolynomial.
Returns:
squarefreeFactors(P).

content

public GenPolynomial<C> content(GenPolynomial<C> P)
GenPolynomial content.

Specified by:
content in interface GreatestCommonDivisor<C extends GcdRingElem<C>>
Parameters:
P - GenPolynomial.
Returns:
cont(P).

primitivePart

public GenPolynomial<C> primitivePart(GenPolynomial<C> P)
GenPolynomial primitive part.

Specified by:
primitivePart in interface GreatestCommonDivisor<C extends GcdRingElem<C>>
Parameters:
P - GenPolynomial.
Returns:
pp(P).

divide

public GenPolynomial<C> divide(GenPolynomial<C> a,
                               C b)
GenPolynomial division. Indirection to GenPolynomial method.

Parameters:
a - GenPolynomial.
b - coefficient.
Returns:
a/b.

gcd

public C gcd(C a,
             C b)
Coefficient greatest common divisor. Indirection to coefficient method.

Parameters:
a - coefficient.
b - coefficient.
Returns:
gcd(a,b).

gcd

public GenPolynomial<C> gcd(GenPolynomial<C> P,
                            GenPolynomial<C> S)
GenPolynomial greatest common divisor.

Specified by:
gcd in interface GreatestCommonDivisor<C extends GcdRingElem<C>>
Parameters:
P - GenPolynomial.
S - GenPolynomial.
Returns:
gcd(P,S).

lcm

public GenPolynomial<C> lcm(GenPolynomial<C> P,
                            GenPolynomial<C> S)
GenPolynomial least common multiple.

Specified by:
lcm in interface GreatestCommonDivisor<C extends GcdRingElem<C>>
Parameters:
P - GenPolynomial.
S - GenPolynomial.
Returns:
lcm(P,S).

squarefreePart

public GenPolynomial<C> squarefreePart(GenPolynomial<C> P)
GenPolynomial greatest squarefree divisor.

Specified by:
squarefreePart in interface GreatestCommonDivisor<C extends GcdRingElem<C>>
Parameters:
P - GenPolynomial.
Returns:
squarefree(pp(P)).

squarefreeFactors

public java.util.SortedMap<java.lang.Integer,GenPolynomial<C>> squarefreeFactors(GenPolynomial<C> P)
GenPolynomial squarefree factorization.

Specified by:
squarefreeFactors in interface GreatestCommonDivisor<C extends GcdRingElem<C>>
Parameters:
P - primitive GenPolynomial.
Returns:
squarefreeFactors(P).

resultant

public GenPolynomial<C> resultant(GenPolynomial<C> P,
                                  GenPolynomial<C> S)
GenPolynomial resultant.

Specified by:
resultant in interface GreatestCommonDivisor<C extends GcdRingElem<C>>
Parameters:
P - GenPolynomial.
S - GenPolynomial.
Returns:
res(P,S).