edu.jas.gb
Class ReductionAbstract<C extends RingElem<C>>

java.lang.Object
  extended by edu.jas.gb.ReductionAbstract<C>
Type Parameters:
C - coefficient type
All Implemented Interfaces:
Reduction<C>, java.io.Serializable
Direct Known Subclasses:
DReductionSeq, 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
ReductionAbstract()
          Constructor.
 
Method Summary
 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.
 java.util.List<GenPolynomial<C>> normalform(java.util.List<GenPolynomial<C>> Pp, java.util.List<GenPolynomial<C>> Ap)
          Normalform Set.
 GenPolynomial<C> SPolynomial(GenPolynomial<C> Ap, GenPolynomial<C> Bp)
          S-Polynomial.
 GenPolynomial<C> SPolynomial(java.util.List<GenPolynomial<C>> S, int i, GenPolynomial<C> Ap, int j, GenPolynomial<C> Bp)
          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> Ap,
                                    GenPolynomial<C> Bp)
S-Polynomial.

Specified by:
SPolynomial in interface Reduction<C extends RingElem<C>>
Parameters:
Ap - polynomial.
Bp - polynomial.
Returns:
spol(Ap,Bp) the S-polynomial of Ap and Bp.

SPolynomial

public GenPolynomial<C> SPolynomial(java.util.List<GenPolynomial<C>> S,
                                    int i,
                                    GenPolynomial<C> Ap,
                                    int j,
                                    GenPolynomial<C> Bp)
S-Polynomial with recording.

Specified by:
SPolynomial in interface Reduction<C extends RingElem<C>>
Parameters:
S - recording matrix, is modified. Note the negative Spolynomial is recorded as required by all applications.
i - index of Ap in basis list.
Ap - a polynomial.
j - index of Bp in basis list.
Bp - a polynomial.
Returns:
Spol(Ap, Bp), the S-Polynomial for Ap and Bp.

moduleCriterion

public boolean moduleCriterion(int modv,
                               GenPolynomial<C> A,
                               GenPolynomial<C> B)
Module criterium.

Specified by:
moduleCriterion in interface Reduction<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 interface Reduction<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 interface Reduction<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(GenPolynomial<C> A,
                          GenPolynomial<C> B)
GB criterium 4.

Specified by:
criterion4 in interface Reduction<C extends RingElem<C>>
Parameters:
A - polynomial.
B - polynomial.
Returns:
true if the S-polynomial(i,j) is required, else false.

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 interface Reduction<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.

isTopReducible

public boolean isTopReducible(java.util.List<GenPolynomial<C>> P,
                              GenPolynomial<C> A)
Is top reducible.

Specified by:
isTopReducible in interface Reduction<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 interface Reduction<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 interface Reduction<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 interface Reduction<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 interface Reduction<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 interface Reduction<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 Np + sum( row[i]*Pp[i] ) == Ap, else false.