public class FactorFactory extends java.lang.Object
Usage: To create objects that implement the Factorization
interface use the FactorFactory. It will select an appropriate
implementation based on the types of polynomial coefficients C. To obtain an
implementation use getImplementation(), it returns an object of
a class which extends the FactorAbstract class which implements
the Factorization interface.
Factorization<CT> engine; engine = FactorFactory.<CT> getImplementation(cofac); c = engine.factors(a);
For example, if the coefficient type is BigInteger, the usage looks like
BigInteger cofac = new BigInteger(); Factorization<BigInteger> engine; engine = FactorFactory.getImplementation(cofac); Sm = engine.factors(poly);
Factorization.factors(edu.jas.poly.GenPolynomial P)| Modifier | Constructor and Description |
|---|---|
protected |
FactorFactory()
Protected factory constructor.
|
| Modifier and Type | Method and Description |
|---|---|
static <C extends GcdRingElem<C>> |
getImplementation(AlgebraicNumberRing<C> fac)
Determine suitable implementation of factorization algorithms, case
AlgebraicNumber<C>.
|
static FactorAbstract<BigInteger> |
getImplementation(BigInteger fac)
Determine suitable implementation of factorization algorithm, case
BigInteger.
|
static FactorAbstract<BigRational> |
getImplementation(BigRational fac)
Determine suitable implementation of factorization algorithms, case
BigRational.
|
static <C extends GcdRingElem<C>> |
getImplementation(ComplexRing<C> fac)
Determine suitable implementation of factorization algorithms, case
Complex<C>.
|
static <C extends GcdRingElem<C>> |
getImplementation(GenPolynomialRing<C> fac)
Determine suitable implementation of factorization algorithms, case
recursive GenPolynomial<C>.
|
static FactorAbstract<ModInteger> |
getImplementation(ModIntegerRing fac)
Determine suitable implementation of factorization algorithm, case
ModInteger.
|
static FactorAbstract<ModInt> |
getImplementation(ModIntRing fac)
Determine suitable implementation of factorization algorithm, case
ModInteger.
|
static FactorAbstract<ModLong> |
getImplementation(ModLongRing fac)
Determine suitable implementation of factorization algorithm, case
ModInteger.
|
static <C extends GcdRingElem<C>> |
getImplementation(QuotientRing<C> fac)
Determine suitable implementation of factorization algorithms, case
Quotient<C>.
|
static <C extends GcdRingElem<C>> |
getImplementation(RingFactory<C> fac)
Determine suitable implementation of factorization algorithms, other
cases.
|
protected FactorFactory()
public static FactorAbstract<ModInteger> getImplementation(ModIntegerRing fac)
fac - ModIntegerRing.public static FactorAbstract<ModLong> getImplementation(ModLongRing fac)
fac - ModIntegerRing.public static FactorAbstract<ModInt> getImplementation(ModIntRing fac)
fac - ModIntegerRing.public static FactorAbstract<BigInteger> getImplementation(BigInteger fac)
fac - BigInteger.public static FactorAbstract<BigRational> getImplementation(BigRational fac)
fac - BigRational.public static <C extends GcdRingElem<C>> FactorAbstract<AlgebraicNumber<C>> getImplementation(AlgebraicNumberRing<C> fac)
C - coefficient type, e.g. BigRational, ModInteger.fac - AlgebraicNumberRing<C>.public static <C extends GcdRingElem<C>> FactorAbstract<Complex<C>> getImplementation(ComplexRing<C> fac)
C - coefficient type, e.g. BigRational, ModInteger.fac - ComplexRing<C>.public static <C extends GcdRingElem<C>> FactorAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac)
C - coefficient type, e.g. BigRational, ModInteger.fac - QuotientRing<C>.public static <C extends GcdRingElem<C>> FactorAbstract<C> getImplementation(GenPolynomialRing<C> fac)
recursiveFactors().C - coefficient type, e.g. BigRational, ModInteger.fac - GenPolynomialRing<C>.public static <C extends GcdRingElem<C>> FactorAbstract<C> getImplementation(RingFactory<C> fac)
C - coefficient typefac - RingFactory<C>.