Package edu.jas.ufd
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.boolean
isBasePartialFraction
(GenPolynomial<C> A, GenPolynomial<C> P, int e, List<GenPolynomial<C>> F) Test for Univariate GenPolynomial partial fraction decomposition.boolean
isBasePartialFraction
(GenPolynomial<C> A, List<GenPolynomial<C>> D, List<GenPolynomial<C>> F) Test for Univariate GenPolynomial partial fraction decomposition.boolean
isCoPrime
(List<GenPolynomial<C>> A) GenPolynomial test for co-prime list.boolean
isCoPrime
(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
Get the String representation. -
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:
content
in interfaceGreatestCommonDivisor<C extends GcdRingElem<C>>
- Parameters:
P
- GenPolynomial.- Returns:
- cont(P).
-
primitivePart
GenPolynomial primitive part.- Specified by:
primitivePart
in 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
Coefficient greatest common divisor. Indirection to coefficient method.- Parameters:
a
- coefficient.b
- coefficient.- Returns:
- gcd(a,b).
-
gcd
GenPolynomial greatest common divisor.- Specified by:
gcd
in interfaceGreatestCommonDivisor<C extends GcdRingElem<C>>
- Parameters:
P
- GenPolynomial.S
- GenPolynomial.- Returns:
- gcd(P,S).
-
lcm
GenPolynomial least common multiple.- Specified by:
lcm
in 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:
resultant
in 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:
coPrime
in 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:
isCoPrime
in 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.
-