public class FactorFactory extends FactorFactory
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)
,
FactorFactory.getImplementation(edu.jas.structure.RingFactory
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 <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, getImplementation, getImplementation
protected 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>.