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 longaddExact(long x, long y) Returns the sum of the arguments, throwing an exception if the result overflows a long.static longifFinite(long x, long y) Returns the argumentylimited toApfloat.INFINITE.static intlog2down(int x) Base-2 logarithm rounded down to nearest power of two.static intlog2down(long x) Base-2 logarithm rounded down to nearest power of two.static intlog2up(int x) Base-2 logarithm rounded up to nearest power of two.static intlog2up(long x) Base-2 logarithm rounded up to nearest power of two.static longmax(long x, long... y) Returns the maximum of the arguments.static longmin(long x, long... y) Returns the minimum of the arguments.static longmultiplyExact(long x, long y) Returns the product of the arguments, throwing an exception if the result overflows a long.static intround23down(int x) Round down to nearest power of two or three times a power of two.static longround23down(long x) Round down to nearest power of two or three times a power of two.static intround23up(int x) Round up to nearest power of two or three times a power of two.static longround23up(long x) Round up to nearest power of two or three times a power of two.static intround2down(int x) Round down to nearest power of two.static longround2down(long x) Round down to nearest power of two.static intround2up(int x) Round up to nearest power of two.static longround2up(long x) Round up to nearest power of two.static intsqrt4down(int x) Square root rounded down to nearest power of two.static longsqrt4down(long x) Square root rounded down to nearest power of two.static intsqrt4up(int x) Square root rounded up to nearest power of two.static longsqrt4up(long x) Square root rounded up to nearest power of two.static <T> Stream<T> Convert iterator to stream.static longsubtractExact(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:
xrounded 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:
xrounded 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:
xrounded 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:
xrounded 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:
xrounded 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:
xrounded 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:
xrounded 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:
xrounded 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
xrounded 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
xrounded 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
xrounded 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
xrounded 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 argumentylimited toApfloat.INFINITE. In casexisApfloat.INFINITE, thenApfloat.INFINITEis returned, otherwisey. Also ifyis negative or zero, this is treated as a case of overflow, andApfloat.INFINITEis returned. The return value is thus always positive.- Parameters:
x- The argument that is tested to beApfloat.INFINITE.y- The argument that is returned ifxis 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
-