Class SGBFactory
java.lang.Object
edu.jas.gbufd.SGBFactory
Solvable Groebner bases algorithms factory. Select appropriate Solvable
Groebner bases engine based on the coefficient types.
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);
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <C extends GcdRingElem<C>>
SolvableGroebnerBaseAbstract<C> Determine suitable implementation of GB algorithms, no factory case.Determine suitable implementation of GB algorithms, case BigInteger.getImplementation(BigInteger fac, PairList<BigInteger> pl) Determine suitable implementation of GB algorithms, case BigInteger.Determine suitable implementation of GB algorithms, case BigInteger.getImplementation(BigInteger fac, GBFactory.Algo a, PairList<BigInteger> pl) Determine suitable implementation of GB algorithms, case BigInteger.Determine suitable implementation of GB algorithms, case BigRational.getImplementation(BigRational fac, PairList<BigRational> pl) Determine suitable implementation of GB algorithms, case BigRational.Determine suitable implementation of GB algorithms, case BigRational.getImplementation(BigRational fac, GBFactory.Algo a, PairList<BigRational> pl) Determine suitable implementation of GB algorithms, case BigRational.Determine suitable implementation of GB algorithms, case ModInteger.getImplementation(ModIntegerRing fac, PairList<ModInteger> pl) Determine suitable implementation of GB algorithms, case ModInteger.static SolvableGroebnerBaseAbstract<ModLong> 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>>
SolvableGroebnerBaseAbstract<GenPolynomial<C>> getImplementation(GenPolynomialRing<C> fac) Determine suitable implementation of GB algorithms, case (recursive) polynomial.static <C extends GcdRingElem<C>>
SolvableGroebnerBaseAbstract<GenPolynomial<C>> getImplementation(GenPolynomialRing<C> fac, PairList<GenPolynomial<C>> pl) Determine suitable implementation of GB algorithms, case (recursive) polynomial.static <C extends GcdRingElem<C>>
SolvableGroebnerBaseAbstract<GenPolynomial<C>> getImplementation(GenPolynomialRing<C> fac, GBFactory.Algo a) Determine suitable implementation of GB algorithms, case (recursive) polynomial.static <C extends GcdRingElem<C>>
SolvableGroebnerBaseAbstract<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>>
SolvableGroebnerBaseAbstract<C> getImplementation(RingFactory<C> fac) Determine suitable implementation of GB algorithms, other cases.static <C extends GcdRingElem<C>>
SolvableGroebnerBaseAbstract<C> getImplementation(RingFactory<C> fac, PairList<C> pl) Determine suitable implementation of GB algorithms, other cases.static <C extends GcdRingElem<C>>
SolvableGroebnerBaseAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac) Determine suitable implementation of GB algorithms, case Quotient coefficients.static <C extends GcdRingElem<C>>
SolvableGroebnerBaseAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac, PairList<Quotient<C>> pl) Determine suitable implementation of GB algorithms, case Quotient coefficients.static <C extends GcdRingElem<C>>
SolvableGroebnerBaseAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac, GBFactory.Algo a) Determine suitable implementation of GB algorithms, case Quotient coefficients.static <C extends GcdRingElem<C>>
SolvableGroebnerBaseAbstract<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>>
SolvableGroebnerBaseAbstract<GenPolynomial<C>> getProxy(GenPolynomialRing<C> fac) Determine suitable parallel/concurrent implementation of GB algorithms if possible.static <C extends GcdRingElem<C>>
SolvableGroebnerBaseAbstract<C> getProxy(RingFactory<C> fac) Determine suitable parallel/concurrent implementation of GB algorithms if possible.static <C extends GcdRingElem<C>>
SolvableGroebnerBaseAbstract<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 -
debug
private static final boolean debug
-
-
Constructor Details
-
SGBFactory
protected SGBFactory()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 SolvableGroebnerBaseAbstract<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 ModInteger.- Parameters:
fac- ModIntegerRing.- Returns:
- GB algorithm implementation.
-
getImplementation
public static SolvableGroebnerBaseAbstract<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
public static SolvableGroebnerBaseAbstract<BigInteger> getImplementation(BigInteger fac, GBFactory.Algo a) Determine suitable implementation of GB algorithms, case BigInteger.- Parameters:
fac- BigInteger.a- algorithm, a = igb, egb, dgb.- Returns:
- GB algorithm implementation.
-
getImplementation
public static SolvableGroebnerBaseAbstract<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 SolvableGroebnerBaseAbstract<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 SolvableGroebnerBaseAbstract<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 SolvableGroebnerBaseAbstract<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 SolvableGroebnerBaseAbstract<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>> SolvableGroebnerBaseAbstract<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>> SolvableGroebnerBaseAbstract<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>> SolvableGroebnerBaseAbstract<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>> SolvableGroebnerBaseAbstract<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>> SolvableGroebnerBaseAbstract<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>> SolvableGroebnerBaseAbstract<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>> SolvableGroebnerBaseAbstract<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>> SolvableGroebnerBaseAbstract<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 GcdRingElem<C>> SolvableGroebnerBaseAbstract<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>> SolvableGroebnerBaseAbstract<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
public static <C extends GcdRingElem<C>> SolvableGroebnerBaseAbstract<C> getProxy(RingFactory<C> fac) 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>> SolvableGroebnerBaseAbstract<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>> SolvableGroebnerBaseAbstract<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.
-