Package org.apfloat.spi
Class Util
java.lang.Object
org.apfloat.spi.Util
Miscellaneous utility methods.
- Version:
- 1.13.0
- Author:
- Mikko Tommila
-
Method Summary
Modifier and TypeMethodDescriptionstatic long
addExact
(long x, long y) Returns the sum of the arguments, throwing an exception if the result overflows a long.static long
ifFinite
(long x, long y) Returns the argumenty
limited toApfloat.INFINITE
.static int
log2down
(int x) Base-2 logarithm rounded down to nearest power of two.static int
log2down
(long x) Base-2 logarithm rounded down to nearest power of two.static int
log2up
(int x) Base-2 logarithm rounded up to nearest power of two.static int
log2up
(long x) Base-2 logarithm rounded up to nearest power of two.static long
max
(long x, long... y) Returns the maximum of the arguments.static long
min
(long x, long... y) Returns the minimum of the arguments.static long
multiplyExact
(long x, long y) Returns the product of the arguments, throwing an exception if the result overflows a long.static int
round23down
(int x) Round down to nearest power of two or three times a power of two.static long
round23down
(long x) Round down to nearest power of two or three times a power of two.static int
round23up
(int x) Round up to nearest power of two or three times a power of two.static long
round23up
(long x) Round up to nearest power of two or three times a power of two.static int
round2down
(int x) Round down to nearest power of two.static long
round2down
(long x) Round down to nearest power of two.static int
round2up
(int x) Round up to nearest power of two.static long
round2up
(long x) Round up to nearest power of two.static int
sqrt4down
(int x) Square root rounded down to nearest power of two.static long
sqrt4down
(long x) Square root rounded down to nearest power of two.static int
sqrt4up
(int x) Square root rounded up to nearest power of two.static long
sqrt4up
(long x) Square root rounded up to nearest power of two.static <T> Stream
<T> Convert iterator to stream.static long
subtractExact
(long x, long y) Returns the difference of the arguments, throwing an exception if the result overflows a long.
-
Method Details
-
round2down
public static int round2down(int x) Round down to nearest power of two.- Parameters:
x
- The input value, which must be non-negative.- Returns:
x
rounded down to the nearest power of two.
-
round2down
public static long round2down(long x) Round down to nearest power of two.- Parameters:
x
- The input value, which must be non-negative.- Returns:
x
rounded down to the nearest power of two.
-
round2up
public static int round2up(int x) Round up to nearest power of two.- Parameters:
x
- The input value, which must be non-negative and not greater than 230.- Returns:
x
rounded up to the nearest power of two.
-
round2up
public static long round2up(long x) Round up to nearest power of two.- Parameters:
x
- The input value, which must be non-negative and not greater than 262.- Returns:
x
rounded up to the nearest power of two.
-
round23down
public static int round23down(int x) Round down to nearest power of two or three times a power of two.- Parameters:
x
- The input value, which must be non-negative.- Returns:
x
rounded down to nearest power of two or three times a power of two.
-
round23down
public static long round23down(long x) Round down to nearest power of two or three times a power of two.- Parameters:
x
- The input value, which must be non-negative.- Returns:
x
rounded down to nearest power of two or three times a power of two.
-
round23up
public static int round23up(int x) Round up to nearest power of two or three times a power of two.- Parameters:
x
- The input value, which must be non-negative and not greater than 3 * 229.- Returns:
x
rounded up to the nearest power of two or three times a power of two.
-
round23up
public static long round23up(long x) Round up to nearest power of two or three times a power of two.- Parameters:
x
- The input value, which must be non-negative and not greater than 3 * 261.- Returns:
x
rounded up to the nearest power of two or three times a power of two.
-
sqrt4down
public static int sqrt4down(int x) Square root rounded down to nearest power of two.- Parameters:
x
- The input value, which must be non-negative.- Returns:
- Square root of
x
rounded down to nearest power of two.
-
sqrt4down
public static long sqrt4down(long x) Square root rounded down to nearest power of two.- Parameters:
x
- The input value, which must be non-negative.- Returns:
- Square root of
x
rounded down to nearest power of two.
-
sqrt4up
public static int sqrt4up(int x) Square root rounded up to nearest power of two.- Parameters:
x
- The input value, which must be non-negative.- Returns:
- Square root of
x
rounded up to nearest power of two.
-
sqrt4up
public static long sqrt4up(long x) Square root rounded up to nearest power of two.- Parameters:
x
- The input value, which must be non-negative.- Returns:
- Square root of
x
rounded up to nearest power of two.
-
log2down
public static int log2down(int x) Base-2 logarithm rounded down to nearest power of two.- Parameters:
x
- The input value, which must be positive.- Returns:
log2(x)
rounded down to nearest integer.
-
log2down
public static int log2down(long x) Base-2 logarithm rounded down to nearest power of two.- Parameters:
x
- The input value, which must be positive.- Returns:
log2(x)
rounded down to nearest integer.
-
log2up
public static int log2up(int x) Base-2 logarithm rounded up to nearest power of two.- Parameters:
x
- The input value, which must be positive.- Returns:
log2(x)
rounded up to nearest integer.
-
log2up
public static int log2up(long x) Base-2 logarithm rounded up to nearest power of two.- Parameters:
x
- The input value, which must be positive.- Returns:
log2(x)
rounded up to nearest integer.
-
ifFinite
public static long ifFinite(long x, long y) Returns the argumenty
limited toApfloat.INFINITE
. In casex
isApfloat.INFINITE
, thenApfloat.INFINITE
is returned, otherwisey
. Also ify
is negative or zero, this is treated as a case of overflow, andApfloat.INFINITE
is returned. The return value is thus always positive.- Parameters:
x
- The argument that is tested to beApfloat.INFINITE
.y
- The argument that is returned ifx
is notApfloat.INFINITE
.- Returns:
(x == Apfloat.INFINITE || y <= 0 ? Apfloat.INFINITE : y)
-
max
public static long max(long x, long... y) Returns the maximum of the arguments.- Parameters:
x
- The first argument.y
- More arguments.- Returns:
- The maximum of the arguments
-
min
public static long min(long x, long... y) Returns the minimum of the arguments.- Parameters:
x
- The first argument.y
- More arguments.- Returns:
- The minimum of the arguments
-
multiplyExact
Returns the product of the arguments, throwing an exception if the result overflows a long.- Parameters:
x
- The first operand.y
- The second operand.- Returns:
- The result.
- Throws:
OverflowException
- If the result overflows a long
-
addExact
Returns the sum of the arguments, throwing an exception if the result overflows a long.- Parameters:
x
- The first operand.y
- The second operand.- Returns:
- The result.
- Throws:
OverflowException
- If the result overflows a long
-
subtractExact
Returns the difference of the arguments, throwing an exception if the result overflows a long.- Parameters:
x
- The first operand.y
- The second operand.- Returns:
- The result.
- Throws:
OverflowException
- If the result overflows a long
-
stream
-