Package cc.redberry.rings
Class Integers
- java.lang.Object
-
- cc.redberry.rings.ARing<BigInteger>
-
- cc.redberry.rings.Integers
-
- All Implemented Interfaces:
IParser<BigInteger>,Stringifiable<BigInteger>,Ring<BigInteger>,Serializable,Iterable<BigInteger>,Comparator<BigInteger>
public final class Integers extends ARing<BigInteger>
The ring of integers (Z).- Since:
- 1.0
- See Also:
- Serialized Form
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description BigIntegerabs(BigInteger el)Returns the abs value of element (no copy)BigIntegeradd(BigInteger a, BigInteger b)Add two elementsBigIntegerbinomial(long n, long k)Gives a binomial coefficient C(n, k)BigIntegercardinality()Returns the number of elements in this ring (cardinality) or null if ring is infiniteBigIntegercharacteristic()Returns characteristic of this ringprotected Objectclone()intcompare(BigInteger o1, BigInteger o2)BigIntegercopy(BigInteger element)Makes a deep copy of the specified element (for immutable instances the same reference returned).BigInteger[]createArray(int length)Creates generic array of ring elements of specified lengthBigInteger[][]createArray2d(int length)Creates 2d array of ring elements of specified lengthBigInteger[][]createArray2d(int m, int n)Creates 2d array of ring elements of specified shapeBigInteger[]divideAndRemainder(BigInteger a, BigInteger b)Returns quotient and remainder ofdividend / dividerbooleanequals(Object obj)FactorDecomposition<BigInteger>factor(BigInteger element)Factor specified elementFactorDecomposition<BigInteger>factorSquareFree(BigInteger element)Square-free factorization of specified elementBigIntegergcd(BigInteger a, BigInteger b)Returns the greatest common divisor of two elementsBigIntegergetNegativeOne()Returns negative unit element of this ring (minus one)BigIntegergetOne()Returns unit element of this ring (one)BigIntegergetZero()Returns zero element of this ringinthashCode()booleanisEuclideanRing()Returns whether this ring is a Euclidean ringbooleanisField()Returns whether this ring is a fieldbooleanisMinusOne(BigInteger bigInteger)Tests whether specified element is minus onebooleanisOne(BigInteger element)Tests whether specified element is one (exactly)booleanisUnit(BigInteger element)Tests whether specified element is a ring unitbooleanisZero(BigInteger element)Tests whether specified element is zeroIterator<BigInteger>iterator()Returns iterator over ring elements (for finite rings, otherwise throws exception)BigIntegermultiply(BigInteger a, BigInteger b)Multiplies two elementsBigIntegernegate(BigInteger element)Negates the given elementBigIntegerparse(String string)Parse string into ring elementBigIntegerpow(BigInteger base, int exponent)Returnsbasein a power ofexponent(non negative)BigIntegerpow(BigInteger base, long exponent)Returnsbasein a power ofexponent(non negative)BigIntegerpow(BigInteger base, BigInteger exponent)Returnsbasein a power ofexponent(non negative)protected ObjectreadResolve()BigIntegerreciprocal(BigInteger element)Gives the inverse elementelement ^ (-1)BigIntegerremainder(BigInteger a, BigInteger b)Returns the remainder ofdividend / dividerintsignum(BigInteger element)Returns -1 ifelement < 0, 0 ifelement == 0and 1 ifelement > 0, where comparison is specified byComparator.compare(Object, Object)BigIntegersubtract(BigInteger a, BigInteger b)SubtractsbfromaStringtoString()BigIntegervalueOf(long val)Returns ring element associated with specifiedlongBigIntegervalueOf(BigInteger val)Converts a value from other ring to this ring.BigIntegervalueOfBigInteger(BigInteger val)Returns ring element associated with specified integer-
Methods inherited from class cc.redberry.rings.ARing
isPerfectPower, perfectPowerBase, perfectPowerExponent
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Comparator
reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Methods inherited from interface cc.redberry.rings.Ring
add, addMutable, createArray, createArray, createArray, createZeroesArray, createZeroesArray2d, decrement, divideExact, divideExactMutable, divideOrNull, extendedGCD, factorial, fillZeros, firstBezoutCoefficient, gcd, gcd, increment, isFinite, isFiniteField, isUnitOrZero, lcm, lcm, lcm, max, min, multiply, multiply, multiply, multiplyMutable, negateMutable, quotient, randomElement, randomElement, randomElementTree, randomElementTree, randomNonZeroElement, setToValueOf, subtractMutable, valueOf
-
Methods inherited from interface cc.redberry.rings.io.Stringifiable
toString
-
-
-
-
Field Detail
-
Integers
public static final Integers Integers
The ring of integers (Z)
-
-
Method Detail
-
isField
public boolean isField()
Description copied from interface:RingReturns whether this ring is a field- Returns:
- whether this ring is a field
-
isEuclideanRing
public boolean isEuclideanRing()
Description copied from interface:RingReturns whether this ring is a Euclidean ring- Returns:
- whether this ring is a Euclidean ring
-
cardinality
public BigInteger cardinality()
Description copied from interface:RingReturns the number of elements in this ring (cardinality) or null if ring is infinite- Returns:
- the number of elements in this ring (cardinality) or null if ring is infinite
-
characteristic
public BigInteger characteristic()
Description copied from interface:RingReturns characteristic of this ring- Returns:
- characteristic of this ring
-
isUnit
public boolean isUnit(BigInteger element)
Description copied from interface:RingTests whether specified element is a ring unit- Parameters:
element- the ring element- Returns:
- whether specified element is a ring unit
- See Also:
Ring.isOne(Object)
-
add
public BigInteger add(BigInteger a, BigInteger b)
Description copied from interface:RingAdd two elements- Parameters:
a- the first elementb- the second element- Returns:
- a + b
-
subtract
public BigInteger subtract(BigInteger a, BigInteger b)
Description copied from interface:RingSubtractsbfroma- Parameters:
a- the first elementb- the second element- Returns:
- a - b
-
negate
public BigInteger negate(BigInteger element)
Description copied from interface:RingNegates the given element- Parameters:
element- the ring element- Returns:
- -val
-
multiply
public BigInteger multiply(BigInteger a, BigInteger b)
Description copied from interface:RingMultiplies two elements- Parameters:
a- the first elementb- the second element- Returns:
- a * b
-
divideAndRemainder
public BigInteger[] divideAndRemainder(BigInteger a, BigInteger b)
Description copied from interface:RingReturns quotient and remainder ofdividend / divider- Parameters:
a- the dividendb- the divider- Returns:
{quotient, remainder}
-
remainder
public BigInteger remainder(BigInteger a, BigInteger b)
Description copied from interface:RingReturns the remainder ofdividend / divider- Parameters:
a- the dividendb- the divider- Returns:
- the remainder of
dividend / divider
-
reciprocal
public BigInteger reciprocal(BigInteger element)
Description copied from interface:RingGives the inverse elementelement ^ (-1)- Parameters:
element- the element- Returns:
element ^ (-1)
-
pow
public BigInteger pow(BigInteger base, int exponent)
Description copied from interface:RingReturnsbasein a power ofexponent(non negative)- Parameters:
base- baseexponent- exponent (non negative)- Returns:
basein a power ofexponent
-
pow
public BigInteger pow(BigInteger base, long exponent)
Description copied from interface:RingReturnsbasein a power ofexponent(non negative)- Parameters:
base- baseexponent- exponent (non negative)- Returns:
basein a power ofexponent
-
pow
public BigInteger pow(BigInteger base, BigInteger exponent)
Description copied from interface:RingReturnsbasein a power ofexponent(non negative)- Parameters:
base- baseexponent- exponent (non negative)- Returns:
basein a power ofexponent
-
gcd
public final BigInteger gcd(BigInteger a, BigInteger b)
Description copied from interface:RingReturns the greatest common divisor of two elements- Parameters:
a- the first elementb- the second element- Returns:
- gcd
-
factorSquareFree
public FactorDecomposition<BigInteger> factorSquareFree(BigInteger element)
Description copied from interface:RingSquare-free factorization of specified element
-
factor
public FactorDecomposition<BigInteger> factor(BigInteger element)
Description copied from interface:RingFactor specified element
-
valueOf
public BigInteger valueOf(BigInteger val)
Description copied from interface:RingConverts a value from other ring to this ring. The result is not guarantied to be a new instance (i.e.val == valueOf(val)is possible).- Parameters:
val- some element from any ring- Returns:
- this ring element associated with specified
val
-
valueOf
public BigInteger valueOf(long val)
Description copied from interface:RingReturns ring element associated with specifiedlong- Parameters:
val- machine integer- Returns:
- ring element associated with specified
long
-
getNegativeOne
public BigInteger getNegativeOne()
Description copied from interface:RingReturns negative unit element of this ring (minus one)- Returns:
- -1
-
isMinusOne
public boolean isMinusOne(BigInteger bigInteger)
Description copied from interface:RingTests whether specified element is minus one- Parameters:
bigInteger- the ring element- Returns:
- whether specified element is minus one
-
signum
public final int signum(BigInteger element)
Description copied from interface:RingReturns -1 ifelement < 0, 0 ifelement == 0and 1 ifelement > 0, where comparison is specified byComparator.compare(Object, Object)- Parameters:
element- the element- Returns:
- -1 if
element < 0, 0 ifelement == 0and 1 otherwise
-
abs
public BigInteger abs(BigInteger el)
Description copied from interface:RingReturns the abs value of element (no copy)
-
iterator
public Iterator<BigInteger> iterator()
Description copied from interface:RingReturns iterator over ring elements (for finite rings, otherwise throws exception)
-
binomial
public BigInteger binomial(long n, long k)
Gives a binomial coefficient C(n, k)
-
readResolve
protected Object readResolve()
-
clone
protected Object clone() throws CloneNotSupportedException
- Overrides:
clonein classObject- Throws:
CloneNotSupportedException
-
equals
public boolean equals(Object obj)
- Specified by:
equalsin interfaceComparator<BigInteger>- Overrides:
equalsin classObject
-
getZero
public final BigInteger getZero()
Description copied from interface:RingReturns zero element of this ring- Returns:
- 0
-
getOne
public final BigInteger getOne()
Description copied from interface:RingReturns unit element of this ring (one)- Returns:
- 1
-
isZero
public final boolean isZero(BigInteger element)
Description copied from interface:RingTests whether specified element is zero- Parameters:
element- the ring element- Returns:
- whether specified element is zero
-
isOne
public final boolean isOne(BigInteger element)
Description copied from interface:RingTests whether specified element is one (exactly)- Parameters:
element- the ring element- Returns:
- whether specified element is exactly one
- See Also:
Ring.isUnit(Object)
-
parse
public final BigInteger parse(String string)
Description copied from interface:RingParse string into ring element- Parameters:
string- string- Returns:
- ring element
- See Also:
Coder
-
compare
public final int compare(BigInteger o1, BigInteger o2)
-
createArray
public final BigInteger[] createArray(int length)
Description copied from interface:RingCreates generic array of ring elements of specified length- Parameters:
length- array length- Returns:
- array of ring elements of specified
length
-
createArray2d
public final BigInteger[][] createArray2d(int length)
Description copied from interface:RingCreates 2d array of ring elements of specified length- Parameters:
length- array length- Returns:
- 2d array of ring elements of specified
length
-
createArray2d
public final BigInteger[][] createArray2d(int m, int n)
Description copied from interface:RingCreates 2d array of ring elements of specified shape- Parameters:
m- result lengthn- length of each array in the result- Returns:
- 2d array E[m][n]
-
valueOfBigInteger
public final BigInteger valueOfBigInteger(BigInteger val)
Description copied from interface:RingReturns ring element associated with specified integer- Parameters:
val- integer- Returns:
- ring element associated with specified integer
-
copy
public BigInteger copy(BigInteger element)
Description copied from interface:RingMakes a deep copy of the specified element (for immutable instances the same reference returned).- Parameters:
element- the element- Returns:
- deep copy of specified element
-
-