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
SolvableGroebnerBase
interface 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 theSolvableGroebnerBase
interface, 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 protected
SGBFactory()
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.
-
-