public class GBAlgorithmBuilder<C extends GcdRingElem<C>> extends java.lang.Object implements java.io.Serializable
GroebnerBase
,
GBFactory
,
Serialized FormGroebnerBase
interface one can use the GBFactory
or this GBAlgorithmBuilder
.
This class will select and compose an
appropriate implementation based on the types of polynomial
coefficients C and the desired properties. To build an implementation start with
the static method polynomialRing()
to define the polynomial ring.
Then continue to construct the algorithm with the methods
optimize()
or optimize(boolean)
for term order (variable order)
optimization,
fractionFree()
for clearing denominators and computing with pseudo reduction,
graded()
for using the FGLM algorithm to first compute with a graded term order and
then constructing a lexicographical Gröbner base,
parallel()
additionaly compute a Gröbner base over a field in parallel,
euclideanDomain()
for computing a e-Gröbner base,
domainAlgorithm(Algo)
for computing a d- or e-Gröbner base,
build()
to obtain an implementaton of
class GroebnerBaseAbstract
. For example
GenPolynomialRing<C> pf = new GenPolynomialRing<C>(cofac, vars); GroebnerBaseAbstract<C> engine; engine = GBAlgorithmBuilder.<C> polynomialRing(pf).fractionFree().parallel().optimize().build(); c = engine.GB(A);For example, if the coefficient type is BigRational, the usage looks like
GenPolynomialRing<BigRational> pf = new GenPolynomialRing<BigRational>(cofac, vars); GroebnerBaseAbstract<BigRational> engine; engine = GBAlgorithmBuilder.<BigRational> polynomialRing(pf).fractionFree().parallel().optimize().build(); c = engine.GB(A);Note: Not all combinations are meanigful
Modifier and Type | Field and Description |
---|---|
GenPolynomialRing<C> |
ring
The current polynomial ring.
|
Modifier | Constructor and Description |
---|---|
protected |
GBAlgorithmBuilder()
Constructor not for use.
|
|
GBAlgorithmBuilder(GenPolynomialRing<C> ring)
Constructor.
|
|
GBAlgorithmBuilder(GenPolynomialRing<C> ring,
GroebnerBaseAbstract<C> algo)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
GroebnerBaseAbstract<C> |
build()
Build the GB algorithm implementaton.
|
GBAlgorithmBuilder<C> |
domainAlgorithm(GBFactory.Algo a)
Request d- or e-GB algorithm.
|
GBAlgorithmBuilder<C> |
euclideanDomain()
Request e-GB algorithm.
|
GBAlgorithmBuilder<C> |
fractionFree()
Request fraction free algorithm.
|
GBAlgorithmBuilder<C> |
graded()
Request FGLM algorithm.
|
GBAlgorithmBuilder<C> |
optimize()
Request term order optimization.
|
GBAlgorithmBuilder<C> |
optimize(boolean rP)
Request term order optimization.
|
GBAlgorithmBuilder<C> |
parallel()
Request parallel algorithm.
|
GBAlgorithmBuilder<C> |
parallel(int threads)
Request parallel algorithm.
|
static <C extends GcdRingElem<C>> |
polynomialRing(GenPolynomialRing<C> fac)
Define polynomial ring.
|
java.lang.String |
toScript()
Get a scripting compatible string representation.
|
java.lang.String |
toString()
String representation of the GB algorithm implementation.
|
public final GenPolynomialRing<C extends GcdRingElem<C>> ring
protected GBAlgorithmBuilder()
public GBAlgorithmBuilder(GenPolynomialRing<C> ring)
ring
- the polynomial ring.public GBAlgorithmBuilder(GenPolynomialRing<C> ring, GroebnerBaseAbstract<C> algo)
ring
- the polynomial ring.algo
- already determined algorithm.public GroebnerBaseAbstract<C> build()
public static <C extends GcdRingElem<C>> GBAlgorithmBuilder<C> polynomialRing(GenPolynomialRing<C> fac)
fac
- the commutative polynomial ring.public GBAlgorithmBuilder<C> optimize()
public GBAlgorithmBuilder<C> optimize(boolean rP)
rP
- true for return of permuted polynomials, false for inverse
permuted polynomials and new GB computation.public GBAlgorithmBuilder<C> fractionFree()
public GBAlgorithmBuilder<C> euclideanDomain()
public GBAlgorithmBuilder<C> domainAlgorithm(GBFactory.Algo a)
a
- algorithm from GBFactory.Algo.public GBAlgorithmBuilder<C> parallel()
public GBAlgorithmBuilder<C> parallel(int threads)
threads
- number of threads requested.public GBAlgorithmBuilder<C> graded()
public java.lang.String toString()
toString
in class java.lang.Object
Object.toString()
public java.lang.String toScript()
Element.toScript()