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

java.lang.Object
  extended by edu.jas.gb.GroebnerBaseAbstract<C>
Type Parameters:
C - coefficient type
All Implemented Interfaces:
GroebnerBase<C>, java.io.Serializable
Direct Known Subclasses:
DGroebnerBaseSeq, GBProxy, GroebnerBaseDistributed, GroebnerBaseDistributedHybrid, GroebnerBaseParallel, GroebnerBasePartial, GroebnerBasePseudoRecSeq, GroebnerBasePseudoSeq, GroebnerBaseSeq, GroebnerBaseSeqPairDistributed, GroebnerBaseSeqPairParallel, GroebnerBaseSeqPairSeq, RGroebnerBaseSeq

public abstract class GroebnerBaseAbstract<C extends RingElem<C>>
extends java.lang.Object
implements GroebnerBase<C>

Groebner Bases abstract class. Implements common Groebner bases and GB test methods.

Author:
Heinz Kredel
See Also:
Serialized Form

Field Summary
 BasicLinAlg<GenPolynomial<C>> blas
          linear algebra engine.
 Reduction<C> red
          Reduction engine.
 PairList<C> strategy
          Strategy for pair selection.
 
Constructor Summary
GroebnerBaseAbstract()
          Constructor.
GroebnerBaseAbstract(Reduction<C> red)
          Constructor.
GroebnerBaseAbstract(Reduction<C> red, PairList<C> pl)
          Constructor.
 
Method Summary
 int cancel()
          Cancel ThreadPool.
 int commonZeroTest(java.util.List<GenPolynomial<C>> F)
          Common zero test.
 ExtendedGB<C> extGB(int modv, java.util.List<GenPolynomial<C>> F)
          Extended Groebner base using critical pair class.
 ExtendedGB<C> extGB(java.util.List<GenPolynomial<C>> F)
          Extended Groebner base using critical pair class.
 java.util.List<GenPolynomial<C>> GB(java.util.List<GenPolynomial<C>> F)
          Groebner base using pairlist class.
 boolean isGB(int modv, java.util.List<GenPolynomial<C>> F)
          Groebner base test.
 boolean isGB(java.util.List<GenPolynomial<C>> F)
          Groebner base test.
 boolean isReductionMatrix(ExtendedGB<C> exgb)
          Test if reduction matrix.
 boolean isReductionMatrix(java.util.List<GenPolynomial<C>> F, java.util.List<GenPolynomial<C>> G, java.util.List<java.util.List<GenPolynomial<C>>> Mf, java.util.List<java.util.List<GenPolynomial<C>>> Mg)
          Test if reduction matrix.
 ExtendedGB<C> minimalExtendedGB(int flen, java.util.List<GenPolynomial<C>> Gp, java.util.List<java.util.List<GenPolynomial<C>>> M)
          Minimal extended groebner basis.
 java.util.List<GenPolynomial<C>> minimalGB(java.util.List<GenPolynomial<C>> Gp)
          Minimal ordered Groebner basis.
 java.util.List<java.util.List<GenPolynomial<C>>> normalizeMatrix(int flen, java.util.List<java.util.List<GenPolynomial<C>>> M)
          Normalize M.
 void terminate()
          Cleanup and terminate ThreadPool.
 
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.GroebnerBase
GB
 

Field Detail

red

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


strategy

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


blas

public final BasicLinAlg<GenPolynomial<C extends RingElem<C>>> blas
linear algebra engine.

Constructor Detail

GroebnerBaseAbstract

public GroebnerBaseAbstract()
Constructor.


GroebnerBaseAbstract

public GroebnerBaseAbstract(Reduction<C> red)
Constructor.

Parameters:
red - Reduction engine

GroebnerBaseAbstract

public GroebnerBaseAbstract(Reduction<C> red,
                            PairList<C> pl)
Constructor.

Parameters:
red - Reduction engine
pl - pair selection strategy
Method Detail

isGB

public boolean isGB(java.util.List<GenPolynomial<C>> F)
Groebner base test.

Specified by:
isGB in interface GroebnerBase<C extends RingElem<C>>
Parameters:
F - polynomial list.
Returns:
true, if F is a Groebner base, else false.

isGB

public boolean isGB(int modv,
                    java.util.List<GenPolynomial<C>> F)
Groebner base test.

Specified by:
isGB in interface GroebnerBase<C extends RingElem<C>>
Parameters:
modv - module variable number.
F - polynomial list.
Returns:
true, if F is a Groebner base, else false.

commonZeroTest

public int commonZeroTest(java.util.List<GenPolynomial<C>> F)
Common zero test.

Parameters:
F - polynomial list.
Returns:
-1, 0 or 1 if dimension(ideal(F)) &eq; -1, 0 or ≥ 1.

GB

public java.util.List<GenPolynomial<C>> GB(java.util.List<GenPolynomial<C>> F)
Groebner base using pairlist class.

Specified by:
GB in interface GroebnerBase<C extends RingElem<C>>
Parameters:
F - polynomial list.
Returns:
GB(F) a Groebner base of F.

extGB

public ExtendedGB<C> extGB(java.util.List<GenPolynomial<C>> F)
Extended Groebner base using critical pair class.

Specified by:
extGB in interface GroebnerBase<C extends RingElem<C>>
Parameters:
F - polynomial list.
Returns:
a container for a Groebner base G of F together with back-and-forth transformations.

extGB

public ExtendedGB<C> extGB(int modv,
                           java.util.List<GenPolynomial<C>> F)
Extended Groebner base using critical pair class.

Specified by:
extGB in interface GroebnerBase<C extends RingElem<C>>
Parameters:
modv - module variable number.
F - polynomial list.
Returns:
a container for a Groebner base G of F together with back-and-forth transformations.

minimalGB

public java.util.List<GenPolynomial<C>> minimalGB(java.util.List<GenPolynomial<C>> Gp)
Minimal ordered Groebner basis.

Specified by:
minimalGB in interface GroebnerBase<C extends RingElem<C>>
Parameters:
Gp - a Groebner base.
Returns:
a reduced Groebner base of Gp.

isReductionMatrix

public boolean isReductionMatrix(ExtendedGB<C> exgb)
Test if reduction matrix.

Specified by:
isReductionMatrix in interface GroebnerBase<C extends RingElem<C>>
Parameters:
exgb - an ExtendedGB container.
Returns:
true, if exgb contains a reduction matrix, else false.

isReductionMatrix

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

Specified by:
isReductionMatrix in interface GroebnerBase<C extends RingElem<C>>
Parameters:
F - a polynomial list.
G - a Groebner base.
Mf - a possible reduction matrix.
Mg - a possible reduction matrix.
Returns:
true, if Mg and Mf are reduction matrices, else false.

normalizeMatrix

public java.util.List<java.util.List<GenPolynomial<C>>> normalizeMatrix(int flen,
                                                                        java.util.List<java.util.List<GenPolynomial<C>>> M)
Normalize M. Make all rows the same size and make certain column elements zero.

Parameters:
M - a reduction matrix.
Returns:
normalized M.

minimalExtendedGB

public ExtendedGB<C> minimalExtendedGB(int flen,
                                       java.util.List<GenPolynomial<C>> Gp,
                                       java.util.List<java.util.List<GenPolynomial<C>>> M)
Minimal extended groebner basis.

Parameters:
Gp - a Groebner base.
M - a reduction matrix, is modified.
Returns:
a (partially) reduced Groebner base of Gp in a container.

terminate

public void terminate()
Cleanup and terminate ThreadPool.


cancel

public int cancel()
Cancel ThreadPool.