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 inFactorDecomposition.unit
, factors returned byFactorDecomposition.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 factorization-
Methods 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 Detail
-
isUnit
public boolean isUnit(Poly element)
- Overrides:
isUnit
in classFactorDecomposition<Poly extends IPolynomial<Poly>>
-
setUnit
public PolynomialFactorDecomposition<Poly> setUnit(Poly unit)
Description copied from class:FactorDecomposition
Sets the unit factor- Overrides:
setUnit
in classFactorDecomposition<Poly extends IPolynomial<Poly>>
-
addUnit
public PolynomialFactorDecomposition<Poly> addUnit(Poly unit)
Description copied from class:FactorDecomposition
add another unit factor- Overrides:
addUnit
in classFactorDecomposition<Poly extends IPolynomial<Poly>>
-
addFactor
public PolynomialFactorDecomposition<Poly> addFactor(Poly factor, int exponent)
Description copied from class:FactorDecomposition
add another factor- Overrides:
addFactor
in classFactorDecomposition<Poly extends IPolynomial<Poly>>
-
addAll
public PolynomialFactorDecomposition<Poly> addAll(FactorDecomposition<Poly> other)
Description copied from class:FactorDecomposition
add all factors from other- Overrides:
addAll
in classFactorDecomposition<Poly extends IPolynomial<Poly>>
-
canonical
public PolynomialFactorDecomposition<Poly> canonical()
Description copied from class:FactorDecomposition
Sort factors.- Overrides:
canonical
in classFactorDecomposition<Poly extends IPolynomial<Poly>>
-
setLcFrom
public PolynomialFactorDecomposition<Poly> setLcFrom(Poly poly)
Makes the lead coefficient of this factorization equal to the l.c. of specified poly via multiplication of this by appropriate unit
-
lc
public Poly 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
public PolynomialFactorDecomposition<Poly> monic()
Makes each factor monic (moving leading coefficients to theunit(Poly)
)
-
primitive
public PolynomialFactorDecomposition<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
public PolynomialFactorDecomposition<Poly> reduceUnitContent()
Callsmonic()
if the coefficient ring is field andprimitive()
otherwise
-
clone
public PolynomialFactorDecomposition<Poly> clone()
- Overrides:
clone
in classFactorDecomposition<Poly extends IPolynomial<Poly>>
-
unit
public static <Poly extends IPolynomial<Poly>> PolynomialFactorDecomposition<Poly> unit(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
public static <Poly extends IPolynomial<Poly>> PolynomialFactorDecomposition<Poly> of(Poly a)
-
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
-
-