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-11-27 12:41:28 -05:00
2022-11-27 11:19:28 -05:00
2022-12-08 02:38:45 +03:00
2022-11-27 12:41:28 -05:00
2022-11-27 12:41:28 -05:00
2022-11-27 12:41:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 12:41:28 -05:00
2022-11-27 11:19:28 -05:00
2023-08-25 09:20:18 +02:00
2023-09-26 15:47:16 +05:00
2022-11-27 11:19:28 -05:00
2022-11-27 12:41:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 12:41:28 -05:00
2022-11-27 12:41:28 -05:00
2022-11-27 12:41:28 -05:00
2022-11-27 12:41:28 -05:00
2022-11-27 12:41:28 -05:00
2023-07-07 09:49:38 -04:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2023-09-04 11:50:14 +08:00
2022-11-27 11:19:28 -05:00
2022-11-27 12:41:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 12:41:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2023-08-22 10:59:02 -05:00
2022-12-21 21:43:55 +08:00
2022-11-27 12:41:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2023-05-24 10:54:10 +02:00
2023-05-31 10:47:15 +02:00
2022-11-27 11:19:28 -05:00
2022-11-27 12:41:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2023-02-16 16:08:34 +07:00
2023-09-02 10:22:09 -04:00
2022-11-27 12:41:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2023-02-01 12:52:37 +00:00
2023-03-23 19:31:55 +08:00
2022-11-27 11:19:28 -05:00
2023-02-16 16:08:34 +07:00
2023-02-16 16:08:34 +07:00
2023-02-16 16:08:34 +07:00
2023-02-16 16:08:34 +07:00
2023-02-16 16:08:34 +07:00
2023-10-24 20:27:39 -07:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2022-11-27 11:19:28 -05:00
2023-02-16 16:08:34 +07:00
2023-02-16 16:08:34 +07:00
2023-02-16 16:08:34 +07:00
2022-11-27 11:19:28 -05:00
2023-10-24 20:27:39 -07:00