Package it.unimi.dsi

Class Util


  • public final class Util
    extends Object
    All-purpose static-method container class.
    Since:
    0.1
    Author:
    Sebastiano Vigna
    • Method Detail

      • format

        public static String format​(double d)
        Formats a number.

        This method formats a double separating thousands and printing just two fractional digits.

        Note that the method is synchronized, as it uses a static NumberFormat.

        Parameters:
        d - a number.
        Returns:
        a string containing a pretty print of the number.
      • format

        public static String format​(long l)
        Formats a number.

        This method formats a long separating thousands.

        Note that the method is synchronized, as it uses a static NumberFormat.

        Parameters:
        l - a number.
        Returns:
        a string containing a pretty print of the number.
      • format

        public static String format​(double d,
                                    NumberFormat format)
        Formats a number using a specified NumberFormat.
        Parameters:
        d - a number.
        format - a format.
        Returns:
        a string containing a pretty print of the number.
      • format

        public static String format​(long l,
                                    NumberFormat format)
        Formats a number using a specified NumberFormat.
        Parameters:
        l - a number.
        format - a format.
        Returns:
        a string containing a pretty print of the number.
      • formatSize

        public static String formatSize​(long l)
        Formats a size.

        This method formats a long using suitable unit multipliers (e.g., K, M, G, and T) and printing just two fractional digits.

        Note that the method is synchronized, as it uses a static NumberFormat.

        Parameters:
        l - a number, representing a size (e.g., memory).
        Returns:
        a string containing a pretty print of the number using unit multipliers.
      • formatBinarySize

        public static String formatBinarySize​(long l)
        Formats a binary size.

        This method formats a long using suitable unit binary multipliers (e.g., Ki, Mi, Gi, and Ti) and printing no fractional digits. The argument must be a power of 2.

        Note that the method is synchronized, as it uses a static NumberFormat.

        Parameters:
        l - a number, representing a binary size (e.g., memory); must be a power of 2.
        Returns:
        a string containing a pretty print of the number using binary unit multipliers.
      • formatSize2

        public static String formatSize2​(long l)
        Formats a size.

        This method formats a long using suitable binary unit multipliers (e.g., Ki, Mi, Gi, and Ti) and printing just two fractional digits.

        Note that the method is synchronized, as it uses a static NumberFormat.

        Parameters:
        l - a number, representing a size (e.g., memory).
        Returns:
        a string containing a pretty print of the number using binary unit multipliers.
      • formatSize

        public static String formatSize​(long l,
                                        NumberFormat format)
        Formats a size using a specified NumberFormat.

        This method formats a long using suitable unit multipliers (e.g., K, M, G, and T) and the given NumberFormat for the digits.

        Parameters:
        l - a number, representing a size (e.g., memory).
        format - a format.
        Returns:
        a string containing a pretty print of the number using unit multipliers.
      • formatBinarySize

        public static String formatBinarySize​(long l,
                                              NumberFormat format)
        Formats a size using a specified NumberFormat.

        This method formats a long using suitable unit binary multipliers (e.g., Ki, Mi, Gi, and Ti) and the given NumberFormat for the digits. The argument must be a power of 2.

        Parameters:
        l - a number, representing a binary size (e.g., memory); must be a power of 2.
        format - a format.
        Returns:
        a string containing a pretty print of the number using binary unit multipliers.
      • formatSize2

        public static String formatSize2​(long l,
                                         NumberFormat format)
        Formats a size using a specified NumberFormat and binary unit multipliers.

        This method formats a long using suitable binary unit multipliers (e.g., Ki, Mi, Gi, and Ti) and the given NumberFormat for the digits.

        Parameters:
        l - a number, representing a size (e.g., memory).
        format - a format.
        Returns:
        a string containing a pretty print of the number using binary unit multipliers.
      • memoryIsLow

        public static boolean memoryIsLow()
        Returns true if less then 5% of the available memory is free.
        Returns:
        true if less then 5% of the available memory is free.
      • availableMemory

        public static long availableMemory()
        Returns the amount of available memory (free memory plus never allocated memory).
        Returns:
        the amount of available memory, in bytes.
      • percAvailableMemory

        public static int percAvailableMemory()
        Returns the percentage of available memory (free memory plus never allocated memory).
        Returns:
        the percentage of available memory.
      • compactMemory

        public static void compactMemory()
        Tries to compact memory as much as possible by forcing garbage collection.
      • randomSeedBytes

        public static byte[] randomSeedBytes()
        Returns a random seed generated by randomSeed() under the form of an array of eight bytes.
        Returns:
        a reasonably good random seed.
      • invertPermutationInPlace

        public static int[] invertPermutationInPlace​(int[] perm)
        Computes in place the inverse of a permutation expressed as an array of n distinct integers in [0 .. n).

        Warning: if perm is not a permutation, essentially anything can happen.

        Parameters:
        perm - the permutation to be inverted.
        Returns:
        perm.
      • invertPermutation

        public static int[] invertPermutation​(int[] perm,
                                              int[] inv)
        Computes the inverse of a permutation expressed as an array of n distinct integers in [0 .. n).

        Warning: if perm is not a permutation, essentially anything can happen.

        Parameters:
        perm - the permutation to be inverted.
        inv - the array storing the inverse.
        Returns:
        inv.
      • invertPermutation

        public static int[] invertPermutation​(int[] perm)
        Computes the inverse of a permutation expressed as an array of n distinct integers in [0 .. n) and stores the result in a new array.

        Warning: if perm is not a permutation, essentially anything can happen.

        Parameters:
        perm - the permutation to be inverted.
        Returns:
        a new array containing the inverse permutation.
      • identity

        public static int[] identity​(int[] perm)
        Stores the identity permutation in an array.
        Parameters:
        perm - an array of integers.
        Returns:
        perm, filled with the identity permutation.
      • identity

        public static int[] identity​(int n)
        Stores the identity permutation in a new array of given length.
        Parameters:
        n - the size of the array.
        Returns:
        a new array of length n, filled with the identity permutation.
      • invertPermutationInPlace

        public static long[][] invertPermutationInPlace​(long[][] perm)
        Computes in place the inverse of a permutation expressed as a big array of n distinct long integers in [0 .. n).

        Warning: if perm is not a permutation, essentially anything can happen.

        Parameters:
        perm - the permutation to be inverted.
        Returns:
        perm.
      • invertPermutation

        public static long[][] invertPermutation​(long[][] perm,
                                                 long[][] inv)
        Computes the inverse of a permutation expressed as a big array of n distinct long integers in [0 .. n).

        Warning: if perm is not a permutation, essentially anything can happen.

        Parameters:
        perm - the permutation to be inverted.
        inv - the big array storing the inverse.
        Returns:
        inv.
      • invertPermutation

        public static long[][] invertPermutation​(long[][] perm)
        Computes the inverse of a permutation expressed as a big array of n distinct long integers in [0 .. n) and stores the result in a new big array.

        Warning: if perm is not a permutation, essentially anything can happen.

        Parameters:
        perm - the permutation to be inverted.
        Returns:
        a new big array containing the inverse permutation.
      • identity

        public static long[][] identity​(long[][] perm)
        Stores the identity permutation in a big array.
        Parameters:
        perm - a big array.
        Returns:
        perm, filled with the identity permutation.
      • identity

        public static long[][] identity​(long n)
        Stores the identity permutation in a new big array of given length.
        Parameters:
        n - the size of the array.
        Returns:
        a new array of length n, filled with the identity permutation.