Package cc.redberry.rings.poly
Class PolynomialFactorDecomposition<Poly extends IPolynomial<Poly>>
java.lang.Object
cc.redberry.rings.FactorDecomposition<Poly>
cc.redberry.rings.poly.PolynomialFactorDecomposition<Poly>
- All Implemented Interfaces:
Stringifiable<Poly>
,Serializable
,Iterable<Poly>
public final class PolynomialFactorDecomposition<Poly extends IPolynomial<Poly>> extends FactorDecomposition<Poly> implements Serializable
Factor decomposition of element. Unit coefficient of decomposition is stored in
FactorDecomposition.unit
, factors returned by
FactorDecomposition.get(int)
are non-units. This class is mutable.
Iterable specification provides iterator over
non-unit factors only; to iterate over all factors including the constant factor use FactorDecomposition.iterableWithUnit()
- Since:
- 1.0, 2.2 FactorDecomposition renamed to PolynomialFactorDecomposition
- See Also:
- Serialized Form
-
Field Summary
Fields inherited from class cc.redberry.rings.FactorDecomposition
exponents, factors, ring, unit
-
Method Summary
Modifier and Type Method Description PolynomialFactorDecomposition<Poly>
addAll(FactorDecomposition<Poly> other)
add all factors from otherPolynomialFactorDecomposition<Poly>
addFactor(Poly factor, int exponent)
add another factorPolynomialFactorDecomposition<Poly>
addUnit(Poly unit)
add another unit factorPolynomialFactorDecomposition<Poly>
canonical()
Sort factors.PolynomialFactorDecomposition<Poly>
clone()
static <Poly extends IPolynomial<Poly>>
PolynomialFactorDecomposition<Poly>empty(Poly factory)
Empty factorizationboolean
isUnit(Poly element)
Poly
lc()
Resulting lead coefficient<OthPoly extends IPolynomial<OthPoly>>
PolynomialFactorDecomposition<OthPoly>mapTo(Function<Poly,OthPoly> mapper)
PolynomialFactorDecomposition<Poly>
monic()
Makes each factor monic (moving leading coefficients to theunit(Poly)
)static <Poly extends IPolynomial<Poly>>
PolynomialFactorDecomposition<Poly>of(Collection<Poly> factors)
Factor decomposition with specified factors and exponentsstatic <Poly extends IPolynomial<Poly>>
PolynomialFactorDecomposition<Poly>of(Poly a)
static <Poly extends IPolynomial<Poly>>
PolynomialFactorDecomposition<Poly>of(Poly... factors)
Factor decomposition with specified factors and exponentsstatic <Poly extends IPolynomial<Poly>>
PolynomialFactorDecomposition<Poly>of(Poly unit, List<Poly> factors, gnu.trove.list.array.TIntArrayList exponents)
Factor decomposition with specified factors and exponentsstatic <Poly extends IPolynomial<Poly>>
PolynomialFactorDecomposition<Poly>of(Poly a, Poly b)
static <Poly extends IPolynomial<Poly>>
PolynomialFactorDecomposition<Poly>of(Poly a, Poly b, Poly c)
PolynomialFactorDecomposition<Poly>
primitive()
Makes each factor primitive (moving contents to theunit(Poly)
)PolynomialFactorDecomposition<Poly>
reduceUnitContent()
Callsmonic()
if the coefficient ring is field andprimitive()
otherwisePolynomialFactorDecomposition<Poly>
setLcFrom(Poly poly)
Makes the lead coefficient of this factorization equal to the l.c.PolynomialFactorDecomposition<Poly>
setUnit(Poly unit)
Sets the unit factorint
signum()
Calculates the signum of the polynomial constituted by this decompositionstatic <Poly extends IPolynomial<Poly>>
PolynomialFactorDecomposition<Poly>unit(Poly unit)
Unit factorizationMethods inherited from class cc.redberry.rings.FactorDecomposition
addUnit, apply, applyConstantFactor, applyExponents, dropExponents, dropFactor, dropUnit, empty, equals, get, getExponent, hashCode, isTrivial, iterableWithUnit, iterator, mapTo, multiply, multiplyIgnoreExponents, of, of, of, raiseExponents, size, squareFreePart, stream, streamWithoutUnit, sumExponents, toArrayWithoutUnit, toArrayWithUnit, toString, toString, unit
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Method Details
-
isUnit
- Overrides:
isUnit
in classFactorDecomposition<Poly extends IPolynomial<Poly>>
-
setUnit
Description copied from class:FactorDecomposition
Sets the unit factor- Overrides:
setUnit
in classFactorDecomposition<Poly extends IPolynomial<Poly>>
-
addUnit
Description copied from class:FactorDecomposition
add another unit factor- Overrides:
addUnit
in classFactorDecomposition<Poly extends IPolynomial<Poly>>
-
addFactor
Description copied from class:FactorDecomposition
add another factor- Overrides:
addFactor
in classFactorDecomposition<Poly extends IPolynomial<Poly>>
-
addAll
Description copied from class:FactorDecomposition
add all factors from other- Overrides:
addAll
in classFactorDecomposition<Poly extends IPolynomial<Poly>>
-
canonical
Description copied from class:FactorDecomposition
Sort factors.- Overrides:
canonical
in classFactorDecomposition<Poly extends IPolynomial<Poly>>
-
setLcFrom
Makes the lead coefficient of this factorization equal to the l.c. of specified poly via multiplication of this by appropriate unit -
lc
Resulting lead coefficient -
signum
public int signum()Calculates the signum of the polynomial constituted by this decomposition- Returns:
- the signum of the polynomial constituted by this decomposition
-
monic
Makes each factor monic (moving leading coefficients to theunit(Poly)
) -
primitive
Makes each factor primitive (moving contents to theunit(Poly)
) -
mapTo
public <OthPoly extends IPolynomial<OthPoly>> PolynomialFactorDecomposition<OthPoly> mapTo(Function<Poly,OthPoly> mapper) -
reduceUnitContent
Callsmonic()
if the coefficient ring is field andprimitive()
otherwise -
clone
- Overrides:
clone
in classFactorDecomposition<Poly extends IPolynomial<Poly>>
-
unit
Unit factorization -
empty
public static <Poly extends IPolynomial<Poly>> PolynomialFactorDecomposition<Poly> empty(Poly factory)Empty factorization -
of
public static <Poly extends IPolynomial<Poly>> PolynomialFactorDecomposition<Poly> of(Poly unit, List<Poly> factors, gnu.trove.list.array.TIntArrayList exponents)Factor decomposition with specified factors and exponents- Parameters:
unit
- the unit coefficientfactors
- the factorsexponents
- the exponents
-
of
public static <Poly extends IPolynomial<Poly>> PolynomialFactorDecomposition<Poly> of(Poly... factors)Factor decomposition with specified factors and exponents- Parameters:
factors
- factors
-
of
-
of
public static <Poly extends IPolynomial<Poly>> PolynomialFactorDecomposition<Poly> of(Poly a, Poly b) -
of
public static <Poly extends IPolynomial<Poly>> PolynomialFactorDecomposition<Poly> of(Poly a, Poly b, Poly c) -
of
public static <Poly extends IPolynomial<Poly>> PolynomialFactorDecomposition<Poly> of(Collection<Poly> factors)Factor decomposition with specified factors and exponents- Parameters:
factors
- factors
-