$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Peter Dimov (pdimov_at_[hidden])
Date: 2005-03-13 10:57:08
Dave Harris wrote:
> My impression is that the proposed implementation of
> hash_combine: seed ^= hash_value(v) + (seed << 6) + (seed >> 2);
>
> was designed to combine 8-bit character values; do we have any
> evidence it also performs well to combine 32-bit values?
(seed << 6) + (seed >> 2) does "neatly" expand an 8 bit value into a 14 bit
one, but the seed is not necessarily an 8 bit value.
Think of the above as seed ^= hv + seed * 64.25.
But no, we don't have hard data on how it performs on 32 bit values.