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>.