public class SquarefreeFactory extends java.lang.Object
Usage: To create objects that implement the Squarefree
interface use the SquarefreeFactory. 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 SquarefreeAbstract class
which implements the Squarefree interface.
Squarefree<CT> engine; engine = SquarefreeFactory.<CT> getImplementation(cofac); c = engine.squarefreeFactors(a);For example, if the coefficient type is BigInteger, the usage looks like
BigInteger cofac = new BigInteger(); Squarefree<BigInteger> engine; engine = SquarefreeFactory.getImplementation(cofac); Sm = engine.sqaurefreeFactors(poly);
Squarefree.squarefreeFactors(edu.jas.poly.GenPolynomial P)| Modifier | Constructor and Description |
|---|---|
protected |
SquarefreeFactory()
Protected factory constructor.
|
| Modifier and Type | Method and Description |
|---|---|
static <C extends GcdRingElem<C>> |
getImplementation(AlgebraicNumberRing<C> fac)
Determine suitable implementation of squarefree factorization algorithms,
case AlgebraicNumber<C>.
|
static SquarefreeAbstract<BigInteger> |
getImplementation(BigInteger fac)
Determine suitable implementation of squarefree factorization algorithm,
case BigInteger.
|
static SquarefreeAbstract<BigRational> |
getImplementation(BigRational fac)
Determine suitable implementation of squarefree factorization algorithms,
case BigRational.
|
static <C extends GcdRingElem<C>> |
getImplementation(GenPolynomialRing<C> fac)
Determine suitable implementation of squarefree factorization algorithms,
case GenPolynomial<C>.
|
static SquarefreeAbstract<ModInteger> |
getImplementation(ModIntegerRing fac)
Determine suitable implementation of factorization algorithm, case
ModInteger.
|
static SquarefreeAbstract<ModInt> |
getImplementation(ModIntRing fac)
Determine suitable implementation of factorization algorithm, case
ModInt.
|
static SquarefreeAbstract<ModLong> |
getImplementation(ModLongRing fac)
Determine suitable implementation of factorization algorithm, case
ModLong.
|
static <C extends GcdRingElem<C>> |
getImplementation(QuotientRing<C> fac)
Determine suitable implementation of squarefree factorization algorithms,
case Quotient<C>.
|
static <C extends GcdRingElem<C>> |
getImplementation(RingFactory<C> fac)
Determine suitable implementation of squarefree factorization algorithms,
other cases.
|
protected static <C extends GcdRingElem<C>> |
getImplementationPoly(GenPolynomialRing<C> fac) |
protected SquarefreeFactory()
public static SquarefreeAbstract<ModInteger> getImplementation(ModIntegerRing fac)
fac - ModIntegerRing.public static SquarefreeAbstract<ModLong> getImplementation(ModLongRing fac)
fac - ModLongRing.public static SquarefreeAbstract<ModInt> getImplementation(ModIntRing fac)
fac - ModIntRing.public static SquarefreeAbstract<BigInteger> getImplementation(BigInteger fac)
fac - BigInteger.public static SquarefreeAbstract<BigRational> getImplementation(BigRational fac)
fac - BigRational.public static <C extends GcdRingElem<C>> SquarefreeAbstract<AlgebraicNumber<C>> getImplementation(AlgebraicNumberRing<C> fac)
C - coefficient type, e.g. BigRational, ModInteger.fac - AlgebraicNumberRing<C>.public static <C extends GcdRingElem<C>> SquarefreeAbstract<Quotient<C>> getImplementation(QuotientRing<C> fac)
C - coefficient type, e.g. BigRational, ModInteger.fac - QuotientRing<C>.public static <C extends GcdRingElem<C>> SquarefreeAbstract<C> getImplementation(GenPolynomialRing<C> fac)
C - coefficient type, e.g. BigRational, ModInteger.fac - GenPolynomialRing<C>.protected static <C extends GcdRingElem<C>> SquarefreeAbstract<C> getImplementationPoly(GenPolynomialRing<C> fac)
public static <C extends GcdRingElem<C>> SquarefreeAbstract<C> getImplementation(RingFactory<C> fac)
C - coefficient typefac - RingFactory<C>.