src/sylvan_table.c
uint64_t
llmsset_fnvhash(const uint64_t a, const uint64_t b, const uint64_t seed)
{
    // The FNV-1a hash for 64 bits
    const uint64_t prime = 1099511628211;
    uint64_t hash = seed;
    hash = (hash ^ a) * prime;
    hash = (hash ^ b) * prime;
    return hash ^ (hash>>32);
}
/**
 * The well-known FNV-1a hash for 64 bits.
 * Typical seed value (base offset) is 14695981039346656037LLU.
 *
 * NOTE: this particular hash is bad for certain nodes, resulting in
 * early garbage collection and failure. We xor with shifted hash which
 * suffices as a band-aid, but this is obviously not an ideal solution.
 */
The well-known FNV-1a hash for 64 bits.

this particular hash is bad for certain nodes, resulting in
early garbage collection and failure. We xor with shifted hash which
suffices as a band-aid, but this is obviously not an ideal solution.
The well - known FNV - 1a hash for 64 bits . this particular hash is bad for certain nodes resulting in early garbage collection and failure . We xor with shifted hash which suffices as a band - aid but this is obviously not an ideal solution .
uint64_t
llmsset_fnvhash(const uint64_t a, const uint64_t b, const uint64_t seed)
{
    const uint64_t prime = 1099511628211;
    uint64_t hash = seed;
    hash = (hash ^ a) * prime;
    hash = (hash ^ b) * prime;
    return hash ^ (hash>>32);
}
uint64_t llmsset_fnvhash ( const uint64_t a , const uint64_t b , const uint64_t seed ) { const uint64_t prime = 1099511628211 ; uint64_t hash = seed ; hash = ( hash ^ a ) * prime ; hash = ( hash ^ b ) * prime ; return hash ^ ( hash >> 32 ) ; }
The well-known FNV-1a hash for 64 bits.
The well - known FNV - 1a hash for 64 bits .
// The FNV-1a hash for 64 bits