| Modifier and Type | Method and Description |
|---|---|
static int |
addAndCheck(int x,
int y)
Add two integers, checking for overflow.
|
static long |
addAndCheck(long a,
long b)
Add two long integers, checking for overflow.
|
static int |
divideUnsigned(int dividend,
int divisor)
Returns the unsigned quotient of dividing the first argument by
the second where each argument and the result is interpreted as
an unsigned value.
|
static long |
divideUnsigned(long dividend,
long divisor)
Returns the unsigned quotient of dividing the first argument by
the second where each argument and the result is interpreted as
an unsigned value.
|
static int |
gcd(int p,
int q)
Computes the greatest common divisor of the absolute value of two
numbers, using a modified version of the "binary gcd" method.
|
static long |
gcd(long p,
long q)
Gets the greatest common divisor of the absolute value of two numbers,
using the "binary gcd" method which avoids division and modulo
operations.
|
static boolean |
isPowerOfTwo(long n)
Returns true if the argument is a power of two.
|
static int |
lcm(int a,
int b)
Returns the least common multiple of the absolute value of two numbers,
using the formula
lcm(a,b) = (a / gcd(a,b)) * b. |
static long |
lcm(long a,
long b)
Returns the least common multiple of the absolute value of two numbers,
using the formula
lcm(a,b) = (a / gcd(a,b)) * b. |
static int |
mulAndCheck(int x,
int y)
Multiply two integers, checking for overflow.
|
static long |
mulAndCheck(long a,
long b)
Multiply two long integers, checking for overflow.
|
static BigInteger |
pow(BigInteger k,
BigInteger e)
Raise a BigInteger to a BigInteger power.
|
static BigInteger |
pow(BigInteger k,
int e)
Raise a BigInteger to an int power.
|
static BigInteger |
pow(BigInteger k,
long e)
Raise a BigInteger to a long power.
|
static int |
pow(int k,
int e)
Raise an int to an int power.
|
static long |
pow(long k,
int e)
Raise a long to an int power.
|
static int |
remainderUnsigned(int dividend,
int divisor)
Returns the unsigned remainder from dividing the first argument
by the second where each argument and the result is interpreted
as an unsigned value.
|
static long |
remainderUnsigned(long dividend,
long divisor)
Returns the unsigned remainder from dividing the first argument
by the second where each argument and the result is interpreted
as an unsigned value.
|
static int |
subAndCheck(int x,
int y)
Subtract two integers, checking for overflow.
|
static long |
subAndCheck(long a,
long b)
Subtract two long integers, checking for overflow.
|
public static int addAndCheck(int x,
int y)
throws MathRuntimeException
x - an addendy - an addendx+yMathRuntimeException - if the result can not be represented
as an int.public static long addAndCheck(long a,
long b)
throws MathRuntimeException
a - an addendb - an addenda+bMathRuntimeException - if the result can not be represented as an longpublic static int gcd(int p,
int q)
throws MathRuntimeException
gcd(Integer.MIN_VALUE, Integer.MIN_VALUE),
gcd(Integer.MIN_VALUE, 0) and
gcd(0, Integer.MIN_VALUE) throw an
ArithmeticException, because the result would be 2^31, which
is too large for an int value.gcd(x, x), gcd(0, x) and
gcd(x, 0) is the absolute value of x, except
for the special cases above.gcd(0, 0) is the only one which returns
0.p - Number.q - Number.MathRuntimeException - if the result cannot be represented as
a non-negative int value.public static long gcd(long p,
long q)
throws MathRuntimeException
Special cases:
gcd(Long.MIN_VALUE, Long.MIN_VALUE),
gcd(Long.MIN_VALUE, 0L) and
gcd(0L, Long.MIN_VALUE) throw an
ArithmeticException, because the result would be 2^63, which
is too large for a long value.gcd(x, x), gcd(0L, x) and
gcd(x, 0L) is the absolute value of x, except
for the special cases above.
gcd(0L, 0L) is the only one which returns
0L.p - Number.q - Number.MathRuntimeException - if the result cannot be represented as
a non-negative long value.public static int lcm(int a,
int b)
throws MathRuntimeException
lcm(a,b) = (a / gcd(a,b)) * b.
Special cases:
lcm(Integer.MIN_VALUE, n) and
lcm(n, Integer.MIN_VALUE), where abs(n) is a
power of 2, throw an ArithmeticException, because the result
would be 2^31, which is too large for an int value.lcm(0, x) and lcm(x, 0) is
0 for any x.
a - Number.b - Number.MathRuntimeException - if the result cannot be represented as
a non-negative int value.public static long lcm(long a,
long b)
throws MathRuntimeException
lcm(a,b) = (a / gcd(a,b)) * b.
Special cases:
lcm(Long.MIN_VALUE, n) and
lcm(n, Long.MIN_VALUE), where abs(n) is a
power of 2, throw an ArithmeticException, because the result
would be 2^63, which is too large for an int value.lcm(0L, x) and lcm(x, 0L) is
0L for any x.
a - Number.b - Number.MathRuntimeException - if the result cannot be represented
as a non-negative long value.public static int mulAndCheck(int x,
int y)
throws MathRuntimeException
x - Factor.y - Factor.x * y.MathRuntimeException - if the result can not be
represented as an int.public static long mulAndCheck(long a,
long b)
throws MathRuntimeException
a - Factor.b - Factor.a * b.MathRuntimeException - if the result can not be represented
as a long.public static int subAndCheck(int x,
int y)
throws MathRuntimeException
x - Minuend.y - Subtrahend.x - y.MathRuntimeException - if the result can not be represented
as an int.public static long subAndCheck(long a,
long b)
throws MathRuntimeException
a - Value.b - Value.a - b.MathRuntimeException - if the result can not be represented as a
long.public static int pow(int k,
int e)
throws MathIllegalArgumentException,
MathRuntimeException
k - Number to raise.e - Exponent (must be positive or zero).MathIllegalArgumentException - if e < 0.MathRuntimeException - if the result would overflow.public static long pow(long k,
int e)
throws MathIllegalArgumentException,
MathRuntimeException
k - Number to raise.e - Exponent (must be positive or zero).MathIllegalArgumentException - if e < 0.MathRuntimeException - if the result would overflow.public static BigInteger pow(BigInteger k, int e) throws MathIllegalArgumentException
k - Number to raise.e - Exponent (must be positive or zero).MathIllegalArgumentException - if e < 0.public static BigInteger pow(BigInteger k, long e) throws MathIllegalArgumentException
k - Number to raise.e - Exponent (must be positive or zero).MathIllegalArgumentException - if e < 0.public static BigInteger pow(BigInteger k, BigInteger e) throws MathIllegalArgumentException
k - Number to raise.e - Exponent (must be positive or zero).MathIllegalArgumentException - if e < 0.public static boolean isPowerOfTwo(long n)
n - the number to testpublic static int remainderUnsigned(int dividend,
int divisor)
This method does not use the long datatype.
dividend - the value to be divideddivisor - the value doing the dividingpublic static long remainderUnsigned(long dividend,
long divisor)
This method does not use the BigInteger datatype.
dividend - the value to be divideddivisor - the value doing the dividingpublic static int divideUnsigned(int dividend,
int divisor)
Note that in two's complement arithmetic, the three other
basic arithmetic operations of add, subtract, and multiply are
bit-wise identical if the two operands are regarded as both
being signed or both being unsigned. Therefore separate addUnsigned, etc. methods are not provided.
This method does not use the long datatype.
dividend - the value to be divideddivisor - the value doing the dividingpublic static long divideUnsigned(long dividend,
long divisor)
Note that in two's complement arithmetic, the three other
basic arithmetic operations of add, subtract, and multiply are
bit-wise identical if the two operands are regarded as both
being signed or both being unsigned. Therefore separate addUnsigned, etc. methods are not provided.
This method does not use the BigInteger datatype.
dividend - the value to be divideddivisor - the value doing the dividingCopyright © 2016–2020 Hipparchus.org. All rights reserved.