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

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

public class SolvableGroebnerBaseParallel<C extends RingElem<C>>
extends SolvableGroebnerBaseAbstract<C>

Solvable Groebner Base parallel algorithm. Implements a shared memory parallel version of Groebner bases. Threads maintain pairlist.

Author:
Heinz Kredel

Field Summary
protected  ThreadPool pool
          Pool of threads to use.
protected  int threads
          Number of threads to use.
 
Fields inherited from class edu.jas.gb.SolvableGroebnerBaseAbstract
blas, red, sred, strategy
 
Constructor Summary
SolvableGroebnerBaseParallel()
          Constructor.
SolvableGroebnerBaseParallel(int threads)
          Constructor.
SolvableGroebnerBaseParallel(int threads, PairList<C> pl)
          Constructor.
SolvableGroebnerBaseParallel(int threads, SolvableReduction<C> sred)
          Constructor.
SolvableGroebnerBaseParallel(int threads, SolvableReduction<C> sred, PairList<C> pl)
          Constructor.
SolvableGroebnerBaseParallel(int threads, ThreadPool pool)
          Constructor.
SolvableGroebnerBaseParallel(int threads, ThreadPool pool, SolvableReduction<C> sred)
          Constructor.
SolvableGroebnerBaseParallel(int threads, ThreadPool pool, SolvableReduction<C> sred, PairList<C> pl)
          Constructor.
 
Method Summary
 SolvableExtendedGB<C> extLeftGB(int modv, java.util.List<GenSolvablePolynomial<C>> F)
          Solvable Extended Groebner base using critical pair class.
 java.util.List<GenSolvablePolynomial<C>> leftGB(int modv, java.util.List<GenSolvablePolynomial<C>> F)
          Parallel Groebner base using sequential pair order class.
 java.util.List<GenSolvablePolynomial<C>> leftMinimalGB(java.util.List<GenSolvablePolynomial<C>> Fp)
          Minimal ordered groebner basis, parallel.
 void terminate()
          Cleanup and terminate ThreadPool.
 java.util.List<GenSolvablePolynomial<C>> twosidedGB(int modv, java.util.List<GenSolvablePolynomial<C>> Fp)
          Twosided Groebner base using pairlist class.
 
Methods inherited from class edu.jas.gb.SolvableGroebnerBaseAbstract
extLeftGB, isLeftGB, isLeftGB, isLeftReductionMatrix, isLeftReductionMatrix, isRightGB, isRightGB, isTwosidedGB, isTwosidedGB, leftGB, rightGB, rightGB, twosidedGB
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

threads

protected final int threads
Number of threads to use.


pool

protected final ThreadPool pool
Pool of threads to use.

Constructor Detail

SolvableGroebnerBaseParallel

public SolvableGroebnerBaseParallel()
Constructor.


SolvableGroebnerBaseParallel

public SolvableGroebnerBaseParallel(int threads)
Constructor.

Parameters:
threads - number of threads to use.

SolvableGroebnerBaseParallel

public SolvableGroebnerBaseParallel(int threads,
                                    ThreadPool pool)
Constructor.

Parameters:
threads - number of threads to use.
pool - ThreadPool to use.

SolvableGroebnerBaseParallel

public SolvableGroebnerBaseParallel(int threads,
                                    SolvableReduction<C> sred)
Constructor.

Parameters:
threads - number of threads to use.
sred - parallelism aware reduction engine

SolvableGroebnerBaseParallel

public SolvableGroebnerBaseParallel(int threads,
                                    PairList<C> pl)
Constructor.

Parameters:
threads - number of threads to use.
pl - pair selection strategy

SolvableGroebnerBaseParallel

public SolvableGroebnerBaseParallel(int threads,
                                    SolvableReduction<C> sred,
                                    PairList<C> pl)
Constructor.

Parameters:
threads - number of threads to use.
sred - parallelism aware reduction engine
pl - pair selection strategy

SolvableGroebnerBaseParallel

public SolvableGroebnerBaseParallel(int threads,
                                    ThreadPool pool,
                                    SolvableReduction<C> sred)
Constructor.

Parameters:
threads - number of threads to use.
pool - ThreadPool to use.
sred - parallelism aware reduction engine

SolvableGroebnerBaseParallel

public SolvableGroebnerBaseParallel(int threads,
                                    ThreadPool pool,
                                    SolvableReduction<C> sred,
                                    PairList<C> pl)
Constructor.

Parameters:
threads - number of threads to use.
pool - ThreadPool to use.
sred - parallelism aware reduction engine
pl - pair selection strategy
Method Detail

terminate

public void terminate()
Cleanup and terminate ThreadPool.


leftGB

public java.util.List<GenSolvablePolynomial<C>> leftGB(int modv,
                                                       java.util.List<GenSolvablePolynomial<C>> F)
Parallel Groebner base using sequential pair order class. Threads maintain pairlist.

Parameters:
modv - number of module variables.
F - polynomial list.
Returns:
GB(F) a Groebner base of F.

leftMinimalGB

public java.util.List<GenSolvablePolynomial<C>> leftMinimalGB(java.util.List<GenSolvablePolynomial<C>> Fp)
Minimal ordered groebner basis, parallel.

Specified by:
leftMinimalGB in interface SolvableGroebnerBase<C extends RingElem<C>>
Overrides:
leftMinimalGB in class SolvableGroebnerBaseAbstract<C extends RingElem<C>>
Parameters:
Fp - a Groebner base.
Returns:
minimalGB(F) a minimal Groebner base of Fp.

extLeftGB

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

Parameters:
modv - module variable number.
F - solvable polynomial list.
Returns:
a container for an extended left Groebner base of F.

twosidedGB

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

Parameters:
modv - number of module variables.
Fp - solvable polynomial list.
Returns:
tsGB(Fp) a twosided Groebner base of F.