Class GBFactory
java.lang.Object
edu.jas.gbufd.GBFactory
Groebner bases algorithms factory. Select appropriate Groebner bases engine
based on the coefficient types.
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);
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumAlgorithm indicators: igb = integerGB, egb = e-GB, dgb = d-GB, qgb = fraction coefficients GB, ffgb = fraction free GB. -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <C extends GcdRingElem<C>>
GroebnerBaseAbstract<C> Determine suitable implementation of GB algorithms, no factory case.static GroebnerBaseAbstract<BigInteger> 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<BigInteger> 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<BigRational> 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 GroebnerBaseAbstract<BigRational> 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<ModInteger> 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> 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> 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>>
GroebnerBaseAbstract<Product<C>> getImplementation(ProductRing<C> fac) Determine suitable implementation of GB algorithms, case regular rings.static <C extends GcdRingElem<C>>
GroebnerBaseAbstract<GenPolynomial<C>> getImplementation(GenPolynomialRing<C> fac) Determine suitable implementation of GB algorithms, case (recursive) polynomial.static <C extends GcdRingElem<C>>
GroebnerBaseAbstract<GenPolynomial<C>> getImplementation(GenPolynomialRing<C> fac, PairList<GenPolynomial<C>> pl) Determine suitable implementation of GB algorithms, case (recursive) polynomial.static <C extends GcdRingElem<C>>
GroebnerBaseAbstract<GenPolynomial<C>> getImplementation(GenPolynomialRing<C> fac, GBFactory.Algo a) Determine suitable implementation of GB algorithms, case (recursive) polynomial.static <C extends GcdRingElem<C>>
GroebnerBaseAbstract<GenPolynomial<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>>
GroebnerBaseAbstract<C> getImplementation(RingFactory<C> fac) Determine suitable implementation of GB algorithms, other cases.static <C extends GcdRingElem<C>>
GroebnerBaseAbstract<C> getImplementation(RingFactory<C> fac, PairList<C> pl) Determine suitable implementation of GB algorithms, other cases.static <C extends GcdRingElem<C>>
GroebnerBaseAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac) Determine suitable implementation of GB algorithms, case Quotient coefficients.static <C extends GcdRingElem<C>>
GroebnerBaseAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac, PairList<Quotient<C>> pl) Determine suitable implementation of GB algorithms, case Quotient coefficients.static <C extends GcdRingElem<C>>
GroebnerBaseAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac, GBFactory.Algo a) Determine suitable implementation of GB algorithms, case Quotient coefficients.static <C extends GcdRingElem<C>>
GroebnerBaseAbstract<Quotient<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>>
GroebnerBaseAbstract<GenPolynomial<C>> getProxy(GenPolynomialRing<C> fac) Determine suitable parallel/concurrent implementation of GB algorithms if possible.static <C extends GcdRingElem<C>>
GroebnerBaseAbstract<C> getProxy(RingFactory<C> fac) Determine suitable parallel/concurrent implementation of GB algorithms if possible.static <C extends GcdRingElem<C>>
GroebnerBaseAbstract<C> getProxy(RingFactory<C> fac, PairList<C> pl) Determine suitable parallel/concurrent implementation of GB algorithms if possible.
-
Field Details
-
logger
private static final org.apache.logging.log4j.Logger logger
-
-
Constructor Details
-
GBFactory
protected GBFactory()Protected factory constructor.
-
-
Method Details
-
getImplementation
Determine suitable implementation of GB algorithms, no factory case.- Returns:
- GB algorithm implementation for field coefficients.
-
getImplementation
Determine suitable implementation of GB algorithms, case ModLong.- Parameters:
fac- ModLongRing.- Returns:
- GB algorithm implementation.
-
getImplementation
public static GroebnerBaseAbstract<ModLong> getImplementation(ModLongRing fac, PairList<ModLong> pl) Determine suitable implementation of GB algorithms, case ModLong.- Parameters:
fac- ModLongRing.pl- pair selection strategy- Returns:
- GB algorithm implementation.
-
getImplementation
Determine suitable implementation of GB algorithms, case ModInt.- Parameters:
fac- ModIntRing.- Returns:
- GB algorithm implementation.
-
getImplementation
Determine suitable implementation of GB algorithms, case ModInt.- Parameters:
fac- ModIntRing.pl- pair selection strategy- Returns:
- GB algorithm implementation.
-
getImplementation
Determine suitable implementation of GB algorithms, case ModInteger.- Parameters:
fac- ModIntegerRing.- Returns:
- GB algorithm implementation.
-
getImplementation
public static GroebnerBaseAbstract<ModInteger> getImplementation(ModIntegerRing fac, PairList<ModInteger> pl) Determine suitable implementation of GB algorithms, case ModInteger.- Parameters:
fac- ModIntegerRing.pl- pair selection strategy- Returns:
- GB algorithm implementation.
-
getImplementation
Determine suitable implementation of GB algorithms, case BigInteger.- Parameters:
fac- BigInteger.- Returns:
- GB algorithm implementation.
-
getImplementation
Determine suitable implementation of GB algorithms, case BigInteger.- Parameters:
fac- BigInteger.a- algorithm, a = igb, egb, dgb.- Returns:
- GB algorithm implementation.
-
getImplementation
public static GroebnerBaseAbstract<BigInteger> getImplementation(BigInteger fac, PairList<BigInteger> pl) Determine suitable implementation of GB algorithms, case BigInteger.- Parameters:
fac- BigInteger.pl- pair selection strategy- Returns:
- GB algorithm implementation.
-
getImplementation
public static GroebnerBaseAbstract<BigInteger> getImplementation(BigInteger fac, GBFactory.Algo a, PairList<BigInteger> pl) Determine suitable implementation of GB algorithms, case BigInteger.- Parameters:
fac- BigInteger.a- algorithm, a = igb, egb, dgb.pl- pair selection strategy- Returns:
- GB algorithm implementation.
-
getImplementation
Determine suitable implementation of GB algorithms, case BigRational.- Parameters:
fac- BigRational.- Returns:
- GB algorithm implementation.
-
getImplementation
public static GroebnerBaseAbstract<BigRational> getImplementation(BigRational fac, GBFactory.Algo a) Determine suitable implementation of GB algorithms, case BigRational.- Parameters:
fac- BigRational.a- algorithm, a = qgb, ffgb.- Returns:
- GB algorithm implementation.
-
getImplementation
public static GroebnerBaseAbstract<BigRational> getImplementation(BigRational fac, PairList<BigRational> pl) Determine suitable implementation of GB algorithms, case BigRational.- Parameters:
fac- BigRational.pl- pair selection strategy- Returns:
- GB algorithm implementation.
-
getImplementation
public static GroebnerBaseAbstract<BigRational> getImplementation(BigRational fac, GBFactory.Algo a, PairList<BigRational> pl) Determine suitable implementation of GB algorithms, case BigRational.- Parameters:
fac- BigRational.a- algorithm, a = qgb, ffgb.pl- pair selection strategy- Returns:
- GB algorithm implementation.
-
getImplementation
public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac) Determine suitable implementation of GB algorithms, case Quotient coefficients.- Parameters:
fac- QuotientRing.- Returns:
- GB algorithm implementation.
-
getImplementation
public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac, GBFactory.Algo a) Determine suitable implementation of GB algorithms, case Quotient coefficients.- Parameters:
fac- QuotientRing.a- algorithm, a = qgb, ffgb.- Returns:
- GB algorithm implementation.
-
getImplementation
public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac, PairList<Quotient<C>> pl) Determine suitable implementation of GB algorithms, case Quotient coefficients.- Parameters:
fac- QuotientRing.pl- pair selection strategy- Returns:
- GB algorithm implementation.
-
getImplementation
public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac, GBFactory.Algo a, PairList<Quotient<C>> pl) Determine suitable implementation of GB algorithms, case Quotient coefficients.- Parameters:
fac- QuotientRing.a- algorithm, a = qgb, ffgb.pl- pair selection strategy- Returns:
- GB algorithm implementation.
-
getImplementation
public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<GenPolynomial<C>> getImplementation(GenPolynomialRing<C> fac) Determine suitable implementation of GB algorithms, case (recursive) polynomial.- Parameters:
fac- GenPolynomialRing<C>.- Returns:
- GB algorithm implementation.
-
getImplementation
public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<GenPolynomial<C>> getImplementation(GenPolynomialRing<C> fac, GBFactory.Algo a) Determine suitable implementation of GB algorithms, case (recursive) polynomial.- Parameters:
fac- GenPolynomialRing<C>.a- algorithm, a = igb or egb, dgb if fac is univariate over a field.- Returns:
- GB algorithm implementation.
-
getImplementation
public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<GenPolynomial<C>> getImplementation(GenPolynomialRing<C> fac, PairList<GenPolynomial<C>> pl) Determine suitable implementation of GB algorithms, case (recursive) polynomial.- Parameters:
fac- GenPolynomialRing<C>.pl- pair selection strategy- Returns:
- GB algorithm implementation.
-
getImplementation
public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<GenPolynomial<C>> getImplementation(GenPolynomialRing<C> fac, GBFactory.Algo a, PairList<GenPolynomial<C>> pl) Determine suitable implementation of GB algorithms, case (recursive) polynomial.- Parameters:
fac- GenPolynomialRing<C>.a- algorithm, a = igb or egb, dgb if fac is univariate over a field.pl- pair selection strategy- Returns:
- GB algorithm implementation.
-
getImplementation
public static <C extends RingElem<C>> GroebnerBaseAbstract<Product<C>> getImplementation(ProductRing<C> fac) Determine suitable implementation of GB algorithms, case regular rings.- Parameters:
fac- RegularRing.- Returns:
- GB algorithm implementation.
-
getImplementation
public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<C> getImplementation(RingFactory<C> fac) Determine suitable implementation of GB algorithms, other cases.- Parameters:
fac- RingFactory<C>.- Returns:
- GB algorithm implementation.
-
getImplementation
public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<C> getImplementation(RingFactory<C> fac, PairList<C> pl) Determine suitable implementation of GB algorithms, other cases.- Parameters:
fac- RingFactory<C>.pl- pair selection strategy- Returns:
- GB algorithm implementation.
-
getProxy
Determine suitable parallel/concurrent implementation of GB algorithms if possible.- Parameters:
fac- RingFactory<C>.- Returns:
- GB proxy algorithm implementation.
-
getProxy
public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<C> getProxy(RingFactory<C> fac, PairList<C> pl) Determine suitable parallel/concurrent implementation of GB algorithms if possible.- Parameters:
fac- RingFactory<C>.pl- pair selection strategy- Returns:
- GB proxy algorithm implementation.
-
getProxy
public static <C extends GcdRingElem<C>> GroebnerBaseAbstract<GenPolynomial<C>> getProxy(GenPolynomialRing<C> fac) Determine suitable parallel/concurrent implementation of GB algorithms if possible.- Parameters:
fac- RingFactory<C>.- Returns:
- GB proxy algorithm implementation.
-