|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.math.util.MathUtils
public final class MathUtils
Some useful additions to the built-in functions in Math
.
Method Summary | |
---|---|
static int |
addAndCheck(int x,
int y)
Add two integers, checking for overflow. |
static long |
binomialCoefficient(int n,
int k)
Returns an exact representation of the Binomial Coefficient, " n choose k ", the number of
k -element subsets that can be selected from an
n -element set. |
static double |
binomialCoefficientDouble(int n,
int k)
Returns a double representation of the Binomial
Coefficient, "n choose k ", the number of
k -element subsets that can be selected from an
n -element set. |
static double |
binomialCoefficientLog(int n,
int k)
Returns the natural log of the Binomial
Coefficient, "n choose k ", the number of
k -element subsets that can be selected from an
n -element set. |
static double |
cosh(double x)
Returns the hyperbolic cosine of x. |
static boolean |
equals(double x,
double y)
Returns true iff both arguments are NaN or neither is NaN and they are equal |
static long |
factorial(int n)
Returns n!. |
static double |
factorialDouble(int n)
Returns n!. |
static double |
factorialLog(int n)
Returns the natural logarithm of n!. |
static int |
gcd(int u,
int v)
Gets the greatest common divisor of the absolute value of two numbers, using the "binary gcd" method which avoids division and modulo operations. |
static int |
hash(double value)
Returns an integer hash code representing the given double value. |
static byte |
indicator(byte x)
For a byte value x, this method returns (byte)(+1) if x >= 0 and (byte)(-1) if x < 0. |
static double |
indicator(double x)
For a double precision value x, this method returns +1.0 if x >= 0 and -1.0 if x < 0. |
static float |
indicator(float x)
For a float value x, this method returns +1.0F if x >= 0 and -1.0F if x < 0. |
static int |
indicator(int x)
For an int value x, this method returns +1 if x >= 0 and -1 if x < 0. |
static long |
indicator(long x)
For a long value x, this method returns +1L if x >= 0 and -1L if x < 0. |
static short |
indicator(short x)
For a short value x, this method returns (short)(+1) if x >= 0 and (short)(-1) if x < 0. |
static int |
lcm(int a,
int b)
Returns the least common multiple between two integer values. |
static int |
mulAndCheck(int x,
int y)
Multiply two integers, checking for overflow. |
static double |
round(double x,
int scale)
Round the given value to the specified number of decimal places. |
static double |
round(double x,
int scale,
int roundingMethod)
Round the given value to the specified number of decimal places. |
static float |
round(float x,
int scale)
Round the given value to the specified number of decimal places. |
static float |
round(float x,
int scale,
int roundingMethod)
Round the given value to the specified number of decimal places. |
static byte |
sign(byte x)
Returns the sign for byte value x . |
static double |
sign(double x)
Returns the sign for double precision x . |
static float |
sign(float x)
Returns the sign for float value x . |
static int |
sign(int x)
Returns the sign for int value x . |
static long |
sign(long x)
Returns the sign for long value x . |
static short |
sign(short x)
Returns the sign for short value x . |
static double |
sinh(double x)
Returns the hyperbolic sine of x. |
static int |
subAndCheck(int x,
int y)
Subtract two integers, checking for overflow. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method Detail |
---|
public static int addAndCheck(int x, int y)
x
- an addendy
- an addend
x+y
ArithmeticException
- if the result can not be represented as an
intpublic static long binomialCoefficient(int n, int k)
n choose k
", the number of
k
-element subsets that can be selected from an
n
-element set.
Preconditions:
0 <= k <= n
(otherwise
IllegalArgumentException
is thrown)long
. The
largest value of n
for which all coefficients are
< Long.MAX_VALUE
is 66. If the computed value exceeds
Long.MAX_VALUE
an ArithMeticException
is
thrown.
n
- the size of the setk
- the size of the subsets to be counted
n choose k
IllegalArgumentException
- if preconditions are not met.
ArithmeticException
- if the result is too large to be represented
by a long integer.public static double binomialCoefficientDouble(int n, int k)
double
representation of the Binomial
Coefficient, "n choose k
", the number of
k
-element subsets that can be selected from an
n
-element set.
Preconditions:
0 <= k <= n
(otherwise
IllegalArgumentException
is thrown)double
. The
largest value of n
for which all coefficients are <
Double.MAX_VALUE is 1029. If the computed value exceeds Double.MAX_VALUE,
Double.POSITIVE_INFINITY is returned
n
- the size of the setk
- the size of the subsets to be counted
n choose k
IllegalArgumentException
- if preconditions are not met.public static double binomialCoefficientLog(int n, int k)
log
of the Binomial
Coefficient, "n choose k
", the number of
k
-element subsets that can be selected from an
n
-element set.
Preconditions:
0 <= k <= n
(otherwise
IllegalArgumentException
is thrown)
n
- the size of the setk
- the size of the subsets to be counted
n choose k
IllegalArgumentException
- if preconditions are not met.public static double cosh(double x)
x
- double value for which to find the hyperbolic cosine
public static boolean equals(double x, double y)
x
- first valuey
- second value
public static long factorial(int n)
n
Factorial, the
product of the numbers 1,...,n
.
Preconditions:
n >= 0
(otherwise
IllegalArgumentException
is thrown)long
. The
largest value of n
for which n!
<
Long.MAX_VALUE is 20. If the computed value exceeds Long.MAX_VALUE
an ArithMeticException
is thrown.
n
- argument
n!
ArithmeticException
- if the result is too large to be represented
by a long integer.
IllegalArgumentException
- if n < 0public static double factorialDouble(int n)
n
Factorial, the
product of the numbers 1,...,n
as a double
.
Preconditions:
n >= 0
(otherwise
IllegalArgumentException
is thrown)double
. The
largest value of n
for which n!
<
Double.MAX_VALUE is 170. If the computed value exceeds
Double.MAX_VALUE, Double.POSITIVE_INFINITY is returned
n
- argument
n!
IllegalArgumentException
- if n < 0public static double factorialLog(int n)
Preconditions:
n >= 0
(otherwise
IllegalArgumentException
is thrown)
n
- argument
n!
IllegalArgumentException
- if preconditions are not met.public static int gcd(int u, int v)
Gets the greatest common divisor of the absolute value of two numbers, using the "binary gcd" method which avoids division and modulo operations. See Knuth 4.5.2 algorithm B. This algorithm is due to Josef Stein (1961).
u
- a non-zero numberv
- a non-zero number
public static int hash(double value)
value
- the value to be hashed
public static byte indicator(byte x)
x
- the value, a byte
public static double indicator(double x)
NaN
if x
is
NaN
.
x
- the value, a double
public static float indicator(float x)
NaN
if x
is NaN
.
x
- the value, a float
public static int indicator(int x)
x
- the value, an int
public static long indicator(long x)
x
- the value, a long
public static short indicator(short x)
x
- the value, a short
public static int lcm(int a, int b)
a
- the first integer value.b
- the second integer value.
ArithmeticException
- if the lcm is too large to store as an intpublic static int mulAndCheck(int x, int y)
x
- a factory
- a factor
x*y
ArithmeticException
- if the result can not be represented as an
intpublic static double round(double x, int scale)
BigDecimal.ROUND_HALF_UP
method.
x
- the value to round.scale
- the number of digits to the right of the decimal point.
public static double round(double x, int scale, int roundingMethod)
BigDecimal
.
x
- the value to round.scale
- the number of digits to the right of the decimal point.roundingMethod
- the rounding method as defined in
BigDecimal
.
public static float round(float x, int scale)
BigDecimal.ROUND_HALF_UP
method.
x
- the value to round.scale
- the number of digits to the right of the decimal point.
public static float round(float x, int scale, int roundingMethod)
BigDecimal
.
x
- the value to round.scale
- the number of digits to the right of the decimal point.roundingMethod
- the rounding method as defined in
BigDecimal
.
public static byte sign(byte x)
x
.
For a byte value x, this method returns (byte)(+1) if x > 0, (byte)(0) if x = 0, and (byte)(-1) if x < 0.
x
- the value, a byte
public static double sign(double x)
x
.
For a double value x
, this method returns
+1.0
if x > 0
, 0.0
if
x = 0.0
, and -1.0
if x < 0
.
Returns NaN
if x
is NaN
.
x
- the value, a double
public static float sign(float x)
x
.
For a float value x, this method returns +1.0F if x > 0, 0.0F if x =
0.0F, and -1.0F if x < 0. Returns NaN
if x
is NaN
.
x
- the value, a float
public static int sign(int x)
x
.
For an int value x, this method returns +1 if x > 0, 0 if x = 0, and -1 if x < 0.
x
- the value, an int
public static long sign(long x)
x
.
For a long value x, this method returns +1L if x > 0, 0L if x = 0, and -1L if x < 0.
x
- the value, a long
public static short sign(short x)
x
.
For a short value x, this method returns (short)(+1) if x > 0, (short)(0) if x = 0, and (short)(-1) if x < 0.
x
- the value, a short
public static double sinh(double x)
x
- double value for which to find the hyperbolic sine
public static int subAndCheck(int x, int y)
x
- the minuendy
- the subtrahend
x-y
ArithmeticException
- if the result can not be represented as an
int
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |