Package edu.jas.application
Class FactorFactory
- java.lang.Object
-
- edu.jas.ufd.FactorFactory
-
- edu.jas.application.FactorFactory
-
public class FactorFactory extends FactorFactory
Factorization algorithms factory. Select appropriate factorization engine based on the coefficient types.Usage: To create objects that implement the
Factorizationinterface use theFactorFactory. It will select an appropriate implementation based on the types of polynomial coefficients C. To obtain an implementation usegetImplementation(), it returns an object of a class which extends theFactorAbstractclass which implements theFactorizationinterface.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);
- Author:
- Heinz Kredel
- See Also:
Factorization.factors(edu.jas.poly.GenPolynomial P),FactorFactory.getImplementation(edu.jas.structure.RingFactory P)
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedFactorFactory()Protected factory constructor.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <C extends GcdRingElem<C> & Rational>
FactorAbstract<RealAlgebraicNumber<C>>getImplementation(RealAlgebraicRing<C> fac)Determine suitable implementation of factorization algorithms, case RealAlgebraicNumber<C>.static <C extends GcdRingElem<C>>
FactorAbstract<AlgebraicNumber<C>>getImplementation(AlgebraicNumberRing<C> fac)Determine suitable implementation of factorization algorithms, case AlgebraicNumber<C>.static <C extends GcdRingElem<C>>
FactorAbstract<Complex<C>>getImplementation(ComplexRing<C> fac)Determine suitable implementation of factorization algorithms, case Complex<C>.static <C extends GcdRingElem<C>>
FactorAbstract<C>getImplementation(GenPolynomialRing<C> fac)Determine suitable implementation of factorization algorithms, case recursive GenPolynomial<C>.static <C extends GcdRingElem<C> & Rational>
FactorAbstract<RealAlgebraicNumber<C>>getImplementation(RealAlgebraicRing<C> fac)Determine suitable implementation of factorization algorithms, case RealAlgebraicNumber<C>.static <C extends GcdRingElem<C>>
FactorAbstract<C>getImplementation(RingFactory<C> fac)Determine suitable implementation of factorization algorithms, other cases.static <C extends GcdRingElem<C>>
FactorAbstract<Quotient<C>>getImplementation(QuotientRing<C> fac)Determine suitable implementation of factorization algorithms, case Quotient<C>.-
Methods inherited from class edu.jas.ufd.FactorFactory
getImplementation, getImplementation, getImplementation, getImplementation, getImplementation
-
-
-
-
Constructor Detail
-
FactorFactory
protected FactorFactory()
Protected factory constructor.
-
-
Method Detail
-
getImplementation
public static <C extends GcdRingElem<C>> FactorAbstract<AlgebraicNumber<C>> getImplementation(AlgebraicNumberRing<C> fac)
Determine suitable implementation of factorization algorithms, case AlgebraicNumber<C>.- Type Parameters:
C- coefficient type, e.g. BigRational, ModInteger.- Parameters:
fac- AlgebraicNumberRing<C>.- Returns:
- factorization algorithm implementation.
-
getImplementation
public static <C extends GcdRingElem<C>> FactorAbstract<Complex<C>> getImplementation(ComplexRing<C> fac)
Determine suitable implementation of factorization algorithms, case Complex<C>.- Type Parameters:
C- coefficient type, e.g. BigRational, ModInteger.- Parameters:
fac- ComplexRing<C>.- Returns:
- factorization algorithm implementation.
-
getImplementation
public static <C extends GcdRingElem<C>> FactorAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac)
Determine suitable implementation of factorization algorithms, case Quotient<C>.- Type Parameters:
C- coefficient type, e.g. BigRational, ModInteger.- Parameters:
fac- QuotientRing<C>.- Returns:
- factorization algorithm implementation.
-
getImplementation
public static <C extends GcdRingElem<C>> FactorAbstract<C> getImplementation(GenPolynomialRing<C> fac)
Determine suitable implementation of factorization algorithms, case recursive GenPolynomial<C>. UserecursiveFactors().- Type Parameters:
C- coefficient type, e.g. BigRational, ModInteger.- Parameters:
fac- GenPolynomialRing<C>.- Returns:
- factorization algorithm implementation.
-
getImplementation
public static <C extends GcdRingElem<C> & Rational> FactorAbstract<RealAlgebraicNumber<C>> getImplementation(RealAlgebraicRing<C> fac)
Determine suitable implementation of factorization algorithms, case RealAlgebraicNumber<C>.- Type Parameters:
C- coefficient type, e.g. BigRational.- Parameters:
fac- RealAlgebraicRing<C>.- Returns:
- factorization algorithm implementation.
-
getImplementation
public static <C extends GcdRingElem<C> & Rational> FactorAbstract<RealAlgebraicNumber<C>> getImplementation(RealAlgebraicRing<C> fac)
Determine suitable implementation of factorization algorithms, case RealAlgebraicNumber<C>.- Type Parameters:
C- coefficient type, e.g. BigRational.- Parameters:
fac- RealAlgebraicRing<C>.- Returns:
- factorization algorithm implementation.
-
getImplementation
public static <C extends GcdRingElem<C>> FactorAbstract<C> getImplementation(RingFactory<C> fac)
Determine suitable implementation of factorization algorithms, other cases.- Type Parameters:
C- coefficient type- Parameters:
fac- RingFactory<C>.- Returns:
- factorization algorithm implementation.
-
-