public class FactorDecomposition<E> extends Object implements Iterable<E>
unit
, factors returned by
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 iterableWithUnit()
Modifier and Type | Field and Description |
---|---|
gnu.trove.list.array.TIntArrayList |
exponents
exponents
|
List<E> |
factors
factors
|
Ring<E> |
ring
The ring
|
E |
unit
unit coefficient
|
Modifier | Constructor and Description |
---|---|
protected |
FactorDecomposition(Ring<E> ring,
E unit,
List<E> factors,
gnu.trove.list.array.TIntArrayList exponents) |
Modifier and Type | Method and Description |
---|---|
FactorDecomposition<E> |
addAll(FactorDecomposition<E> other)
add all factors from other
|
FactorDecomposition<E> |
addFactor(E factor,
int exponent)
add another factor
|
FactorDecomposition<E> |
addUnit(E unit)
add another unit factor
|
FactorDecomposition<E> |
addUnit(E unit,
int exponent)
add another unit factor
|
FactorDecomposition<E> |
applyExponents(Ring<E> ring)
Raise all factors to its corresponding exponents
|
FactorDecomposition<E> |
canonical()
Sort factors.
|
FactorDecomposition<E> |
clone() |
FactorDecomposition<E> |
dropUnit()
Drops constant factor from this (new instance returned)
|
static <E> FactorDecomposition<E> |
empty(Ring<E> ring)
Empty factorization
|
boolean |
equals(Object o) |
E |
get(int i)
Returns i-th factor
|
int |
getExponent(int i)
Exponent of i-th factor
|
int |
hashCode() |
boolean |
isTrivial()
Whether this is a trivial factorization (contains only one factor)
|
boolean |
isUnit(E element) |
Iterable<E> |
iterableWithUnit()
Iterator over all factors including a unit one
|
Iterator<E> |
iterator() |
E |
multiply()
Multiply factors
|
E |
multiplyIgnoreExponents()
Multiply with no account for exponents
|
static <E> FactorDecomposition<E> |
of(Ring<E> ring,
Collection<E> factors)
Factor decomposition with specified factors and exponents
|
static <E> FactorDecomposition<E> |
of(Ring<E> ring,
E... factors)
Factor decomposition with specified factors and exponents
|
static <E> FactorDecomposition<E> |
of(Ring<E> ring,
E unit,
List<E> factors,
gnu.trove.list.array.TIntArrayList exponents)
Factor decomposition with specified factors and exponents
|
void |
raiseExponents(long val)
Multiply each exponent by a given factor
|
FactorDecomposition<E> |
setUnit(E unit)
Sets the unit factor
|
int |
size()
Number of non-constant factors
|
E |
squareFreePart()
Square-free part
|
Stream<E> |
stream()
Stream of all factors
|
Stream<E> |
streamWithoutUnit()
Stream of all factors except
unit |
int |
sumExponents()
Sum all exponents
|
E[] |
toArrayWithoutUnit()
Array of factors without constant factor
|
E[] |
toArrayWithUnit()
Array of factors without constant factor
|
String |
toString() |
String |
toString(ToStringSupport<E> stringifier) |
String |
toString(ToStringSupport<E> stringifier,
boolean withExponents) |
static <E> FactorDecomposition<E> |
unit(Ring<E> ring,
E unit)
Unit factorization
|
finalize, getClass, notify, notifyAll, wait, wait, wait
forEach, spliterator
public E unit
public final gnu.trove.list.array.TIntArrayList exponents
public Iterable<E> iterableWithUnit()
public boolean isUnit(E element)
public E get(int i)
public int getExponent(int i)
public int size()
public boolean isTrivial()
public int sumExponents()
public void raiseExponents(long val)
public FactorDecomposition<E> setUnit(E unit)
public FactorDecomposition<E> addUnit(E unit)
public FactorDecomposition<E> addUnit(E unit, int exponent)
public FactorDecomposition<E> addFactor(E factor, int exponent)
public FactorDecomposition<E> addAll(FactorDecomposition<E> other)
public FactorDecomposition<E> applyExponents(Ring<E> ring)
public FactorDecomposition<E> dropUnit()
public E[] toArrayWithoutUnit()
public E[] toArrayWithUnit()
public E multiply()
public E multiplyIgnoreExponents()
public E squareFreePart()
public FactorDecomposition<E> canonical()
public String toString(ToStringSupport<E> stringifier)
stringifier
- custom stringifierpublic String toString(ToStringSupport<E> stringifier, boolean withExponents)
stringifier
- custom stringifierwithExponents
- do stringify exponentspublic FactorDecomposition<E> clone()
public static <E> FactorDecomposition<E> unit(Ring<E> ring, E unit)
public static <E> FactorDecomposition<E> empty(Ring<E> ring)
public static <E> FactorDecomposition<E> of(Ring<E> ring, E unit, List<E> factors, gnu.trove.list.array.TIntArrayList exponents)
ring
- the ringunit
- the unit coefficientfactors
- the factorsexponents
- the exponentspublic static <E> FactorDecomposition<E> of(Ring<E> ring, E... factors)
ring
- the ringfactors
- factorspublic static <E> FactorDecomposition<E> of(Ring<E> ring, Collection<E> factors)
ring
- the ringfactors
- factorsCopyright © 2017. All rights reserved.