public class SGBFactory extends java.lang.Object
Usage: To create objects that implement the
SolvableGroebnerBase interface use the SGBFactory.
It will select an appropriate implementation based on the types of polynomial
coefficients C. The method to obtain an implementation is
getImplementation(). It returns an object of a class which
implements the SolvableGroebnerBase interface, more precisely an
object of abstract class SolvableGroebnerBaseAbstract.
SolvableGroebnerBase<CT> engine; engine = SGBFactory.<CT> getImplementation(cofac); c = engine.GB(A);
For example, if the coefficient type is BigInteger, the usage looks like
BigInteger cofac = new BigInteger(); SolvableGroebnerBase<BigInteger> engine; engine = SGBFactory.getImplementation(cofac); c = engine.GB(A);
GroebnerBase,
SolvableGroebnerBase,
GBAlgorithmBuilder| Modifier | Constructor and Description |
|---|---|
protected |
SGBFactory()
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 SolvableGroebnerBaseAbstract<BigInteger> |
getImplementation(BigInteger fac)
Determine suitable implementation of GB algorithms, case BigInteger.
|
static SolvableGroebnerBaseAbstract<BigInteger> |
getImplementation(BigInteger fac,
GBFactory.Algo a)
Determine suitable implementation of GB algorithms, case BigInteger.
|
static SolvableGroebnerBaseAbstract<BigInteger> |
getImplementation(BigInteger fac,
GBFactory.Algo a,
PairList<BigInteger> pl)
Determine suitable implementation of GB algorithms, case BigInteger.
|
static SolvableGroebnerBaseAbstract<BigInteger> |
getImplementation(BigInteger fac,
PairList<BigInteger> pl)
Determine suitable implementation of GB algorithms, case BigInteger.
|
static SolvableGroebnerBaseAbstract<BigRational> |
getImplementation(BigRational fac)
Determine suitable implementation of GB algorithms, case BigRational.
|
static SolvableGroebnerBaseAbstract<BigRational> |
getImplementation(BigRational fac,
GBFactory.Algo a)
Determine suitable implementation of GB algorithms, case BigRational.
|
static SolvableGroebnerBaseAbstract<BigRational> |
getImplementation(BigRational fac,
GBFactory.Algo a,
PairList<BigRational> pl)
Determine suitable implementation of GB algorithms, case BigRational.
|
static SolvableGroebnerBaseAbstract<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 SolvableGroebnerBaseAbstract<ModInteger> |
getImplementation(ModIntegerRing fac)
Determine suitable implementation of GB algorithms, case ModInteger.
|
static SolvableGroebnerBaseAbstract<ModInteger> |
getImplementation(ModIntegerRing fac,
PairList<ModInteger> pl)
Determine suitable implementation of GB algorithms, case ModInteger.
|
static SolvableGroebnerBaseAbstract<ModLong> |
getImplementation(ModLongRing fac)
Determine suitable implementation of GB algorithms, case ModLong.
|
static SolvableGroebnerBaseAbstract<ModLong> |
getImplementation(ModLongRing fac,
PairList<ModLong> pl)
Determine suitable implementation of GB algorithms, case ModLong.
|
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 SGBFactory()
public static <C extends GcdRingElem<C>> SolvableGroebnerBaseAbstract<C> getImplementation()
public static SolvableGroebnerBaseAbstract<ModLong> getImplementation(ModLongRing fac)
fac - ModLongRing.public static SolvableGroebnerBaseAbstract<ModLong> getImplementation(ModLongRing fac, PairList<ModLong> pl)
fac - ModLongRing.pl - pair selection strategypublic static SolvableGroebnerBaseAbstract<ModInteger> getImplementation(ModIntegerRing fac)
fac - ModIntegerRing.public static SolvableGroebnerBaseAbstract<ModInteger> getImplementation(ModIntegerRing fac, PairList<ModInteger> pl)
fac - ModIntegerRing.pl - pair selection strategypublic static SolvableGroebnerBaseAbstract<BigInteger> getImplementation(BigInteger fac)
fac - BigInteger.public static SolvableGroebnerBaseAbstract<BigInteger> getImplementation(BigInteger fac, GBFactory.Algo a)
fac - BigInteger.a - algorithm, a = igb, egb, dgb.public static SolvableGroebnerBaseAbstract<BigInteger> getImplementation(BigInteger fac, PairList<BigInteger> pl)
fac - BigInteger.pl - pair selection strategypublic static SolvableGroebnerBaseAbstract<BigInteger> getImplementation(BigInteger fac, GBFactory.Algo a, PairList<BigInteger> pl)
fac - BigInteger.a - algorithm, a = igb, egb, dgb.pl - pair selection strategypublic static SolvableGroebnerBaseAbstract<BigRational> getImplementation(BigRational fac)
fac - BigRational.public static SolvableGroebnerBaseAbstract<BigRational> getImplementation(BigRational fac, GBFactory.Algo a)
fac - BigRational.a - algorithm, a = qgb, ffgb.public static SolvableGroebnerBaseAbstract<BigRational> getImplementation(BigRational fac, PairList<BigRational> pl)
fac - BigRational.pl - pair selection strategypublic static SolvableGroebnerBaseAbstract<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>> SolvableGroebnerBaseAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac)
fac - QuotientRing.public static <C extends GcdRingElem<C>> SolvableGroebnerBaseAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac, GBFactory.Algo a)
fac - QuotientRing.a - algorithm, a = qgb, ffgb.public static <C extends GcdRingElem<C>> SolvableGroebnerBaseAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac, PairList<Quotient<C>> pl)
fac - QuotientRing.pl - pair selection strategypublic static <C extends GcdRingElem<C>> SolvableGroebnerBaseAbstract<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>> SolvableGroebnerBaseAbstract<GenPolynomial<C>> getImplementation(GenPolynomialRing<C> fac)
fac - GenPolynomialRing<C>.public static <C extends GcdRingElem<C>> SolvableGroebnerBaseAbstract<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>> SolvableGroebnerBaseAbstract<GenPolynomial<C>> getImplementation(GenPolynomialRing<C> fac, PairList<GenPolynomial<C>> pl)
fac - GenPolynomialRing<C>.pl - pair selection strategypublic static <C extends GcdRingElem<C>> SolvableGroebnerBaseAbstract<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 GcdRingElem<C>> SolvableGroebnerBaseAbstract<C> getImplementation(RingFactory<C> fac)
fac - RingFactory<C>.public static <C extends GcdRingElem<C>> SolvableGroebnerBaseAbstract<C> getImplementation(RingFactory<C> fac, PairList<C> pl)
fac - RingFactory<C>.pl - pair selection strategypublic static <C extends GcdRingElem<C>> SolvableGroebnerBaseAbstract<C> getProxy(RingFactory<C> fac)
fac - RingFactory<C>.public static <C extends GcdRingElem<C>> SolvableGroebnerBaseAbstract<C> getProxy(RingFactory<C> fac, PairList<C> pl)
fac - RingFactory<C>.pl - pair selection strategypublic static <C extends GcdRingElem<C>> SolvableGroebnerBaseAbstract<GenPolynomial<C>> getProxy(GenPolynomialRing<C> fac)
fac - RingFactory<C>.