Matthias Braun
e3cf80c5c1
BlockFrequencyInfoImpl: Avoid big numbers, increase precision for small spreads
...
BlockFrequencyInfo calculates block frequencies as Scaled64 numbers but as a last step converts them to unsigned 64bit integers (`BlockFrequency`). This improves the factors picked for this conversion so that:
* Avoid big numbers close to UINT64_MAX to avoid users overflowing/saturating when adding multiply frequencies together or when multiplying with integers. This leaves the topmost 10 bits unused to allow for some room.
* Spread the difference between hottest/coldest block as much as possible to increase precision.
* If the hot/cold spread cannot be represented loose precision at the lower end, but keep the frequencies at the upper end for hot blocks differentiable.
2023-10-24 20:27:39 -07:00
..
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2023-10-09 12:31:32 +01:00
2023-02-09 18:45:20 +03:00
2022-12-19 13:06:34 +01:00
2023-06-14 16:20:37 +00:00
2023-10-09 12:31:32 +01:00
2023-01-24 17:55:11 -04:00
2021-06-29 11:00:11 -07:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2023-06-14 16:20:37 +00:00
2023-10-24 20:27:39 -07:00
2023-06-14 16:20:37 +00:00
2023-10-24 20:27:39 -07:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2021-01-04 20:09:57 +09:00
2023-05-12 09:06:17 -07:00
2023-06-14 16:20:37 +00:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2020-11-17 00:38:01 +09:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2020-11-17 00:38:01 +09:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-09-26 22:04:02 +09:00
2022-09-21 18:03:49 +09:00
2020-12-01 02:22:31 +09:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2023-05-12 09:06:17 -07:00
2022-12-19 13:06:34 +01:00
2020-11-17 00:38:01 +09:00
2022-10-20 08:08:59 +09:00
2022-10-15 08:49:36 +09:00
2022-12-19 13:06:34 +01:00
2023-06-26 10:45:41 -07:00
2023-06-26 10:45:41 -07:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2023-08-18 12:12:22 +01:00
2023-08-18 12:12:22 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00
2022-12-19 13:06:34 +01:00