Esempio n. 1
0
 def hash_factory(seed):
     if complex_types:
         if universe_size is None:
             fun = lambda x: hashfun(x, seed)
         else:
             fun = lambda x: hashfun(x, seed) % universe_size
     else:
         if universe_size is None:
             fun = lambda x: hashfun(hashable(x), seed)
         else:
             fun = lambda x: hashfun(hashable(x), seed) % universe_size
     return fun
Esempio n. 2
0
    def __init__(self, bit_depth=64, seed=0, hashfun_map=((64, chash64), (128, chash128))):
        """
        :param bit_depth: Length of binary vector (bit resolution)
        :type bit_depth: int
        """
        self.bits = range(bit_depth)
        self.seed = seed

        for key_bits, val_fun in hashfun_map:
            if bit_depth <= key_bits:
                self.hashfun = lambda value, seed=0: val_fun(hashable(value), seed)
                break
        else:
            self.hashfun = VarlenHash(bit_depth)