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 booleanisSigNormalform(java.util.List<SigPoly<C>> F, java.util.List<SigPoly<C>> G, SigPoly<C> A)Is in top normalform.booleanisSigReducible(java.util.List<SigPoly<C>> F, java.util.List<SigPoly<C>> G, SigPoly<C> A)Is top reducible.booleanisSigRedundant(java.util.List<SigPoly<C>> G, SigPoly<C> A)Is sigma redundant.booleanisSigRedundantAlt(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.longminimalSigDegree(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:
SPolynomialin 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:
isSigReduciblein 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:
isSigNormalformin 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:
sigNormalformin 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.
-
-