Package edu.jas.gbufd
Class SGBFactory
- java.lang.Object
-
- edu.jas.gbufd.SGBFactory
-
public class SGBFactory extends java.lang.Object
Solvable Groebner bases algorithms factory. Select appropriate Solvable Groebner bases engine based on the coefficient types.Usage: To create objects that implement the
SolvableGroebnerBaseinterface use theSGBFactory. It will select an appropriate implementation based on the types of polynomial coefficients C. The method to obtain an implementation isgetImplementation(). It returns an object of a class which implements theSolvableGroebnerBaseinterface, more precisely an object of abstract classSolvableGroebnerBaseAbstract.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);
- Author:
- Heinz Kredel
- See Also:
GroebnerBase,SolvableGroebnerBase,GBAlgorithmBuilder
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedSGBFactory()Protected factory constructor.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <C extends GcdRingElem<C>>
SolvableGroebnerBaseAbstract<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, PairList<BigInteger> pl)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<BigRational>getImplementation(BigRational fac)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 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<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>>
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.
-
-
-
Constructor Detail
-
SGBFactory
protected SGBFactory()
Protected factory constructor.
-
-
Method Detail
-
getImplementation
public static <C extends GcdRingElem<C>> SolvableGroebnerBaseAbstract<C> getImplementation()
Determine suitable implementation of GB algorithms, no factory case.- Returns:
- GB algorithm implementation for field coefficients.
-
getImplementation
public static SolvableGroebnerBaseAbstract<ModLong> getImplementation(ModLongRing fac)
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
public static SolvableGroebnerBaseAbstract<ModInteger> getImplementation(ModIntegerRing fac)
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
public static SolvableGroebnerBaseAbstract<BigInteger> getImplementation(BigInteger fac)
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
public static SolvableGroebnerBaseAbstract<BigRational> getImplementation(BigRational fac)
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.
-
-