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

java.lang.Object
  extended by edu.jas.ring.SolvableGroebnerBaseAbstract<C>
All Implemented Interfaces:
SolvableGroebnerBase<C>
Direct Known Subclasses:
SolvableGroebnerBaseParallel, SolvableGroebnerBaseSeq

public abstract class SolvableGroebnerBaseAbstract<C extends RingElem<C>>
extends java.lang.Object
implements SolvableGroebnerBase<C>

Solvable Groebner Bases abstract class. Implements common left, right and twosided Groebner bases and left, right and twosided GB tests.

Author:
Heinz Kredel.

Field Summary
protected  Reduction<C> red
          Reduction engine.
protected  SolvableReduction<C> sred
          Solvable reduction engine.
 
Constructor Summary
SolvableGroebnerBaseAbstract()
          Constructor.
SolvableGroebnerBaseAbstract(Reduction<C> red, SolvableReduction<C> sred)
          Constructor.
 
Method Summary
 SolvableExtendedGB<C> extLeftGB(java.util.List<GenSolvablePolynomial<C>> F)
          Solvable Extended Groebner base using critical pair class.
 boolean isLeftGB(int modv, java.util.List<GenSolvablePolynomial<C>> F)
          Left Groebner base test.
 boolean isLeftGB(java.util.List<GenSolvablePolynomial<C>> F)
          Left Groebner base test.
 boolean isLeftReductionMatrix(java.util.List<GenSolvablePolynomial<C>> F, java.util.List<GenSolvablePolynomial<C>> G, java.util.List<java.util.List<GenSolvablePolynomial<C>>> Mf, java.util.List<java.util.List<GenSolvablePolynomial<C>>> Mg)
          Test if left reduction matrix.
 boolean isLeftReductionMatrix(SolvableExtendedGB<C> exgb)
          Test if left reduction matrix.
 boolean isRightGB(int modv, java.util.List<GenSolvablePolynomial<C>> F)
          Right Groebner base test.
 boolean isRightGB(java.util.List<GenSolvablePolynomial<C>> F)
          Right Groebner base test.
 boolean isTwosidedGB(int modv, java.util.List<GenSolvablePolynomial<C>> Fp)
          Twosided Groebner base test.
 boolean isTwosidedGB(java.util.List<GenSolvablePolynomial<C>> Fp)
          Twosided Groebner base test.
 java.util.List<GenSolvablePolynomial<C>> leftGB(java.util.List<GenSolvablePolynomial<C>> F)
          Left Groebner base using pairlist class.
 java.util.List<GenSolvablePolynomial<C>> leftMinimalGB(java.util.List<GenSolvablePolynomial<C>> Gp)
          Left minimal ordered groebner basis.
 java.util.List<GenSolvablePolynomial<C>> rightGB(int modv, java.util.List<GenSolvablePolynomial<C>> F)
          Right Groebner base using opposite ring left GB.
 java.util.List<GenSolvablePolynomial<C>> rightGB(java.util.List<GenSolvablePolynomial<C>> F)
          Right Groebner base using opposite ring left GB.
 java.util.List<GenSolvablePolynomial<C>> twosidedGB(java.util.List<GenSolvablePolynomial<C>> Fp)
          Twosided Groebner base using pairlist class.
 
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.SolvableGroebnerBase
extLeftGB, leftGB, twosidedGB
 

Field Detail

sred

protected SolvableReduction<C extends RingElem<C>> sred
Solvable reduction engine.


red

protected Reduction<C extends RingElem<C>> red
Reduction engine.

Constructor Detail

SolvableGroebnerBaseAbstract

public SolvableGroebnerBaseAbstract()
Constructor.


SolvableGroebnerBaseAbstract

public SolvableGroebnerBaseAbstract(Reduction<C> red,
                                    SolvableReduction<C> sred)
Constructor.

Parameters:
red - Reduction engine
sred - Solvable reduction engine
Method Detail

isLeftGB

public boolean isLeftGB(java.util.List<GenSolvablePolynomial<C>> F)
Left Groebner base test.

Specified by:
isLeftGB in interface SolvableGroebnerBase<C extends RingElem<C>>
Type parameter:
C coefficient type.
Parameters:
F - solvable polynomial list.
Returns:
true, if F is a left Groebner base, else false.

isLeftGB

public boolean isLeftGB(int modv,
                        java.util.List<GenSolvablePolynomial<C>> F)
Left Groebner base test.

Specified by:
isLeftGB in interface SolvableGroebnerBase<C extends RingElem<C>>
Type parameter:
C coefficient type.
Parameters:
modv - number of module variables.
F - solvable polynomial list.
Returns:
true, if F is a left Groebner base, else false.

isTwosidedGB

public boolean isTwosidedGB(java.util.List<GenSolvablePolynomial<C>> Fp)
Twosided Groebner base test.

Specified by:
isTwosidedGB in interface SolvableGroebnerBase<C extends RingElem<C>>
Type parameter:
C coefficient type.
Parameters:
Fp - solvable polynomial list.
Returns:
true, if Fp is a two-sided Groebner base, else false.

isTwosidedGB

public boolean isTwosidedGB(int modv,
                            java.util.List<GenSolvablePolynomial<C>> Fp)
Twosided Groebner base test.

Specified by:
isTwosidedGB in interface SolvableGroebnerBase<C extends RingElem<C>>
Type parameter:
C coefficient type.
Parameters:
modv - number of module variables.
Fp - solvable polynomial list.
Returns:
true, if Fp is a two-sided Groebner base, else false.

isRightGB

public boolean isRightGB(java.util.List<GenSolvablePolynomial<C>> F)
Right Groebner base test.

Specified by:
isRightGB in interface SolvableGroebnerBase<C extends RingElem<C>>
Type parameter:
C coefficient type.
Parameters:
F - solvable polynomial list.
Returns:
true, if F is a right Groebner base, else false.

isRightGB

public boolean isRightGB(int modv,
                         java.util.List<GenSolvablePolynomial<C>> F)
Right Groebner base test.

Specified by:
isRightGB in interface SolvableGroebnerBase<C extends RingElem<C>>
Type parameter:
C coefficient type.
Parameters:
modv - number of module variables.
F - solvable polynomial list.
Returns:
true, if F is a right Groebner base, else false.

leftGB

public java.util.List<GenSolvablePolynomial<C>> leftGB(java.util.List<GenSolvablePolynomial<C>> F)
Left Groebner base using pairlist class.

Specified by:
leftGB in interface SolvableGroebnerBase<C extends RingElem<C>>
Type parameter:
C coefficient type.
Parameters:
F - solvable polynomial list.
Returns:
leftGB(F) a left Groebner base of F.

extLeftGB

public SolvableExtendedGB<C> extLeftGB(java.util.List<GenSolvablePolynomial<C>> F)
Solvable Extended Groebner base using critical pair class.

Specified by:
extLeftGB in interface SolvableGroebnerBase<C extends RingElem<C>>
Type parameter:
C coefficient type.
Parameters:
F - solvable polynomial list.
Returns:
a container for an extended left Groebner base of F.

leftMinimalGB

public java.util.List<GenSolvablePolynomial<C>> leftMinimalGB(java.util.List<GenSolvablePolynomial<C>> Gp)
Left minimal ordered groebner basis.

Specified by:
leftMinimalGB in interface SolvableGroebnerBase<C extends RingElem<C>>
Type parameter:
C coefficient type.
Parameters:
Gp - a left Groebner base.
Returns:
leftGBmi(F) a minimal left Groebner base of Gp.

twosidedGB

public java.util.List<GenSolvablePolynomial<C>> twosidedGB(java.util.List<GenSolvablePolynomial<C>> Fp)
Twosided Groebner base using pairlist class.

Specified by:
twosidedGB in interface SolvableGroebnerBase<C extends RingElem<C>>
Type parameter:
C coefficient type.
Parameters:
Fp - solvable polynomial list.
Returns:
tsGB(Fp) a twosided Groebner base of Fp.

rightGB

public java.util.List<GenSolvablePolynomial<C>> rightGB(java.util.List<GenSolvablePolynomial<C>> F)
Right Groebner base using opposite ring left GB.

Specified by:
rightGB in interface SolvableGroebnerBase<C extends RingElem<C>>
Type parameter:
C coefficient type.
Parameters:
F - solvable polynomial list.
Returns:
rightGB(F) a right Groebner base of F.

rightGB

public java.util.List<GenSolvablePolynomial<C>> rightGB(int modv,
                                                        java.util.List<GenSolvablePolynomial<C>> F)
Right Groebner base using opposite ring left GB.

Specified by:
rightGB in interface SolvableGroebnerBase<C extends RingElem<C>>
Type parameter:
C coefficient type.
Parameters:
modv - number of module variables.
F - solvable polynomial list.
Returns:
rightGB(F) a right Groebner base of F.

isLeftReductionMatrix

public boolean isLeftReductionMatrix(SolvableExtendedGB<C> exgb)
Test if left reduction matrix.

Specified by:
isLeftReductionMatrix in interface SolvableGroebnerBase<C extends RingElem<C>>
Type parameter:
C coefficient type.
Parameters:
exgb - an SolvableExtendedGB container.
Returns:
true, if exgb contains a left reduction matrix, else false.

isLeftReductionMatrix

public boolean isLeftReductionMatrix(java.util.List<GenSolvablePolynomial<C>> F,
                                     java.util.List<GenSolvablePolynomial<C>> G,
                                     java.util.List<java.util.List<GenSolvablePolynomial<C>>> Mf,
                                     java.util.List<java.util.List<GenSolvablePolynomial<C>>> Mg)
Test if left reduction matrix.

Specified by:
isLeftReductionMatrix in interface SolvableGroebnerBase<C extends RingElem<C>>
Type parameter:
C coefficient type.
Parameters:
F - a solvable polynomial list.
G - a left Groebner base.
Mf - a possible left reduction matrix.
Mg - a possible left reduction matrix.
Returns:
true, if Mg and Mf are left reduction matrices, else false.