Comment by Dylan16807
1 year ago
Previous: https://ioactive.com/reverse-engineers-perspective-on-the-bo...
The 47 bit timestamp at 32MHz would explain the duration (Though not why it isn't 33MHz?).
1 year ago
Previous: https://ioactive.com/reverse-engineers-perspective-on-the-bo...
The 47 bit timestamp at 32MHz would explain the duration (Though not why it isn't 33MHz?).
Thanks! Macroexpanded:
Reverse Engineer’s Perspective on the Boeing 787 ‘51 days’ Directive - https://news.ycombinator.com/item?id=22761395 - April 2020 (152 comments)
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.
This is incorrect. Very incorrect and disastrously so. Drop 0.3 in here: https://www.h-schmidt.net/FloatConverter/IEEE754.html
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
I was talking specifically about double-precision floats. Single-precision floats can represent every integer up to +-2^24.
1 reply →
How could their comment possibly be "incorrect and disastrously so" unless the FAA is citing this thread for their investigation?
1 reply →
Having done exactly this math for GStreamer bindings in JavaScript (where the built in numeric types are double or nothing), this would also be my prime suspect.
Please email Boeing!
Seriously they should have posted here for some help!