Class Util


  • public class Util
    extends Object
    Miscellaneous utility methods.
    Version:
    1.6
    Author:
    Mikko Tommila
    • Method Summary

      Modifier and Type Method Description
      static long ifFinite​(long x, long y)
      Returns the argument y limited to Apfloat.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 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.
    • Method Detail

      • 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 argument y limited to Apfloat.INFINITE. In case x is Apfloat.INFINITE, then Apfloat.INFINITE is returned, otherwise y. Also if y is negative or zero, this is treated as a case of overflow, and Apfloat.INFINITE is returned. The return value is thus always positive.
        Parameters:
        x - The argument that is tested to be Apfloat.INFINITE.
        y - The argument that is returned if x is not Apfloat.INFINITE.
        Returns:
        (x == Apfloat.INFINITE || y <= 0 ? Apfloat.INFINITE : y)