Rounding errors



Post: #6

Just to emphasise that rounding errors aren't just limited to calculators here's something culled from the Interweb...

Quote:
There are mutterings about Motorola doing an unannounced, covert update
on their Droid camera because so many people are reporting that the
autofocus, which has been a bit rubbish, is now suddenly working.

The actual situation is (I think) quite funny.

Android Engineer, Dan Morrill said:
There's a rounding-error bug in the camera driver's autofocus routine
(which uses a timestamp) that causes autofocus to behave poorly on a
24.5-day cycle. That is, it'll work for 24.5 days, then have poor
performance for 24.5 days, then work again.
The 17th is the start of a new "works correctly" cycle, so the devices
will be fine for a while. A permanent fix is in the works.



Post: #7

24.5 days means 2^31 [ms]

It is probably an old singed and unsigned or wrap-round bug but not rounding errors.

The source or related article is Slashdot IT Story


Post: #8

So it isn't so much a rounding error as an integer overflow.

Still, I cannot fathom a reason why the autofocus code would care about the time.
Especially at this level of accuracy -- maybe at the hour mark to attempt to judge day and night but not at the ms level.

- Pauli


Post: #9

Quote:
Still, I cannot fathom a reason why the autofocus code would care about the time.
Especially at this level of accuracy -- maybe at the hour mark to attempt to judge day and night but not at the ms level.

I have minimal knowledge of how autofocus works, but that never stopped me from speculating before.... :)

The routine might do something like this:


- Check to focus
- Move the focus knob for a little while.
- Recheck the focus.
- If you've passed the focus point, then interpolate based on how
long you were turning the knob and go back accordingly.
Now if you get the time from a millisecond counter and mistakenly interpret it as a signed value, you'll think that the time interval was negative and all hell breaks loose.

Again, this is purely speculation, but I think it illustrates how time might factor into their calculations.


Post: #10

Quote:
Now if you get the time from a millisecond counter and mistakenly interpret it as a signed value, you'll think that the time interval was negative and all hell breaks loose.
In this case, we actually have an algorithmic error.

Luiz (Brazil)


Forum Jump: