Class NumberFactory


  • public final class NumberFactory
    extends java.lang.Object
    Utility for creating number types from one or two int values or one long value, or a sequence of bytes.
    • Method Summary

      Modifier and Type Method Description
      static int extractHi​(long v)
      Creates an int from a long, using the high order bits.
      static int extractLo​(long v)
      Creates an int from a long, using the low order bits.
      static boolean makeBoolean​(int v)
      Deprecated.
      Since version 1.2.
      static boolean makeBoolean​(long v)
      Deprecated.
      Since version 1.2.
      static byte[] makeByteArray​(int v)
      Splits an int into 4 bytes.
      static byte[] makeByteArray​(int[] input)
      Splits an array of int values into a sequence of bytes.
      static byte[] makeByteArray​(long v)
      Splits a long into 8 bytes.
      static byte[] makeByteArray​(long[] input)
      Splits an array of long values into a sequence of bytes.
      static double makeDouble​(int v, int w)  
      static double makeDouble​(long v)  
      static float makeFloat​(int v)  
      static int makeInt​(byte[] input)
      Creates an int from 4 bytes.
      static int makeInt​(long v)
      Deprecated.
      Since version 1.2.
      static int[] makeIntArray​(byte[] input)
      Creates an array of int values from a sequence of bytes.
      static long makeLong​(byte[] input)
      Creates a long from 8 bytes.
      static long makeLong​(int v, int w)  
      static long[] makeLongArray​(byte[] input)
      Creates an array of long values from a sequence of bytes.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • makeBoolean

        @Deprecated
        public static boolean makeBoolean​(int v)
        Deprecated.
        Since version 1.2. Method has become obsolete following RNG-57.
        Parameters:
        v - Number.
        Returns:
        a boolean.
      • makeBoolean

        @Deprecated
        public static boolean makeBoolean​(long v)
        Deprecated.
        Since version 1.2. Method has become obsolete following RNG-57.
        Parameters:
        v - Number.
        Returns:
        a boolean.
      • makeDouble

        public static double makeDouble​(long v)
        Parameters:
        v - Number.
        Returns:
        a double value in the interval [0, 1].
      • makeDouble

        public static double makeDouble​(int v,
                                        int w)
        Parameters:
        v - Number (high order bits).
        w - Number (low order bits).
        Returns:
        a double value in the interval [0, 1].
      • makeFloat

        public static float makeFloat​(int v)
        Parameters:
        v - Number.
        Returns:
        a float value in the interval [0, 1].
      • makeLong

        public static long makeLong​(int v,
                                    int w)
        Parameters:
        v - Number (high order bits).
        w - Number (low order bits).
        Returns:
        a long value.
      • makeInt

        @Deprecated
        public static int makeInt​(long v)
        Deprecated.
        Since version 1.2. Method has become obsolete following RNG-57.
        Creates an int from a long.
        Parameters:
        v - Number.
        Returns:
        an int value made from the "xor" of the high order bits and low order bits of v.
      • extractHi

        public static int extractHi​(long v)
        Creates an int from a long, using the high order bits.

        The returned value is such that if

        
          vL = extractLo(v);
          vH = extractHi(v);
         

        then v is equal to makeLong(vH, vL).

        Parameters:
        v - Number.
        Returns:
        an int value made from the most significant bits of v.
      • extractLo

        public static int extractLo​(long v)
        Creates an int from a long, using the low order bits.

        The returned value is such that if

        
          vL = extractLo(v);
          vH = extractHi(v);
         

        then v is equal to makeLong(vH, vL).

        Parameters:
        v - Number.
        Returns:
        an int value made from the least significant bits of v.
      • makeByteArray

        public static byte[] makeByteArray​(long v)
        Splits a long into 8 bytes.
        Parameters:
        v - Value.
        Returns:
        the bytes that compose the given value (least-significant byte first).
      • makeLong

        public static long makeLong​(byte[] input)
        Creates a long from 8 bytes.
        Parameters:
        input - Input.
        Returns:
        the value that correspond to the given bytes assuming that the is ordered in increasing byte significance (i.e. the first byte in the array is the least-siginficant).
        Throws:
        java.lang.IllegalArgumentException - if input.length != 8.
      • makeByteArray

        public static byte[] makeByteArray​(long[] input)
        Splits an array of long values into a sequence of bytes. This method calls makeByteArray(long) for each element of the input.
        Parameters:
        input - Input.
        Returns:
        an array of bytes.
      • makeLongArray

        public static long[] makeLongArray​(byte[] input)
        Creates an array of long values from a sequence of bytes. This method calls makeLong(byte[]) for each subsequence of 8 bytes.
        Parameters:
        input - Input.
        Returns:
        an array of long.
        Throws:
        java.lang.IllegalArgumentException - if input.length is not a multiple of 8.
      • makeByteArray

        public static byte[] makeByteArray​(int v)
        Splits an int into 4 bytes.
        Parameters:
        v - Value.
        Returns:
        the bytes that compose the given value (least-significant byte first).
      • makeInt

        public static int makeInt​(byte[] input)
        Creates an int from 4 bytes.
        Parameters:
        input - Input.
        Returns:
        the value that correspond to the given bytes assuming that the is ordered in increasing byte significance (i.e. the first byte in the array is the least-siginficant).
        Throws:
        java.lang.IllegalArgumentException - if input.length != 4.
      • makeByteArray

        public static byte[] makeByteArray​(int[] input)
        Splits an array of int values into a sequence of bytes. This method calls makeByteArray(int) for each element of the input.
        Parameters:
        input - Input.
        Returns:
        an array of bytes.
      • makeIntArray

        public static int[] makeIntArray​(byte[] input)
        Creates an array of int values from a sequence of bytes. This method calls makeInt(byte[]) for each subsequence of 4 bytes.
        Parameters:
        input - Input. Length must be a multiple of 4.
        Returns:
        an array of int.
        Throws:
        java.lang.IllegalArgumentException - if input.length is not a multiple of 4.