Package edu.jas.gb
Class ReductionAbstract<C extends RingElem<C>>
- java.lang.Object
-
- edu.jas.gb.ReductionAbstract<C>
-
- Type Parameters:
C
- coefficient type
- All Implemented Interfaces:
Reduction<C>
,java.io.Serializable
- Direct Known Subclasses:
DReductionSeq
,PseudoReductionPar
,PseudoReductionSeq
,ReductionPar
,ReductionSeq
,RReductionSeq
public abstract class ReductionAbstract<C extends RingElem<C>> extends java.lang.Object implements Reduction<C>
Polynomial Reduction abstract class. Implements common S-Polynomial, normalform, criterion 4 module criterion and irreducible set.- Author:
- Heinz Kredel
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ReductionAbstract()
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
criterion4(ExpVector ei, ExpVector ej, ExpVector e)
GB criterium 4.boolean
criterion4(GenPolynomial<C> A, GenPolynomial<C> B)
GB criterium 4.boolean
criterion4(GenPolynomial<C> A, GenPolynomial<C> B, ExpVector e)
GB criterium 4.java.util.List<GenPolynomial<C>>
irreducibleSet(java.util.List<GenPolynomial<C>> Pp)
Irreducible set.boolean
isNormalform(java.util.List<GenPolynomial<C>> Pp)
Is in Normalform.boolean
isNormalform(java.util.List<GenPolynomial<C>> Pp, GenPolynomial<C> Ap)
Is in Normalform.boolean
isReducible(java.util.List<GenPolynomial<C>> Pp, GenPolynomial<C> Ap)
Is reducible.boolean
isReductionNF(java.util.List<GenPolynomial<C>> row, java.util.List<GenPolynomial<C>> Pp, GenPolynomial<C> Ap, GenPolynomial<C> Np)
Is reduction of normal form.boolean
isTopReducible(java.util.List<GenPolynomial<C>> P, GenPolynomial<C> A)
Is top reducible.boolean
moduleCriterion(int modv, ExpVector ei, ExpVector ej)
Module criterium.boolean
moduleCriterion(int modv, GenPolynomial<C> A, GenPolynomial<C> B)
Module criterium.ModuleList<C>
normalform(ModuleList<C> Pp, ModuleList<C> Ap)
Module normalform set.ModuleList<C>
normalform(ModuleList<C> Pp, ModuleList<C> Ap, boolean top)
Module normalform set.java.util.List<GenPolynomial<C>>
normalform(java.util.List<GenPolynomial<C>> Pp, java.util.List<GenPolynomial<C>> Ap)
Normalform Set.GenPolynomial<C>
normalformMarked(java.util.List<Monomial<C>> Mp, java.util.List<GenPolynomial<C>> Pp, GenPolynomial<C> Ap)
Normalform with respect to marked head terms.GenPolynomial<C>
SPolynomial(GenPolynomial<C> A, GenPolynomial<C> B)
S-Polynomial.GenPolynomial<C>
SPolynomial(java.util.List<GenPolynomial<C>> S, int i, GenPolynomial<C> A, int j, GenPolynomial<C> B)
S-Polynomial with recording.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface edu.jas.gb.Reduction
normalform, normalform
-
-
-
-
Constructor Detail
-
ReductionAbstract
public ReductionAbstract()
Constructor.
-
-
Method Detail
-
SPolynomial
public GenPolynomial<C> SPolynomial(GenPolynomial<C> A, GenPolynomial<C> B)
S-Polynomial.- Specified by:
SPolynomial
in interfaceReduction<C extends RingElem<C>>
- Parameters:
A
- polynomial.B
- polynomial.- Returns:
- spol(A,B) the S-polynomial of A and B.
-
SPolynomial
public GenPolynomial<C> SPolynomial(java.util.List<GenPolynomial<C>> S, int i, GenPolynomial<C> A, int j, GenPolynomial<C> B)
S-Polynomial with recording.- Specified by:
SPolynomial
in interfaceReduction<C extends RingElem<C>>
- Parameters:
S
- recording matrix, is modified. Note the negative S-polynomial is recorded as required by all applications.i
- index of A in basis list.A
- a polynomial.j
- index of B in basis list.B
- a polynomial.- Returns:
- Spol(A, B), the S-Polynomial for A and B.
-
moduleCriterion
public boolean moduleCriterion(int modv, GenPolynomial<C> A, GenPolynomial<C> B)
Module criterium.- Specified by:
moduleCriterion
in interfaceReduction<C extends RingElem<C>>
- Parameters:
modv
- number of module variables.A
- polynomial.B
- polynomial.- Returns:
- true if the module S-polynomial(i,j) is required.
-
moduleCriterion
public boolean moduleCriterion(int modv, ExpVector ei, ExpVector ej)
Module criterium.- Specified by:
moduleCriterion
in interfaceReduction<C extends RingElem<C>>
- Parameters:
modv
- number of module variables.ei
- ExpVector.ej
- ExpVector.- Returns:
- true if the module S-polynomial(i,j) is required.
-
criterion4
public boolean criterion4(GenPolynomial<C> A, GenPolynomial<C> B, ExpVector e)
GB criterium 4. Use only for commutative polynomial rings.- Specified by:
criterion4
in interfaceReduction<C extends RingElem<C>>
- Parameters:
A
- polynomial.B
- polynomial.e
- = lcm(ht(A),ht(B))- Returns:
- true if the S-polynomial(i,j) is required, else false.
-
criterion4
public boolean criterion4(ExpVector ei, ExpVector ej, ExpVector e)
GB criterium 4. Use only for commutative polynomial rings.- Specified by:
criterion4
in interfaceReduction<C extends RingElem<C>>
- Parameters:
ei
- exponent vector.ej
- exponent vector.e
- = lcm(ei,ej)- Returns:
- true if the S-polynomial(i,j) is required, else false.
-
criterion4
public boolean criterion4(GenPolynomial<C> A, GenPolynomial<C> B)
GB criterium 4.- Specified by:
criterion4
in interfaceReduction<C extends RingElem<C>>
- Parameters:
A
- polynomial.B
- polynomial.- Returns:
- true if the S-polynomial(i,j) is required, else false.
-
normalformMarked
public GenPolynomial<C> normalformMarked(java.util.List<Monomial<C>> Mp, java.util.List<GenPolynomial<C>> Pp, GenPolynomial<C> Ap)
Normalform with respect to marked head terms.- Parameters:
Mp
- leading monomial list.Pp
- polynomial list.Ap
- polynomial.- Returns:
- nf(Ap) with respect to Mp+Pp.
-
normalform
public java.util.List<GenPolynomial<C>> normalform(java.util.List<GenPolynomial<C>> Pp, java.util.List<GenPolynomial<C>> Ap)
Normalform Set.- Specified by:
normalform
in interfaceReduction<C extends RingElem<C>>
- Parameters:
Ap
- polynomial list.Pp
- polynomial list.- Returns:
- list of nf(a) with respect to Pp for all a in Ap.
-
normalform
public ModuleList<C> normalform(ModuleList<C> Pp, ModuleList<C> Ap)
Module normalform set.- Parameters:
Ap
- module list.Pp
- module list.- Returns:
- list of nf(a) with respect to Pp for all a in Ap.
-
normalform
public ModuleList<C> normalform(ModuleList<C> Pp, ModuleList<C> Ap, boolean top)
Module normalform set.- Parameters:
Ap
- module list.Pp
- module list.top
- true for TOP term order, false for POT term order.- Returns:
- list of nf(a) with respect to Pp for all a in Ap.
-
isTopReducible
public boolean isTopReducible(java.util.List<GenPolynomial<C>> P, GenPolynomial<C> A)
Is top reducible.- Specified by:
isTopReducible
in interfaceReduction<C extends RingElem<C>>
- Parameters:
A
- polynomial.P
- polynomial list.- Returns:
- true if A is top reducible with respect to P.
-
isReducible
public boolean isReducible(java.util.List<GenPolynomial<C>> Pp, GenPolynomial<C> Ap)
Is reducible.- Specified by:
isReducible
in interfaceReduction<C extends RingElem<C>>
- Parameters:
Ap
- polynomial.Pp
- polynomial list.- Returns:
- true if Ap is reducible with respect to Pp.
-
isNormalform
public boolean isNormalform(java.util.List<GenPolynomial<C>> Pp, GenPolynomial<C> Ap)
Is in Normalform.- Specified by:
isNormalform
in interfaceReduction<C extends RingElem<C>>
- Parameters:
Ap
- polynomial.Pp
- polynomial list.- Returns:
- true if Ap is in normalform with respect to Pp.
-
isNormalform
public boolean isNormalform(java.util.List<GenPolynomial<C>> Pp)
Is in Normalform.- Specified by:
isNormalform
in interfaceReduction<C extends RingElem<C>>
- Parameters:
Pp
- polynomial list.- Returns:
- true if each Ap in Pp is in normalform with respect to Pp\{Ap}.
-
irreducibleSet
public java.util.List<GenPolynomial<C>> irreducibleSet(java.util.List<GenPolynomial<C>> Pp)
Irreducible set.- Specified by:
irreducibleSet
in interfaceReduction<C extends RingElem<C>>
- Parameters:
Pp
- polynomial list.- Returns:
- a list P of monic polynomials which are in normalform wrt. P and with ideal(Pp) = ideal(P).
-
isReductionNF
public boolean isReductionNF(java.util.List<GenPolynomial<C>> row, java.util.List<GenPolynomial<C>> Pp, GenPolynomial<C> Ap, GenPolynomial<C> Np)
Is reduction of normal form.- Specified by:
isReductionNF
in interfaceReduction<C extends RingElem<C>>
- Parameters:
row
- recording matrix.Pp
- a polynomial list for reduction.Ap
- a polynomial.Np
- = nf(Pp,Ap), a normal form of Ap wrt. Pp.- Returns:
- true, if Ap == sum( row[i]*Pp[i] ) + Np, else false. //??
-
-