public class GBFactory extends java.lang.Object
Usage: To create objects that implement the GroebnerBase
interface use the GBFactory
. It will select an appropriate
implementation based on the types of polynomial coefficients C. The method to
obtain an implementation is getImplementation()
.
getImplementation()
returns an object of a class which
implements the GroebnerBase
interface, more precisely an object
of abstract class GroebnerBaseAbstract
.
GroebnerBase<CT> engine; engine = GBFactory.<CT> getImplementation(cofac); c = engine.GB(A);
For example, if the coefficient type is BigInteger, the usage looks like
BigInteger cofac = new BigInteger(); GroebnerBase<BigInteger> engine; engine = GBFactory.getImplementation(cofac); c = engine.GB(A);
GroebnerBase
,
GBAlgorithmBuilder
Modifier and Type | Class and Description |
---|---|
static class |
GBFactory.Algo
Algorithm indicators: igb = integerGB, egb = e-GB, dgb = d-GB, qgb =
fraction coefficients GB, ffgb = fraction free GB.
|
Modifier | Constructor and Description |
---|---|
protected |
GBFactory()
Protected factory constructor.
|
Modifier and Type | Method and Description |
---|---|
static <C extends GcdRingElem<C>> |
getImplementation()
Determine suitable implementation of GB algorithms, no factory case.
|
static GroebnerBaseAbstract<BigInteger> |
getImplementation(BigInteger fac)
Determine suitable implementation of GB algorithms, case BigInteger.
|
static GroebnerBaseAbstract<BigInteger> |
getImplementation(BigInteger fac,
GBFactory.Algo a)
Determine suitable implementation of GB algorithms, case BigInteger.
|
static GroebnerBaseAbstract<BigInteger> |
getImplementation(BigInteger fac,
GBFactory.Algo a,
PairList<BigInteger> pl)
Determine suitable implementation of GB algorithms, case BigInteger.
|
static GroebnerBaseAbstract<BigInteger> |
getImplementation(BigInteger fac,
PairList<BigInteger> pl)
Determine suitable implementation of GB algorithms, case BigInteger.
|
static GroebnerBaseAbstract<BigRational> |
getImplementation(BigRational fac)
Determine suitable implementation of GB algorithms, case BigRational.
|
static GroebnerBaseAbstract<BigRational> |
getImplementation(BigRational fac,
GBFactory.Algo a)
Determine suitable implementation of GB algorithms, case BigRational.
|
static GroebnerBaseAbstract<BigRational> |
getImplementation(BigRational fac,
GBFactory.Algo a,
PairList<BigRational> pl)
Determine suitable implementation of GB algorithms, case BigRational.
|
static GroebnerBaseAbstract<BigRational> |
getImplementation(BigRational fac,
PairList<BigRational> pl)
Determine suitable implementation of GB algorithms, case BigRational.
|
static <C extends GcdRingElem<C>> |
getImplementation(GenPolynomialRing<C> fac)
Determine suitable implementation of GB algorithms, case (recursive)
polynomial.
|
static <C extends GcdRingElem<C>> |
getImplementation(GenPolynomialRing<C> fac,
GBFactory.Algo a)
Determine suitable implementation of GB algorithms, case (recursive)
polynomial.
|
static <C extends GcdRingElem<C>> |
getImplementation(GenPolynomialRing<C> fac,
GBFactory.Algo a,
PairList<GenPolynomial<C>> pl)
Determine suitable implementation of GB algorithms, case (recursive)
polynomial.
|
static <C extends GcdRingElem<C>> |
getImplementation(GenPolynomialRing<C> fac,
PairList<GenPolynomial<C>> pl)
Determine suitable implementation of GB algorithms, case (recursive)
polynomial.
|
static GroebnerBaseAbstract<ModInteger> |
getImplementation(ModIntegerRing fac)
Determine suitable implementation of GB algorithms, case ModInteger.
|
static GroebnerBaseAbstract<ModInteger> |
getImplementation(ModIntegerRing fac,
PairList<ModInteger> pl)
Determine suitable implementation of GB algorithms, case ModInteger.
|
static GroebnerBaseAbstract<ModInt> |
getImplementation(ModIntRing fac)
Determine suitable implementation of GB algorithms, case ModInt.
|
static GroebnerBaseAbstract<ModInt> |
getImplementation(ModIntRing fac,
PairList<ModInt> pl)
Determine suitable implementation of GB algorithms, case ModInt.
|
static GroebnerBaseAbstract<ModLong> |
getImplementation(ModLongRing fac)
Determine suitable implementation of GB algorithms, case ModLong.
|
static GroebnerBaseAbstract<ModLong> |
getImplementation(ModLongRing fac,
PairList<ModLong> pl)
Determine suitable implementation of GB algorithms, case ModLong.
|
static <C extends RingElem<C>> |
getImplementation(ProductRing<C> fac)
Determine suitable implementation of GB algorithms, case regular rings.
|
static <C extends GcdRingElem<C>> |
getImplementation(QuotientRing<C> fac)
Determine suitable implementation of GB algorithms, case Quotient
coefficients.
|
static <C extends GcdRingElem<C>> |
getImplementation(QuotientRing<C> fac,
GBFactory.Algo a)
Determine suitable implementation of GB algorithms, case Quotient
coefficients.
|
static <C extends GcdRingElem<C>> |
getImplementation(QuotientRing<C> fac,
GBFactory.Algo a,
PairList<Quotient<C>> pl)
Determine suitable implementation of GB algorithms, case Quotient
coefficients.
|
static <C extends GcdRingElem<C>> |
getImplementation(QuotientRing<C> fac,
PairList<Quotient<C>> pl)
Determine suitable implementation of GB algorithms, case Quotient
coefficients.
|
static <C extends GcdRingElem<C>> |
getImplementation(RingFactory<C> fac)
Determine suitable implementation of GB algorithms, other cases.
|
static <C extends GcdRingElem<C>> |
getImplementation(RingFactory<C> fac,
PairList<C> pl)
Determine suitable implementation of GB algorithms, other cases.
|
static <C extends GcdRingElem<C>> |
getProxy(GenPolynomialRing<C> fac)
Determine suitable parallel/concurrent implementation of GB algorithms if
possible.
|
static <C extends GcdRingElem<C>> |
getProxy(RingFactory<C> fac)
Determine suitable parallel/concurrent implementation of GB algorithms if
possible.
|
static <C extends GcdRingElem<C>> |
getProxy(RingFactory<C> fac,
PairList<C> pl)
Determine suitable parallel/concurrent implementation of GB algorithms if
possible.
|
protected GBFactory()
public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<C> getImplementation()
public static GroebnerBaseAbstract<ModLong> getImplementation(ModLongRing fac)
fac
- ModLongRing.public static GroebnerBaseAbstract<ModLong> getImplementation(ModLongRing fac, PairList<ModLong> pl)
fac
- ModLongRing.pl
- pair selection strategypublic static GroebnerBaseAbstract<ModInt> getImplementation(ModIntRing fac)
fac
- ModIntRing.public static GroebnerBaseAbstract<ModInt> getImplementation(ModIntRing fac, PairList<ModInt> pl)
fac
- ModIntRing.pl
- pair selection strategypublic static GroebnerBaseAbstract<ModInteger> getImplementation(ModIntegerRing fac)
fac
- ModIntegerRing.public static GroebnerBaseAbstract<ModInteger> getImplementation(ModIntegerRing fac, PairList<ModInteger> pl)
fac
- ModIntegerRing.pl
- pair selection strategypublic static GroebnerBaseAbstract<BigInteger> getImplementation(BigInteger fac)
fac
- BigInteger.public static GroebnerBaseAbstract<BigInteger> getImplementation(BigInteger fac, GBFactory.Algo a)
fac
- BigInteger.a
- algorithm, a = igb, egb, dgb.public static GroebnerBaseAbstract<BigInteger> getImplementation(BigInteger fac, PairList<BigInteger> pl)
fac
- BigInteger.pl
- pair selection strategypublic static GroebnerBaseAbstract<BigInteger> getImplementation(BigInteger fac, GBFactory.Algo a, PairList<BigInteger> pl)
fac
- BigInteger.a
- algorithm, a = igb, egb, dgb.pl
- pair selection strategypublic static GroebnerBaseAbstract<BigRational> getImplementation(BigRational fac)
fac
- BigRational.public static GroebnerBaseAbstract<BigRational> getImplementation(BigRational fac, GBFactory.Algo a)
fac
- BigRational.a
- algorithm, a = qgb, ffgb.public static GroebnerBaseAbstract<BigRational> getImplementation(BigRational fac, PairList<BigRational> pl)
fac
- BigRational.pl
- pair selection strategypublic static GroebnerBaseAbstract<BigRational> getImplementation(BigRational fac, GBFactory.Algo a, PairList<BigRational> pl)
fac
- BigRational.a
- algorithm, a = qgb, ffgb.pl
- pair selection strategypublic static <C extends GcdRingElem<C>> GroebnerBaseAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac)
fac
- QuotientRing.public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac, GBFactory.Algo a)
fac
- QuotientRing.a
- algorithm, a = qgb, ffgb.public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac, PairList<Quotient<C>> pl)
fac
- QuotientRing.pl
- pair selection strategypublic static <C extends GcdRingElem<C>> GroebnerBaseAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac, GBFactory.Algo a, PairList<Quotient<C>> pl)
fac
- QuotientRing.a
- algorithm, a = qgb, ffgb.pl
- pair selection strategypublic static <C extends GcdRingElem<C>> GroebnerBaseAbstract<GenPolynomial<C>> getImplementation(GenPolynomialRing<C> fac)
fac
- GenPolynomialRing<C>.public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<GenPolynomial<C>> getImplementation(GenPolynomialRing<C> fac, GBFactory.Algo a)
fac
- GenPolynomialRing<C>.a
- algorithm, a = igb or egb, dgb if fac is univariate over a
field.public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<GenPolynomial<C>> getImplementation(GenPolynomialRing<C> fac, PairList<GenPolynomial<C>> pl)
fac
- GenPolynomialRing<C>.pl
- pair selection strategypublic static <C extends GcdRingElem<C>> GroebnerBaseAbstract<GenPolynomial<C>> getImplementation(GenPolynomialRing<C> fac, GBFactory.Algo a, PairList<GenPolynomial<C>> pl)
fac
- GenPolynomialRing<C>.a
- algorithm, a = igb or egb, dgb if fac is univariate over a
field.pl
- pair selection strategypublic static <C extends RingElem<C>> GroebnerBaseAbstract<Product<C>> getImplementation(ProductRing<C> fac)
fac
- RegularRing.public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<C> getImplementation(RingFactory<C> fac)
fac
- RingFactory<C>.public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<C> getImplementation(RingFactory<C> fac, PairList<C> pl)
fac
- RingFactory<C>.pl
- pair selection strategypublic static <C extends GcdRingElem<C>> GroebnerBaseAbstract<C> getProxy(RingFactory<C> fac)
fac
- RingFactory<C>.public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<C> getProxy(RingFactory<C> fac, PairList<C> pl)
fac
- RingFactory<C>.pl
- pair selection strategypublic static <C extends GcdRingElem<C>> GroebnerBaseAbstract<GenPolynomial<C>> getProxy(GenPolynomialRing<C> fac)
fac
- RingFactory<C>.