Class GreatestCommonDivisorAbstract<C extends GcdRingElem<C>>
java.lang.Object
edu.jas.ufd.GreatestCommonDivisorAbstract<C>
- All Implemented Interfaces:
GreatestCommonDivisor<C>, Serializable
- Direct Known Subclasses:
GCDProxy, GreatestCommonDivisorFake, GreatestCommonDivisorHensel, GreatestCommonDivisorModEval, GreatestCommonDivisorModular, GreatestCommonDivisorPrimitive, GreatestCommonDivisorSimple, GreatestCommonDivisorSubres
public abstract class GreatestCommonDivisorAbstract<C extends GcdRingElem<C>>
extends Object
implements GreatestCommonDivisor<C>
Greatest common divisor algorithms.
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGenPolynomial base coefficient content.GenPolynomial<C>[]baseExtendedGcd(GenPolynomial<C> P, GenPolynomial<C> S) Univariate GenPolynomial extended greatest common divisor.abstract GenPolynomial<C> baseGcd(GenPolynomial<C> P, GenPolynomial<C> S) Univariate GenPolynomial greatest common divisor.GenPolynomial<C>[]baseGcdDiophant(GenPolynomial<C> P, GenPolynomial<C> S, GenPolynomial<C> c) Univariate GenPolynomial greatest common divisor diophantine version.GenPolynomial<C>[]baseHalfExtendedGcd(GenPolynomial<C> P, GenPolynomial<C> S) Univariate GenPolynomial half extended greatest common divisor.basePartialFraction(GenPolynomial<C> A, GenPolynomial<C> P, int e) Univariate GenPolynomial partial fraction decomposition.GenPolynomial<C>[]basePartialFraction(GenPolynomial<C> A, GenPolynomial<C> P, GenPolynomial<C> S) Univariate GenPolynomial partial fraction decomposition.basePartialFraction(GenPolynomial<C> A, List<GenPolynomial<C>> D) Univariate GenPolynomial partial fraction decomposition.basePartialFractionValue(GenPolynomial<C> P, int e, List<GenPolynomial<C>> F) Test for Univariate GenPolynomial partial fraction decomposition.GenPolynomial base coefficient primitive part.List of GenPolynomial base coefficient primitive part.GenPolynomial base recursive content.GenPolynomial base recursive primitive part.baseResultant(GenPolynomial<C> P, GenPolynomial<C> S) Univariate GenPolynomial resultant.content(GenPolynomial<C> P) GenPolynomial content.GenPolynomial<C>[]GenPolynomial content and primitive part.coPrime(GenPolynomial<C> a, List<GenPolynomial<C>> P) GenPolynomial co-prime list.coPrime(List<GenPolynomial<C>> A) GenPolynomial co-prime list.coPrimeRec(List<GenPolynomial<C>> A) GenPolynomial co-prime list.divide(GenPolynomial<C> a, C b) GenPolynomial division.Coefficient greatest common divisor.gcd(GenPolynomial<C> P, GenPolynomial<C> S) GenPolynomial greatest common divisor.gcd(List<GenPolynomial<C>> A) List of GenPolynomials greatest common divisor.booleanisBasePartialFraction(GenPolynomial<C> A, GenPolynomial<C> P, int e, List<GenPolynomial<C>> F) Test for Univariate GenPolynomial partial fraction decomposition.booleanisBasePartialFraction(GenPolynomial<C> A, List<GenPolynomial<C>> D, List<GenPolynomial<C>> F) Test for Univariate GenPolynomial partial fraction decomposition.booleanisCoPrime(List<GenPolynomial<C>> A) GenPolynomial test for co-prime list.booleanisCoPrime(List<GenPolynomial<C>> P, List<GenPolynomial<C>> A) GenPolynomial test for co-prime list of given list.lcm(GenPolynomial<C> P, GenPolynomial<C> S) GenPolynomial least common multiple.GenPolynomial primitive part.GenPolynomial recursive content.GenPolynomial recursive greatest common divisor.GenPolynomial recursive primitive part.List of recursive GenPolynomial base coefficient primitive part.GenPolynomial recursive resultant.abstract GenPolynomial<GenPolynomial<C>> Univariate GenPolynomial recursive greatest common divisor.Univariate GenPolynomial recursive resultant.resultant(GenPolynomial<C> P, GenPolynomial<C> S) GenPolynomial resultant.toString()Get the String representation.
-
Field Details
-
logger
private static final org.apache.logging.log4j.Logger logger -
debug
private static final boolean debug
-
-
Constructor Details
-
GreatestCommonDivisorAbstract
public GreatestCommonDivisorAbstract()
-
-
Method Details
-
toString
-
baseContent
GenPolynomial base coefficient content.- Parameters:
P- GenPolynomial.- Returns:
- cont(P).
-
basePrimitivePart
GenPolynomial base coefficient primitive part.- Parameters:
P- GenPolynomial.- Returns:
- pp(P).
-
basePrimitivePart
List of GenPolynomial base coefficient primitive part.- Parameters:
F- list of GenPolynomials.- Returns:
- pp(F).
-
baseGcd
Univariate GenPolynomial greatest common divisor. Uses sparse pseudoRemainder for remainder.- Parameters:
P- univariate GenPolynomial.S- univariate GenPolynomial.- Returns:
- gcd(P,S).
-
recursiveContent
GenPolynomial recursive content.- Parameters:
P- recursive GenPolynomial.- Returns:
- cont(P).
-
recursivePrimitivePart
GenPolynomial recursive primitive part.- Parameters:
P- recursive GenPolynomial.- Returns:
- pp(P).
-
recursivePrimitivePart
public List<GenPolynomial<GenPolynomial<C>>> recursivePrimitivePart(List<GenPolynomial<GenPolynomial<C>>> F) List of recursive GenPolynomial base coefficient primitive part.- Parameters:
F- list of recursive GenPolynomials.- Returns:
- pp(F).
-
baseRecursiveContent
GenPolynomial base recursive content.- Parameters:
P- recursive GenPolynomial.- Returns:
- baseCont(P).
-
baseRecursivePrimitivePart
public GenPolynomial<GenPolynomial<C>> baseRecursivePrimitivePart(GenPolynomial<GenPolynomial<C>> P) GenPolynomial base recursive primitive part.- Parameters:
P- recursive GenPolynomial.- Returns:
- basePP(P).
-
recursiveGcd
public GenPolynomial<GenPolynomial<C>> recursiveGcd(GenPolynomial<GenPolynomial<C>> P, GenPolynomial<GenPolynomial<C>> S) GenPolynomial recursive greatest common divisor. Uses pseudoRemainder for remainder.- Parameters:
P- recursive GenPolynomial.S- recursive GenPolynomial.- Returns:
- gcd(P,S).
-
recursiveUnivariateGcd
public abstract GenPolynomial<GenPolynomial<C>> recursiveUnivariateGcd(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).
-
content
GenPolynomial content.- Specified by:
contentin interfaceGreatestCommonDivisor<C extends GcdRingElem<C>>- Parameters:
P- GenPolynomial.- Returns:
- cont(P).
-
primitivePart
GenPolynomial primitive part.- Specified by:
primitivePartin interfaceGreatestCommonDivisor<C extends GcdRingElem<C>>- Parameters:
P- GenPolynomial.- Returns:
- pp(P).
-
contentPrimitivePart
GenPolynomial content and primitive part.- Parameters:
P- GenPolynomial.- Returns:
- { cont(P), pp(P) }
-
divide
GenPolynomial division. Indirection to GenPolynomial method.- Parameters:
a- GenPolynomial.b- coefficient.- Returns:
- a/b.
-
gcd
-
gcd
GenPolynomial greatest common divisor.- Specified by:
gcdin interfaceGreatestCommonDivisor<C extends GcdRingElem<C>>- Parameters:
P- GenPolynomial.S- GenPolynomial.- Returns:
- gcd(P,S).
-
lcm
GenPolynomial least common multiple.- Specified by:
lcmin interfaceGreatestCommonDivisor<C extends GcdRingElem<C>>- Parameters:
P- GenPolynomial.S- GenPolynomial.- Returns:
- lcm(P,S).
-
gcd
List of GenPolynomials greatest common divisor.- Parameters:
A- non empty list of GenPolynomials.- Returns:
- gcd(A_i).
-
baseResultant
Univariate GenPolynomial resultant.- Parameters:
P- univariate GenPolynomial.S- univariate GenPolynomial.- Returns:
- res(P,S).
- Throws:
UnsupportedOperationException- if there is no implementation in the sub-class.
-
recursiveUnivariateResultant
public GenPolynomial<GenPolynomial<C>> recursiveUnivariateResultant(GenPolynomial<GenPolynomial<C>> P, GenPolynomial<GenPolynomial<C>> S) Univariate GenPolynomial recursive resultant.- Parameters:
P- univariate recursive GenPolynomial.S- univariate recursive GenPolynomial.- Returns:
- res(P,S).
- Throws:
UnsupportedOperationException- if there is no implementation in the sub-class.
-
recursiveResultant
public GenPolynomial<GenPolynomial<C>> recursiveResultant(GenPolynomial<GenPolynomial<C>> P, GenPolynomial<GenPolynomial<C>> S) GenPolynomial recursive resultant.- Parameters:
P- univariate recursive GenPolynomial.S- univariate recursive GenPolynomial.- Returns:
- res(P,S).
- Throws:
UnsupportedOperationException- if there is no implementation in the sub-class.
-
resultant
GenPolynomial resultant. The input polynomials are considered as univariate polynomials in the main variable.- Specified by:
resultantin interfaceGreatestCommonDivisor<C extends GcdRingElem<C>>- Parameters:
P- GenPolynomial.S- GenPolynomial.- Returns:
- res(P,S).
- Throws:
UnsupportedOperationException- if there is no implementation in the sub-class.- See Also:
-
coPrime
GenPolynomial co-prime list.- Specified by:
coPrimein interfaceGreatestCommonDivisor<C extends GcdRingElem<C>>- Parameters:
A- list of GenPolynomials.- Returns:
- B with gcd(b,c) = 1 for all b != c in B and for all non-constant a in A there exists b in B with b|a. B does not contain zero or constant polynomials.
-
coPrimeRec
GenPolynomial co-prime list.- Parameters:
A- list of GenPolynomials.- Returns:
- B with gcd(b,c) = 1 for all b != c in B and for all non-constant a in A there exists b in B with b|a. B does not contain zero or constant polynomials.
-
coPrime
GenPolynomial co-prime list.- Parameters:
a- GenPolynomial.P- co-prime list of GenPolynomials.- Returns:
- B with gcd(b,c) = 1 for all b != c in B and for non-constant a there exists b in P with b|a. B does not contain zero or constant polynomials.
-
isCoPrime
GenPolynomial test for co-prime list.- Specified by:
isCoPrimein interfaceGreatestCommonDivisor<C extends GcdRingElem<C>>- Parameters:
A- list of GenPolynomials.- Returns:
- true if gcd(b,c) = 1 for all b != c in B, else false.
-
isCoPrime
GenPolynomial test for co-prime list of given list.- Parameters:
P- list of co-prime GenPolynomials.A- list of GenPolynomials.- Returns:
- true if isCoPrime(P) and for all a in A exists p in P with p | a, else false.
-
baseExtendedGcd
Univariate GenPolynomial extended greatest common divisor. Uses sparse pseudoRemainder for remainder.- Parameters:
P- univariate GenPolynomial.S- univariate GenPolynomial.- Returns:
- [ gcd(P,S), a, b ] with a*P + b*S = gcd(P,S).
-
baseHalfExtendedGcd
Univariate GenPolynomial half extended greatest common divisor. Uses sparse pseudoRemainder for remainder.- Parameters:
S- GenPolynomial.- Returns:
- [ gcd(P,S), a ] with a*P + b*S = gcd(P,S).
-
baseGcdDiophant
public GenPolynomial<C>[] baseGcdDiophant(GenPolynomial<C> P, GenPolynomial<C> S, GenPolynomial<C> c) Univariate GenPolynomial greatest common divisor diophantine version.- Parameters:
P- univariate GenPolynomial.S- univariate GenPolynomial.c- univariate GenPolynomial.- Returns:
- [ a, b ] with a*P + b*S = c and deg(a) < deg(S).
-
basePartialFraction
public GenPolynomial<C>[] basePartialFraction(GenPolynomial<C> A, GenPolynomial<C> P, GenPolynomial<C> S) Univariate GenPolynomial partial fraction decomposition.- Parameters:
A- univariate GenPolynomial.P- univariate GenPolynomial.S- univariate GenPolynomial.- Returns:
- [ A0, Ap, As ] with A/(P*S) = A0 + Ap/P + As/S with deg(Ap) < deg(P) and deg(As) < deg(S).
-
basePartialFraction
Univariate GenPolynomial partial fraction decomposition.- Parameters:
A- univariate GenPolynomial.P- univariate GenPolynomial.e- exponent for P.- Returns:
- [ F0, F1, ..., Fe ] with A/(P^e) = sum( Fi / P^i ) with deg(Fi) < deg(P).
-
basePartialFraction
Univariate GenPolynomial partial fraction decomposition.- Parameters:
A- univariate GenPolynomial.D- list of co-prime univariate GenPolynomials.- Returns:
- [ A0, A1,..., An ] with A/prod(D) = A0 + sum( Ai/Di ) with deg(Ai) < deg(Di).
-
isBasePartialFraction
public boolean isBasePartialFraction(GenPolynomial<C> A, List<GenPolynomial<C>> D, List<GenPolynomial<C>> F) Test for Univariate GenPolynomial partial fraction decomposition.- Parameters:
A- univariate GenPolynomial.D- list of (co-prime) univariate GenPolynomials.F- list of univariate GenPolynomials from a partial fraction computation.- Returns:
- true if A/prod(D) = F0 + sum( Fi/Di ) with deg(Fi) < deg(Di), Fi in F, else false.
-
isBasePartialFraction
public boolean isBasePartialFraction(GenPolynomial<C> A, GenPolynomial<C> P, int e, List<GenPolynomial<C>> F) Test for Univariate GenPolynomial partial fraction decomposition.- Parameters:
A- univariate GenPolynomial.P- univariate GenPolynomial.e- exponent for P.F- list of univariate GenPolynomials from a partial fraction computation.- Returns:
- true if A/(P^e) = F0 + sum( Fi / P^i ) with deg(Fi) < deg(P), Fi in F, else false.
-
basePartialFractionValue
public GenPolynomial<C> basePartialFractionValue(GenPolynomial<C> P, int e, List<GenPolynomial<C>> F) Test for Univariate GenPolynomial partial fraction decomposition.- Parameters:
P- univariate GenPolynomial.e- exponent for P.F- list of univariate GenPolynomials from a partial fraction computation.- Returns:
- (F0 + sum( Fi / P^i )) * P^e.
-