Description
The hash(...) functions mask out the five most significant bits. The usual approach is to only mask out the sign bit.
This naturally raises the question whether the omission of one F in 0x7FF_FFFF was intentional or accidental.
Even if it is changed to 0x7FFF_FFFF there shouldn't be large performance improvements since the distribution of the entries wouldn't be much better than now.
In fact, I'm just curious why you chose 0x7FF_FFFF.