public class GBFactory extends java.lang.Object
GroebnerBase,
GBAlgorithmBuilderGroebnerBase
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);
| 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<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<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>.