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

java.lang.Object
  extended by edu.jas.gb.SolvableGroebnerBaseAbstract<C>
Type Parameters:
C - coefficient type
All Implemented Interfaces:
SolvableGroebnerBase<C>
Direct Known Subclasses:
SolvableGroebnerBaseParallel, SolvableGroebnerBaseSeq, SolvableGroebnerBaseSeqPairParallel

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  BasicLinAlg<GenPolynomial<C>> blas
          Linear algebra engine.
protected  Reduction<C> red
          Reduction engine.
protected  SolvableReduction<C> sred
          Solvable reduction engine.
 PairList<C> strategy
          Strategy for pair selection.
 
Constructor Summary
SolvableGroebnerBaseAbstract()
          Constructor.
SolvableGroebnerBaseAbstract(SolvableReduction<C> sred)
          Constructor.
SolvableGroebnerBaseAbstract(SolvableReduction<C> sred, PairList<C> pl)
          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.gb.SolvableGroebnerBase
extLeftGB, leftGB, twosidedGB
 

Field Detail

sred

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


red

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


strategy

public final PairList<C extends RingElem<C>> strategy
Strategy for pair selection.


blas

protected final BasicLinAlg<GenPolynomial<C extends RingElem<C>>> blas
Linear algebra engine.

Constructor Detail

SolvableGroebnerBaseAbstract

public SolvableGroebnerBaseAbstract()
Constructor.


SolvableGroebnerBaseAbstract

public SolvableGroebnerBaseAbstract(SolvableReduction<C> sred)
Constructor.

Parameters:
sred - Solvable reduction engine

SolvableGroebnerBaseAbstract

public SolvableGroebnerBaseAbstract(SolvableReduction<C> sred,
                                    PairList<C> pl)
Constructor.

Parameters:
sred - Solvable reduction engine
pl - pair selection strategy
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>>
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>>
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>>
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>>
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>>
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>>
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>>
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>>
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>>
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>>
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>>
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>>
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>>
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>>
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.