Class MathUtil


  • public final class MathUtil
    extends Object
    Math utility methods.
    • Method Detail

      • findNextPositivePowerOfTwo

        public static int findNextPositivePowerOfTwo​(int value)
        Fast method of finding the next power of 2 greater than or equal to the supplied value.

        If the value is <= 0 then 1 will be returned. This method is not suitable for Integer.MIN_VALUE or numbers greater than 2^30.

        Parameters:
        value - from which to search for next power of 2
        Returns:
        The next power of 2 or the value itself if it is a power of 2
      • safeFindNextPositivePowerOfTwo

        public static int safeFindNextPositivePowerOfTwo​(int value)
        Fast method of finding the next power of 2 greater than or equal to the supplied value.

        This method will do runtime bounds checking and call findNextPositivePowerOfTwo(int) if within a valid range.

        Parameters:
        value - from which to search for next power of 2
        Returns:
        The next power of 2 or the value itself if it is a power of 2.

        Special cases for return values are as follows:

        • <= 0 -> 1
        • >= 2^30 -> 2^30
      • isOutOfBounds

        public static boolean isOutOfBounds​(int index,
                                            int length,
                                            int capacity)
        Determine if the requested index and length will fit within capacity.
        Parameters:
        index - The starting index.
        length - The length which will be utilized (starting from index).
        capacity - The capacity that index + length is allowed to be within.
        Returns:
        false if the requested index and length will fit within capacity. true if this would result in an index out of bounds exception.