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
..
2023-10-09 12:31:32 +01:00
2023-01-31 13:11:08 +03:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-08-29 04:35:06 +00:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-06-14 21:18:39 +00:00
2023-06-01 17:49:25 +01:00
2023-10-18 19:40:11 +01:00
2022-12-19 13:04:20 +01:00
2023-01-21 18:03:24 +00:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-10-24 20:27:39 -07:00
2023-02-24 10:32:30 +00:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-10-24 20:27:39 -07:00
2022-12-19 13:04:20 +01:00
2023-01-05 13:21:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-01-20 14:35:23 +00:00
2022-12-19 13:04:20 +01:00
2023-07-18 14:01:04 +01:00
2022-12-19 13:04:20 +01:00
2023-02-01 09:05:12 +00:00
2023-01-05 13:21:20 +01:00
2022-12-19 13:04:20 +01:00
2023-01-05 13:21:20 +01:00
2023-01-05 13:21:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-07-31 10:39:50 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-09-13 12:33:39 +01:00
2023-05-17 17:03:15 +02:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-01-05 13:21:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-10-24 20:27:39 -07:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-06-01 17:49:25 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-18 19:40:11 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-06-23 14:45:14 +01:00
2022-12-19 13:04:20 +01:00
2023-10-24 20:27:39 -07:00
2023-10-24 20:27:39 -07:00
2022-12-19 13:04:20 +01:00
2023-10-09 12:31:32 +01:00
2022-12-19 13:04:20 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-07-12 14:35:55 +02:00
2023-07-12 14:35:55 +02:00
2023-07-12 14:35:55 +02:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-07-12 14:35:55 +02:00
2023-10-09 12:31:32 +01:00
2023-07-12 14:35:55 +02:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-05-31 19:48:57 +01:00
2023-10-09 12:31:32 +01:00
2023-10-18 19:40:11 +01:00
2023-10-09 12:31:32 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-07-14 12:54:18 -07:00
2023-10-09 12:31:32 +01:00
2022-12-19 13:04:20 +01:00
2023-10-09 12:31:32 +01:00
2023-03-01 17:03:34 +08:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2022-12-19 13:04:20 +01:00
2023-01-09 13:28:57 +00:00
2023-10-18 19:40:11 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-01-05 13:21:20 +01:00
2023-10-09 12:31:32 +01:00
2023-01-09 13:28:57 +00:00
2023-10-09 12:31:32 +01:00
2022-12-19 13:04:20 +01:00
2023-06-15 20:46:20 +01:00
2022-12-19 13:04:20 +01:00
2023-10-09 12:31:32 +01:00
2023-01-20 14:35:23 +00:00
2023-04-29 20:32:54 +01:00
2023-04-29 20:32:54 +01:00
2023-04-29 20:32:54 +01:00
2023-10-18 19:40:11 +01:00
2022-12-19 13:04:20 +01:00
2023-10-24 20:27:39 -07:00
2022-12-19 13:04:20 +01:00
2023-10-24 20:27:39 -07:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-07-12 14:35:55 +02:00
2023-07-12 14:35:55 +02:00
2023-10-09 12:31:32 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-02-09 18:45:20 +03:00
2022-12-19 13:04:20 +01:00
2023-05-25 13:56:29 +05:30
2023-01-05 13:21:20 +01:00
2023-09-25 10:09:36 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-04-05 11:52:05 +01:00
2023-01-09 13:28:57 +00:00
2023-01-20 14:35:23 +00:00
2023-01-20 14:35:23 +00:00
2023-01-20 14:35:23 +00:00
2023-01-09 13:28:57 +00:00
2023-10-09 12:31:32 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-10-09 12:31:32 +01:00
2023-06-01 17:49:25 +01:00
2023-02-07 10:44:35 +00:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2022-12-19 13:04:20 +01:00
2023-06-01 14:18:08 -07:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2022-12-19 13:04:20 +01:00
2023-10-09 12:31:32 +01:00
2022-12-19 13:04:20 +01:00
2023-10-09 12:31:32 +01:00
2022-12-19 13:04:20 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-06-01 17:49:25 +01:00
2023-02-07 10:06:58 +00:00
2023-05-25 13:56:29 +05:30
2023-01-05 13:21:20 +01:00
2023-01-16 17:59:45 +00:00
2023-01-16 17:59:45 +00:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2022-12-19 13:04:20 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-01-16 17:59:45 +00:00
2023-01-05 13:21:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-09-15 19:52:50 +00:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-09-04 13:46:01 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-01-05 13:21:20 +01:00
2022-12-19 13:04:20 +01:00
2023-01-05 13:21:20 +01:00
2023-07-14 12:54:18 -07:00
2023-10-09 12:31:32 +01:00
2022-12-19 13:04:20 +01:00
2023-07-19 13:56:36 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-10-09 12:31:32 +01:00
2023-05-23 09:49:57 -07:00
2023-01-05 13:21:20 +01:00
2023-01-05 13:21:20 +01:00
2023-01-05 13:21:20 +01:00
2023-01-05 13:21:20 +01:00
2023-01-05 13:21:20 +01:00
2022-12-19 13:04:20 +01:00
2023-01-05 13:21:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-06-28 10:50:24 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-06-14 21:18:39 +00:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-10-09 12:31:32 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2022-12-19 13:04:20 +01:00
2023-10-24 20:27:39 -07:00
2023-06-01 17:49:25 +01:00