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

java.lang.Object
  extended by edu.jas.ring.ReductionAbstract<C>
All Implemented Interfaces:
Reduction<C>, java.io.Serializable
Direct Known Subclasses:
DReductionSeq, ReductionPar, ReductionSeq

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, 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, 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.ring.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>>
Type parameter:
C coefficient type.
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>>
Type parameter:
C coefficient type.
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>>
Type parameter:
C coefficient type.
Parameters:
modv - number of module variables.
A - polynomial.
B - polynomial.
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>>
Type parameter:
C coefficient type.
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. Use only for commutative polynomial rings.

Specified by:
criterion4 in interface Reduction<C extends RingElem<C>>
Type parameter:
C coefficient type.
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>>
Type parameter:
C coefficient type.
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>>
Type parameter:
C coefficient type.
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>>
Type parameter:
C coefficient type.
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>>
Type parameter:
C coefficient type.
Parameters:
Ap - polynomial.
Pp - polynomial list.
Returns:
true if Ap is in normalform with respect to Pp.

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>>
Type parameter:
C coefficient type.
Parameters:
Pp - polynomial list.
Returns:
a list P of polynomials which are in normalform wrt. 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, is modified.
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.