it.unimi.dsi
Class Util

java.lang.Object
  extended by it.unimi.dsi.Util

public final class Util
extends Object

All-purpose static-method container class.

Since:
0.1
Author:
Sebastiano Vigna

Method Summary
static long availableMemory()
          Returns the amount of available memory (free memory plus never allocated memory).
static void compactMemory()
          Tries to compact memory as much as possible by forcing garbage collection.
static void ensureLog4JIsConfigured()
          Ensures that Log4J is configured, by invoking, if necessary, BasicConfigurator.configure(), and setting the root logger level to Level.INFO.
static void ensureLog4JIsConfigured(Class<?> klass)
          Ensures that Log4J is configured, by invoking, if necessary, BasicConfigurator.configure(), and setting the root logger level to Level.INFO.
static void ensureLog4JIsConfigured(Class<?> klass, Level level)
          Ensures that Log4J is configured, by invoking, if necessary, BasicConfigurator.configure(), and setting the root logger level to level.
static void ensureLog4JIsConfigured(Level level)
          Ensures that Log4J is configured, by invoking, if necessary, BasicConfigurator.configure(), and setting the root logger level to a specified logging level.
static String format(double d)
          Formats a number.
static String format(long l)
          Formats a number.
static String formatBinarySize(long l)
          Formats a binary size.
static String formatSize(long l)
          Formats a size.
static String formatSize2(long l)
          Formats a size.
static Logger getDebugLogger(Class<?> klass)
          Calls Log4J's Logger.getLogger(java.lang.Class) method and then ensureLog4JIsConfigured() with argument Level.DEBUG.
static Logger getLogger(Class<?> klass)
          Calls Log4J's Logger.getLogger(java.lang.Class) method and then ensureLog4JIsConfigured().
static int[] identity(int n)
          Stores the identity permutation in a new array of given length.
static int[] identity(int[] perm)
          Stores the identity permutation in an array.
static long[][] identity(long n)
          Stores the identity permutation in a new big array of given length.
static long[][] identity(long[][] perm)
          Stores the identity permutation in a big array.
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.
static int[] invertPermutation(int[] perm, int[] inv)
          Computes the inverse of a permutation expressed as an array of n distinct integers in [0 .. n).
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.
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).
static int[] invertPermutationInPlace(int[] perm)
          Computes in place the inverse of a permutation expressed as an array of n distinct integers in [0 .. n).
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).
static boolean log4JIsConfigured()
          Checks whether Log4J is properly configuring by searching for appenders in all loggers.
static boolean memoryIsLow()
          Returns true if less then 5% of the available memory is free.
static int percAvailableMemory()
          Returns the percentage of available memory (free memory plus never allocated memory).
static long randomSeed()
          Returns a random seed generated by calling System.nanoTime(), adding a unique identifier and scrambling the result using the finalisation step of Austin Appleby's MurmurHash3.
static byte[] randomSeedBytes()
          Returns a random seed generated by calling System.nanoTime(), adding a unique identifier and scrambling the result using the finalisation step of Austin Appleby's MurmurHash3, converted to a byte array.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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.

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.

Parameters:
l - a number.
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.

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.

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.

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

log4JIsConfigured

public static boolean log4JIsConfigured()
Checks whether Log4J is properly configuring by searching for appenders in all loggers.

Returns:
whether Log4J is configured (or, at least, an educated guess).

ensureLog4JIsConfigured

public static void ensureLog4JIsConfigured(Class<?> klass)
Ensures that Log4J is configured, by invoking, if necessary, BasicConfigurator.configure(), and setting the root logger level to Level.INFO.

Parameters:
klass - the calling class (to be shown to the user).

ensureLog4JIsConfigured

public static void ensureLog4JIsConfigured(Class<?> klass,
                                           Level level)
Ensures that Log4J is configured, by invoking, if necessary, BasicConfigurator.configure(), and setting the root logger level to level.

Parameters:
klass - the calling class (to be shown to the user).
level - the required logging level.

ensureLog4JIsConfigured

public static void ensureLog4JIsConfigured()
Ensures that Log4J is configured, by invoking, if necessary, BasicConfigurator.configure(), and setting the root logger level to Level.INFO.


ensureLog4JIsConfigured

public static void ensureLog4JIsConfigured(Level level)
Ensures that Log4J is configured, by invoking, if necessary, BasicConfigurator.configure(), and setting the root logger level to a specified logging level.

Parameters:
level - the required logging level.

getLogger

public static Logger getLogger(Class<?> klass)
Calls Log4J's Logger.getLogger(java.lang.Class) method and then ensureLog4JIsConfigured().

Parameters:
klass - a class that will be passed to Logger.getLogger(java.lang.Class).
Returns:
the logger returned by Logger.getLogger(java.lang.Class).

getDebugLogger

public static Logger getDebugLogger(Class<?> klass)
Calls Log4J's Logger.getLogger(java.lang.Class) method and then ensureLog4JIsConfigured() with argument Level.DEBUG.

Parameters:
klass - a class that will be passed to Logger.getLogger(java.lang.Class).
Returns:
the logger returned by Logger.getLogger(java.lang.Class).

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.


randomSeed

public static long randomSeed()
Returns a random seed generated by calling System.nanoTime(), adding a unique identifier and scrambling the result using the finalisation step of Austin Appleby's MurmurHash3.

Returns:
a reasonably good random seed.

randomSeedBytes

public static byte[] randomSeedBytes()
Returns a random seed generated by calling System.nanoTime(), adding a unique identifier and scrambling the result using the finalisation step of Austin Appleby's MurmurHash3, converted to a byte array.

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.