From a64d81a3789b6f5deb8d8569503e6fe129df93a6 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Sat, 26 Apr 2025 10:48:47 +0200 Subject: [PATCH] editorial s/mulx/mul (mulx properly refers to multiplication and xoring) --- doc/modules/ROOT/pages/rationale.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/modules/ROOT/pages/rationale.adoc b/doc/modules/ROOT/pages/rationale.adoc index 5ef4d874..47e483ba 100644 --- a/doc/modules/ROOT/pages/rationale.adoc +++ b/doc/modules/ROOT/pages/rationale.adoc @@ -94,10 +94,10 @@ As it happens, `boost::hash` for integral and other basic types does not possess the statistical properties required by open addressing; to cope with this, we implement a post-mixing stage: -{nbsp}{nbsp}{nbsp}{nbsp} _a_ <- _h_ *mulx* _C_, + +{nbsp}{nbsp}{nbsp}{nbsp} _a_ <- _h_ *mul* _C_, + {nbsp}{nbsp}{nbsp}{nbsp} _h_ <- *high*(_a_) *xor* *low*(_a_), -where *mulx* is an _extended multiplication_ (128 bits in 64-bit architectures, 64 bits in 32-bit environments), +where *mul* is an _extended multiplication_ (128 bits in 64-bit architectures, 64 bits in 32-bit environments), and *high* and *low* are the upper and lower halves of an extended word, respectively. In 64-bit architectures, _C_ is the integer part of 2^64^∕https://en.wikipedia.org/wiki/Golden_ratio[_φ_], whereas in 32 bits _C_ = 0xE817FB2Du has been obtained from https://arxiv.org/abs/2001.05304[Steele and Vigna (2021)^].