|
|
|
|
|
by gfv
605 days ago
|
|
I have a way simpler explanation. IEEE 754 double can only represent integers up to 2^53 without precision loss, so if you naively average two numbers greater than 2^52, you get an erroneous result. It just so happens that 2^52 nanoseconds is a little bit over 52 days. I've seen the same thing with AMD CPUs where they hang after ~1042 days which is 2^53 10-nanosecond intervals. |
|
You can also drop 524535643, an integer clearly less than 2^53 and is off by 5.
This is even seen here:
output: 524535648.000000