Path: ...!npeer.as286.net!npeer-ng0.as286.net!3.eu.feeder.erje.net!feeder.erje.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Tim Rentsch Newsgroups: comp.lang.c Subject: Re: Good hash for pointers Date: Sun, 26 May 2024 09:24:58 -0700 Organization: A noiseless patient Spider Lines: 24 Message-ID: <86le3wfsmd.fsf@linuxsc.com> References: <86fru6gsqr.fsf@linuxsc.com> <8634q5hjsp.fsf@linuxsc.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Date: Sun, 26 May 2024 18:24:59 +0200 (CEST) Injection-Info: dont-email.me; posting-host="4466c3f20a2aa0adfb23676e01f9e74a"; logging-data="3656267"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18zXrSzFX+IBijIHTtF8tzyVwdSaHB2020=" User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux) Cancel-Lock: sha1:ssMqPUPMx/kmtuf6QSyvBMrTIhw= sha1:WWBdEVOEyWrFolV4ncxCgOTyzy4= Bytes: 2138 Bonita Montero writes: > Am 25.05.2024 um 19:40 schrieb Tim Rentsch: > >> Bonita Montero writes: >> >>> Am 25.05.2024 um 11:12 schrieb Tim Rentsch: >>> >>>> Your hash function is expensive to compute, moreso even >>>> than the "FNV" function shown earlier. In a case like >>>> this one where the compares are cheap, it's better to >>>> have a dumb-but-fast hash function that might need a >>>> few more looks to find an open slot, because the cost >>>> of looking is so cheap compared to computing the hash >>>> function. >>> >>> A (size_t)pointer * LARGE_PRIME can be sufficient, >>> ignoring the overflow. >> >> Plenty fast but the output quality is poor. ... > > If the prime is large enough there'e no regular distribution. Your conjecture is contradicted by empirical facts.