public class FactorFactory extends FactorFactory
Factorization.factors(edu.jas.poly.GenPolynomial P),
FactorFactory.getImplementation(edu.jas.structure.RingFactory
P)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);
| 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 <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 <C extends GcdRingElem<C>> |
getImplementation(QuotientRing<C> fac)
Determine suitable implementation of factorization algorithms, case
Quotient<C>.
|
static <C extends GcdRingElem<C> & Rational> |
getImplementation(RealAlgebraicRing<C> fac)
Determine suitable implementation of factorization algorithms, case
RealAlgebraicNumber<C>.
|
static <C extends GcdRingElem<C> & Rational> |
getImplementation(RealAlgebraicRing<C> fac)
Determine suitable implementation of factorization algorithms, case
RealAlgebraicNumber<C>.
|
static <C extends GcdRingElem<C>> |
getImplementation(RingFactory<C> fac)
Determine suitable implementation of factorization algorithms, other
cases.
|
getImplementation, getImplementation, getImplementation, getImplementationprotected FactorFactory()
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> & Rational> FactorAbstract<RealAlgebraicNumber<C>> getImplementation(RealAlgebraicRing<C> fac)
C - coefficient type, e.g. BigRational.fac - RealAlgebraicRing<C>.public static <C extends GcdRingElem<C> & Rational> FactorAbstract<RealAlgebraicNumber<C>> getImplementation(RealAlgebraicRing<C> fac)
C - coefficient type, e.g. BigRational.fac - RealAlgebraicRing<C>.public static <C extends GcdRingElem<C>> FactorAbstract<C> getImplementation(RingFactory<C> fac)
C - coefficient typefac - RingFactory<C>.