Package cc.redberry.rings
Class 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
-
Field Summary
-
Method Summary
Modifier and Type Method Description BigInteger
abs(BigInteger el)
Returns the abs value of element (no copy)BigInteger
add(BigInteger a, BigInteger b)
Add two elementsBigInteger
binomial(long n, long k)
Gives a binomial coefficient C(n, k)BigInteger
cardinality()
Returns the number of elements in this ring (cardinality) or null if ring is infiniteBigInteger
characteristic()
Returns characteristic of this ringprotected Object
clone()
int
compare(BigInteger o1, BigInteger o2)
BigInteger
copy(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 / divider
boolean
equals(Object obj)
FactorDecomposition<BigInteger>
factor(BigInteger element)
Factor specified elementFactorDecomposition<BigInteger>
factorSquareFree(BigInteger element)
Square-free factorization of specified elementBigInteger
gcd(BigInteger a, BigInteger b)
Returns the greatest common divisor of two elementsBigInteger
getNegativeOne()
Returns negative unit element of this ring (minus one)BigInteger
getOne()
Returns unit element of this ring (one)BigInteger
getZero()
Returns zero element of this ringint
hashCode()
boolean
isEuclideanRing()
Returns whether this ring is a Euclidean ringboolean
isField()
Returns whether this ring is a fieldboolean
isMinusOne(BigInteger bigInteger)
Tests whether specified element is minus oneboolean
isOne(BigInteger element)
Tests whether specified element is one (exactly)boolean
isUnit(BigInteger element)
Tests whether specified element is a ring unitboolean
isZero(BigInteger element)
Tests whether specified element is zeroIterator<BigInteger>
iterator()
Returns iterator over ring elements (for finite rings, otherwise throws exception)BigInteger
multiply(BigInteger a, BigInteger b)
Multiplies two elementsBigInteger
negate(BigInteger element)
Negates the given elementBigInteger
parse(String string)
Parse string into ring elementBigInteger
pow(BigInteger base, int exponent)
Returnsbase
in a power ofexponent
(non negative)BigInteger
pow(BigInteger base, long exponent)
Returnsbase
in a power ofexponent
(non negative)BigInteger
pow(BigInteger base, BigInteger exponent)
Returnsbase
in a power ofexponent
(non negative)protected Object
readResolve()
BigInteger
reciprocal(BigInteger element)
Gives the inverse elementelement ^ (-1)
BigInteger
remainder(BigInteger a, BigInteger b)
Returns the remainder ofdividend / divider
int
signum(BigInteger element)
Returns -1 ifelement < 0
, 0 ifelement == 0
and 1 ifelement > 0
, where comparison is specified byComparator.compare(Object, Object)
BigInteger
subtract(BigInteger a, BigInteger b)
Subtractsb
froma
String
toString()
BigInteger
valueOf(long val)
Returns ring element associated with specifiedlong
BigInteger
valueOf(BigInteger val)
Converts a value from other ring to this ring.BigInteger
valueOfBigInteger(BigInteger val)
Returns ring element associated with specified integerMethods 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 Details
-
Integers
The ring of integers (Z)
-
-
Method Details
-
isField
public boolean isField()Description copied from interface:Ring
Returns whether this ring is a field- Returns:
- whether this ring is a field
-
isEuclideanRing
public boolean isEuclideanRing()Description copied from interface:Ring
Returns whether this ring is a Euclidean ring- Returns:
- whether this ring is a Euclidean ring
-
cardinality
Description copied from interface:Ring
Returns 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
Description copied from interface:Ring
Returns characteristic of this ring- Returns:
- characteristic of this ring
-
isUnit
Description copied from interface:Ring
Tests 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
Description copied from interface:Ring
Add two elements- Parameters:
a
- the first elementb
- the second element- Returns:
- a + b
-
subtract
Description copied from interface:Ring
Subtractsb
froma
- Parameters:
a
- the first elementb
- the second element- Returns:
- a - b
-
negate
Description copied from interface:Ring
Negates the given element- Parameters:
element
- the ring element- Returns:
- -val
-
multiply
Description copied from interface:Ring
Multiplies two elements- Parameters:
a
- the first elementb
- the second element- Returns:
- a * b
-
divideAndRemainder
Description copied from interface:Ring
Returns quotient and remainder ofdividend / divider
- Parameters:
a
- the dividendb
- the divider- Returns:
{quotient, remainder}
-
remainder
Description copied from interface:Ring
Returns the remainder ofdividend / divider
- Parameters:
a
- the dividendb
- the divider- Returns:
- the remainder of
dividend / divider
-
reciprocal
Description copied from interface:Ring
Gives the inverse elementelement ^ (-1)
- Parameters:
element
- the element- Returns:
element ^ (-1)
-
pow
Description copied from interface:Ring
Returnsbase
in a power ofexponent
(non negative)- Parameters:
base
- baseexponent
- exponent (non negative)- Returns:
base
in a power ofexponent
-
pow
Description copied from interface:Ring
Returnsbase
in a power ofexponent
(non negative)- Parameters:
base
- baseexponent
- exponent (non negative)- Returns:
base
in a power ofexponent
-
pow
Description copied from interface:Ring
Returnsbase
in a power ofexponent
(non negative)- Parameters:
base
- baseexponent
- exponent (non negative)- Returns:
base
in a power ofexponent
-
gcd
Description copied from interface:Ring
Returns the greatest common divisor of two elements- Parameters:
a
- the first elementb
- the second element- Returns:
- gcd
-
factorSquareFree
Description copied from interface:Ring
Square-free factorization of specified element -
factor
Description copied from interface:Ring
Factor specified element -
valueOf
Description copied from interface:Ring
Converts 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
Description copied from interface:Ring
Returns ring element associated with specifiedlong
- Parameters:
val
- machine integer- Returns:
- ring element associated with specified
long
-
getNegativeOne
Description copied from interface:Ring
Returns negative unit element of this ring (minus one)- Returns:
- -1
-
isMinusOne
Description copied from interface:Ring
Tests whether specified element is minus one- Parameters:
bigInteger
- the ring element- Returns:
- whether specified element is minus one
-
signum
Description copied from interface:Ring
Returns -1 ifelement < 0
, 0 ifelement == 0
and 1 ifelement > 0
, where comparison is specified byComparator.compare(Object, Object)
- Parameters:
element
- the element- Returns:
- -1 if
element < 0
, 0 ifelement == 0
and 1 otherwise
-
abs
Description copied from interface:Ring
Returns the abs value of element (no copy) -
toString
-
iterator
Description copied from interface:Ring
Returns iterator over ring elements (for finite rings, otherwise throws exception) -
binomial
Gives a binomial coefficient C(n, k) -
readResolve
-
clone
- Overrides:
clone
in classObject
- Throws:
CloneNotSupportedException
-
equals
- Specified by:
equals
in interfaceComparator<BigInteger>
- Overrides:
equals
in classObject
-
hashCode
public int hashCode() -
getZero
Description copied from interface:Ring
Returns zero element of this ring- Returns:
- 0
-
getOne
Description copied from interface:Ring
Returns unit element of this ring (one)- Returns:
- 1
-
isZero
Description copied from interface:Ring
Tests whether specified element is zero- Parameters:
element
- the ring element- Returns:
- whether specified element is zero
-
isOne
Description copied from interface:Ring
Tests whether specified element is one (exactly)- Parameters:
element
- the ring element- Returns:
- whether specified element is exactly one
- See Also:
Ring.isUnit(Object)
-
parse
Description copied from interface:Ring
Parse string into ring element- Parameters:
string
- string- Returns:
- ring element
- See Also:
Coder
-
compare
-
createArray
Description copied from interface:Ring
Creates generic array of ring elements of specified length- Parameters:
length
- array length- Returns:
- array of ring elements of specified
length
-
createArray2d
Description copied from interface:Ring
Creates 2d array of ring elements of specified length- Parameters:
length
- array length- Returns:
- 2d array of ring elements of specified
length
-
createArray2d
Description copied from interface:Ring
Creates 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
Description copied from interface:Ring
Returns ring element associated with specified integer- Parameters:
val
- integer- Returns:
- ring element associated with specified integer
-
copy
Description copied from interface:Ring
Makes a deep copy of the specified element (for immutable instances the same reference returned).- Parameters:
element
- the element- Returns:
- deep copy of specified element
-