Package edu.jas.ufd
Class GreatestCommonDivisorAbstract<C extends GcdRingElem<C>>
- java.lang.Object
-
- edu.jas.ufd.GreatestCommonDivisorAbstract<C>
-
- All Implemented Interfaces:
GreatestCommonDivisor<C>,java.io.Serializable
- Direct Known Subclasses:
GCDProxy,GreatestCommonDivisorFake,GreatestCommonDivisorHensel,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
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description GreatestCommonDivisorAbstract()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description CbaseContent(GenPolynomial<C> P)GenPolynomial 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 comon divisor.java.util.List<GenPolynomial<C>>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.java.util.List<GenPolynomial<C>>basePartialFraction(GenPolynomial<C> A, java.util.List<GenPolynomial<C>> D)Univariate GenPolynomial partial fraction decomposition.GenPolynomial<C>basePartialFractionValue(GenPolynomial<C> P, int e, java.util.List<GenPolynomial<C>> F)Test for Univariate GenPolynomial partial fraction decomposition.GenPolynomial<C>basePrimitivePart(GenPolynomial<C> P)GenPolynomial base coefficient primitive part.java.util.List<GenPolynomial<C>>basePrimitivePart(java.util.List<GenPolynomial<C>> F)List of GenPolynomial base coefficient primitive part.CbaseRecursiveContent(GenPolynomial<GenPolynomial<C>> P)GenPolynomial base recursive content.GenPolynomial<GenPolynomial<C>>baseRecursivePrimitivePart(GenPolynomial<GenPolynomial<C>> P)GenPolynomial base recursive primitive part.GenPolynomial<C>baseResultant(GenPolynomial<C> P, GenPolynomial<C> S)Univariate GenPolynomial resultant.GenPolynomial<C>content(GenPolynomial<C> P)GenPolynomial content.GenPolynomial<C>[]contentPrimitivePart(GenPolynomial<C> P)GenPolynomial content and primitive part.java.util.List<GenPolynomial<C>>coPrime(GenPolynomial<C> a, java.util.List<GenPolynomial<C>> P)GenPolynomial co-prime list.java.util.List<GenPolynomial<C>>coPrime(java.util.List<GenPolynomial<C>> A)GenPolynomial co-prime list.java.util.List<GenPolynomial<C>>coPrimeRec(java.util.List<GenPolynomial<C>> A)GenPolynomial co-prime list.GenPolynomial<C>divide(GenPolynomial<C> a, C b)GenPolynomial division.Cgcd(C a, C b)Coefficient greatest common divisor.GenPolynomial<C>gcd(GenPolynomial<C> P, GenPolynomial<C> S)GenPolynomial greatest common divisor.GenPolynomial<C>gcd(java.util.List<GenPolynomial<C>> A)List of GenPolynomials greatest common divisor.booleanisBasePartialFraction(GenPolynomial<C> A, GenPolynomial<C> P, int e, java.util.List<GenPolynomial<C>> F)Test for Univariate GenPolynomial partial fraction decomposition.booleanisBasePartialFraction(GenPolynomial<C> A, java.util.List<GenPolynomial<C>> D, java.util.List<GenPolynomial<C>> F)Test for Univariate GenPolynomial partial fraction decomposition.booleanisCoPrime(java.util.List<GenPolynomial<C>> A)GenPolynomial test for co-prime list.booleanisCoPrime(java.util.List<GenPolynomial<C>> P, java.util.List<GenPolynomial<C>> A)GenPolynomial test for co-prime list of given list.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.GenPolynomial<GenPolynomial<C>>recursiveGcd(GenPolynomial<GenPolynomial<C>> P, GenPolynomial<GenPolynomial<C>> S)GenPolynomial recursive greatest common divisor.GenPolynomial<GenPolynomial<C>>recursivePrimitivePart(GenPolynomial<GenPolynomial<C>> P)GenPolynomial recursive primitive part.java.util.List<GenPolynomial<GenPolynomial<C>>>recursivePrimitivePart(java.util.List<GenPolynomial<GenPolynomial<C>>> F)List of recursive GenPolynomial base coefficient primitive part.GenPolynomial<GenPolynomial<C>>recursiveResultant(GenPolynomial<GenPolynomial<C>> P, GenPolynomial<GenPolynomial<C>> S)GenPolynomial recursive resultant.abstract GenPolynomial<GenPolynomial<C>>recursiveUnivariateGcd(GenPolynomial<GenPolynomial<C>> P, GenPolynomial<GenPolynomial<C>> S)Univariate GenPolynomial recursive greatest common divisor.GenPolynomial<GenPolynomial<C>>recursiveUnivariateResultant(GenPolynomial<GenPolynomial<C>> P, GenPolynomial<GenPolynomial<C>> S)Univariate GenPolynomial recursive resultant.GenPolynomial<C>resultant(GenPolynomial<C> P, GenPolynomial<C> S)GenPolynomial resultant.java.lang.StringtoString()Get the String representation.
-
-
-
Constructor Detail
-
GreatestCommonDivisorAbstract
public GreatestCommonDivisorAbstract()
-
-
Method Detail
-
toString
public java.lang.String toString()
Get the String representation.- Overrides:
toStringin classjava.lang.Object- See Also:
Object.toString()
-
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).
-
basePrimitivePart
public java.util.List<GenPolynomial<C>> basePrimitivePart(java.util.List<GenPolynomial<C>> F)
List of GenPolynomial base coefficient primitive part.- Parameters:
F- list of GenPolynomials.- Returns:
- pp(F).
-
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).
-
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).
-
recursivePrimitivePart
public java.util.List<GenPolynomial<GenPolynomial<C>>> recursivePrimitivePart(java.util.List<GenPolynomial<GenPolynomial<C>>> F)
List of recursive GenPolynomial base coefficient primitive part.- Parameters:
F- list of recursive GenPolynomials.- Returns:
- pp(F).
-
baseRecursiveContent
public C baseRecursiveContent(GenPolynomial<GenPolynomial<C>> P)
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
public GenPolynomial<C> content(GenPolynomial<C> P)
GenPolynomial content.- Specified by:
contentin interfaceGreatestCommonDivisor<C extends GcdRingElem<C>>- Parameters:
P- GenPolynomial.- Returns:
- cont(P).
-
primitivePart
public GenPolynomial<C> primitivePart(GenPolynomial<C> P)
GenPolynomial primitive part.- Specified by:
primitivePartin interfaceGreatestCommonDivisor<C extends GcdRingElem<C>>- Parameters:
P- GenPolynomial.- Returns:
- pp(P).
-
contentPrimitivePart
public GenPolynomial<C>[] contentPrimitivePart(GenPolynomial<C> P)
GenPolynomial content and primitive part.- Parameters:
P- GenPolynomial.- Returns:
- { cont(P), 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:
gcdin interfaceGreatestCommonDivisor<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:
lcmin interfaceGreatestCommonDivisor<C extends GcdRingElem<C>>- Parameters:
P- GenPolynomial.S- GenPolynomial.- Returns:
- lcm(P,S).
-
gcd
public GenPolynomial<C> gcd(java.util.List<GenPolynomial<C>> A)
List of GenPolynomials greatest common divisor.- Parameters:
A- non empty list of GenPolynomials.- Returns:
- gcd(A_i).
-
baseResultant
public GenPolynomial<C> baseResultant(GenPolynomial<C> P, GenPolynomial<C> S)
Univariate GenPolynomial resultant.- Parameters:
P- univariate GenPolynomial.S- univariate GenPolynomial.- Returns:
- res(P,S).
- Throws:
java.lang.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:
java.lang.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:
java.lang.UnsupportedOperationException- if there is no implementation in the sub-class.
-
resultant
public GenPolynomial<C> resultant(GenPolynomial<C> P, GenPolynomial<C> S)
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:
java.lang.UnsupportedOperationException- if there is no implementation in the sub-class.- See Also:
recursiveResultant(edu.jas.poly.GenPolynomial<edu.jas.poly.GenPolynomial<C>>, edu.jas.poly.GenPolynomial<edu.jas.poly.GenPolynomial<C>>)
-
coPrime
public java.util.List<GenPolynomial<C>> coPrime(java.util.List<GenPolynomial<C>> A)
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
public java.util.List<GenPolynomial<C>> coPrimeRec(java.util.List<GenPolynomial<C>> A)
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
public java.util.List<GenPolynomial<C>> coPrime(GenPolynomial<C> a, java.util.List<GenPolynomial<C>> P)
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
public boolean isCoPrime(java.util.List<GenPolynomial<C>> A)
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
public boolean isCoPrime(java.util.List<GenPolynomial<C>> P, java.util.List<GenPolynomial<C>> A)
GenPolynomial test for co-prime list of given list.- Parameters:
A- list of GenPolynomials.P- list of co-prime GenPolynomials.- Returns:
- true if isCoPrime(P) and for all a in A exists p in P with p | a, else false.
-
baseExtendedGcd
public GenPolynomial<C>[] baseExtendedGcd(GenPolynomial<C> P, GenPolynomial<C> S)
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
public GenPolynomial<C>[] baseHalfExtendedGcd(GenPolynomial<C> P, GenPolynomial<C> S)
Univariate GenPolynomial half extended greatest comon 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
public java.util.List<GenPolynomial<C>> basePartialFraction(GenPolynomial<C> A, GenPolynomial<C> P, int e)
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
public java.util.List<GenPolynomial<C>> basePartialFraction(GenPolynomial<C> A, java.util.List<GenPolynomial<C>> D)
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, java.util.List<GenPolynomial<C>> D, java.util.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, java.util.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, java.util.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.
-
-