Package edu.jas.gb
Class SigReductionSeq<C extends RingElem<C>>
- java.lang.Object
-
- edu.jas.gb.SigReductionSeq<C>
-
- Type Parameters:
C
- coefficient type
- All Implemented Interfaces:
SigReduction<C>
,java.io.Serializable
public class SigReductionSeq<C extends RingElem<C>> extends java.lang.Object implements SigReduction<C>
Polynomial SigReduction class. Implements common S-Polynomial, normalform with respect to signatures.- Author:
- Heinz Kredel
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description SigReductionSeq()
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
isSigNormalform(java.util.List<SigPoly<C>> F, java.util.List<SigPoly<C>> G, SigPoly<C> A)
Is in top normalform.boolean
isSigReducible(java.util.List<SigPoly<C>> F, java.util.List<SigPoly<C>> G, SigPoly<C> A)
Is top reducible.boolean
isSigRedundant(java.util.List<SigPoly<C>> G, SigPoly<C> A)
Is sigma redundant.boolean
isSigRedundantAlt(java.util.List<SigPoly<C>> G, SigPoly<C> A)
Is sigma redundant, alternative algorithm.java.util.List<SigPair<C>>[]
minDegSubset(java.util.List<SigPair<C>> F)
Select signature polynomials of minimal degree and non minimal degree.long
minimalSigDegree(java.util.List<SigPair<C>> F)
Minimal degree of signatures.java.util.List<GenPolynomial<C>>
polys(java.util.List<SigPoly<C>> F)
Select polynomials.java.util.List<GenPolynomial<C>>
sigmas(java.util.List<SigPair<C>> F)
Select signatures.SigPoly<C>
sigNormalform(java.util.List<GenPolynomial<C>> F, java.util.List<SigPoly<C>> G, SigPoly<C> A)
Top normalform.SigPoly<C>
sigSemiNormalform(java.util.List<GenPolynomial<C>> F, java.util.List<SigPoly<C>> G, SigPoly<C> A)
Top semi-complete normalform.java.util.List<SigPair<C>>
sortSigma(java.util.List<SigPair<C>> F)
Sort signature polynomials according to the degree its signatures.GenPolynomial<C>
SPolynomial(SigPoly<C> A, SigPoly<C> B)
S-Polynomial.ExpVector[]
SPolynomialExpVectorFactors(SigPoly<C> A, SigPoly<C> B)
S-Polynomial factors.GenPolynomial<C>[]
SPolynomialFactors(SigPoly<C> A, SigPoly<C> B)
S-Polynomial polynomial factors.GenPolynomial<C>
SPolynomialHalf(SigPoly<C> A, SigPoly<C> B)
S-Polynomial half.
-
-
-
Constructor Detail
-
SigReductionSeq
public SigReductionSeq()
Constructor.
-
-
Method Detail
-
SPolynomial
public GenPolynomial<C> SPolynomial(SigPoly<C> A, SigPoly<C> B)
S-Polynomial.- Specified by:
SPolynomial
in interfaceSigReduction<C extends RingElem<C>>
- Parameters:
A
- polynomial.B
- polynomial.- Returns:
- spol(A,B) the S-polynomial of A and B.
-
SPolynomialExpVectorFactors
public ExpVector[] SPolynomialExpVectorFactors(SigPoly<C> A, SigPoly<C> B)
S-Polynomial factors.- Parameters:
A
- monic polynomial.B
- monic polynomial.- Returns:
- exponent vectors [e,f] such that spol(A,B) = e*a - f*B.
-
SPolynomialHalf
public GenPolynomial<C> SPolynomialHalf(SigPoly<C> A, SigPoly<C> B)
S-Polynomial half.- Parameters:
A
- monic polynomial.B
- monic polynomial.- Returns:
- e*A "half" of an S-polynomial such that spol(A,B) = e*A - f*B.
-
SPolynomialFactors
public GenPolynomial<C>[] SPolynomialFactors(SigPoly<C> A, SigPoly<C> B)
S-Polynomial polynomial factors.- Parameters:
A
- monic polynomial.B
- monic polynomial.- Returns:
- polynomials [e,f] such that spol(A,B) = e*a - f*B.
-
isSigReducible
public boolean isSigReducible(java.util.List<SigPoly<C>> F, java.util.List<SigPoly<C>> G, SigPoly<C> A)
Is top reducible. Condition is lt(B) | lt(A) for some B in F or G.- Specified by:
isSigReducible
in interfaceSigReduction<C extends RingElem<C>>
- Parameters:
A
- polynomial.F
- polynomial list.G
- polynomial list.- Returns:
- true if A is top reducible with respect to F and G.
-
isSigNormalform
public boolean isSigNormalform(java.util.List<SigPoly<C>> F, java.util.List<SigPoly<C>> G, SigPoly<C> A)
Is in top normalform.- Specified by:
isSigNormalform
in interfaceSigReduction<C extends RingElem<C>>
- Parameters:
A
- polynomial.F
- polynomial list.G
- polynomial list.- Returns:
- true if A is in top normalform with respect to F and G.
-
isSigRedundant
public boolean isSigRedundant(java.util.List<SigPoly<C>> G, SigPoly<C> A)
Is sigma redundant.- Parameters:
A
- polynomial.G
- polynomial list.- Returns:
- true if A is sigma redundant with respect to G.
-
isSigRedundantAlt
public boolean isSigRedundantAlt(java.util.List<SigPoly<C>> G, SigPoly<C> A)
Is sigma redundant, alternative algorithm.- Parameters:
A
- polynomial.G
- polynomial list.- Returns:
- true if A is sigma redundant per alternative algorithm with respect to G.
-
sigNormalform
public SigPoly<C> sigNormalform(java.util.List<GenPolynomial<C>> F, java.util.List<SigPoly<C>> G, SigPoly<C> A)
Top normalform.- Specified by:
sigNormalform
in interfaceSigReduction<C extends RingElem<C>>
- Parameters:
A
- polynomial.F
- polynomial list.G
- polynomial list.- Returns:
- nf(A) with respect to F and G.
-
sigSemiNormalform
public SigPoly<C> sigSemiNormalform(java.util.List<GenPolynomial<C>> F, java.util.List<SigPoly<C>> G, SigPoly<C> A)
Top semi-complete normalform.- Parameters:
A
- polynomial.F
- polynomial list.G
- polynomial list.- Returns:
- nf(A) with respect to F and G.
-
polys
public java.util.List<GenPolynomial<C>> polys(java.util.List<SigPoly<C>> F)
Select polynomials.- Parameters:
F
- list of signature polynomials.- Returns:
- the polynomials in F.
-
sigmas
public java.util.List<GenPolynomial<C>> sigmas(java.util.List<SigPair<C>> F)
Select signatures.- Parameters:
F
- list of signature polynomials.- Returns:
- the signatures in F.
-
minimalSigDegree
public long minimalSigDegree(java.util.List<SigPair<C>> F)
Minimal degree of signatures.- Parameters:
F
- list of signature polynomials.- Returns:
- the minimal degree of the signatures in F.
-
minDegSubset
public java.util.List<SigPair<C>>[] minDegSubset(java.util.List<SigPair<C>> F)
Select signature polynomials of minimal degree and non minimal degree.- Parameters:
F
- list of signature polynomials.- Returns:
- [m,p] where m is the list of signature polynomials of F of minimal degree and p contains the rest of the signature polynomials with non minimal degree.
-
-