From 774215cd8c8f622995826f369a40abaf060027a4 Mon Sep 17 00:00:00 2001 From: Rose <83477269+AtariDreams@users.noreply.github.com> Date: Wed, 1 Nov 2023 14:52:55 -0400 Subject: [PATCH] Use std::countl to compute floor(log2(_Rx)) faster --- stl/inc/random | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/stl/inc/random b/stl/inc/random index abb91f110d0..d2c2781add1 100644 --- a/stl/inc/random +++ b/stl/inc/random @@ -1681,9 +1681,8 @@ private: _Mx = 1; --_Tmp; } - for (; 1 < _Tmp; _Tmp >>= 1) { - ++_Mx; // compute _Mx = floor(log2(_Rx)) - } + + _Mx += sizeof(_Tmp) * CHAR_BIT - std::countl_zero(_Tmp); // compute _Mx = floor(log2(_Rx)) for (size_t _Nfix = 0;; ++_Nfix) { // compute consistent set of parameters _Nx = (_Wx + _Mx - 1) / _Mx + _Nfix; // trial _Nx