Class Hash

java.lang.Object
org.apache.sysds.utils.Hash

public class Hash extends Object
A class containing different hashing functions.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
    Available Hashing techniques
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static byte
    expHash(int x)
    Compute exponentially distributed hash values in range 0..a.length eg: 50% == 0 , 25% == 1 12.5 % == 2 etc.
    static int
    hash(double o, Hash.HashType ht)
    Hash functions for double values.
    static int
    Generic hashing of java objects, not ideal for specific values so use the specific methods for specific types.
    static int
    linearHash(int v)
    Compute the Linear hash of an int input value.
    static int
    linearHash(int v, int bits)
    Compute the Linear hash of an int input value, but only use the first bits of the linear hash.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Hash

      public Hash()
  • Method Details

    • hash

      public static int hash(Object o, Hash.HashType ht)
      Generic hashing of java objects, not ideal for specific values so use the specific methods for specific types. To Use the locality sensitive techniques override the objects hashcode function.
      Parameters:
      o - The Object to hash.
      ht - The HashType to use.
      Returns:
      An int Hash value.
    • hash

      public static int hash(double o, Hash.HashType ht)
      Hash functions for double values.
      Parameters:
      o - The double value.
      ht - The hashing function to apply.
      Returns:
      An int Hash value.
    • linearHash

      public static int linearHash(int v)
      Compute the Linear hash of an int input value.
      Parameters:
      v - The value to hash.
      Returns:
      The int hash.
    • linearHash

      public static int linearHash(int v, int bits)
      Compute the Linear hash of an int input value, but only use the first bits of the linear hash.
      Parameters:
      v - The value to hash.
      bits - The number of bits to use. up to maximum of 32.
      Returns:
      The hashed value
    • expHash

      public static byte expHash(int x)
      Compute exponentially distributed hash values in range 0..a.length eg: 50% == 0 , 25% == 1 12.5 % == 2 etc. Useful because you can estimate size of a collection by only maintaining the highest value found. from this hash.
      Parameters:
      x - value to hash
      Returns:
      a hash value byte (only in the range of 0 to a.length)