Thursday, December 5, 2013

Software Glitch: 28 Deaths

This post is to emphasize that understanding rounding errors are paramount in writing code. In older versions of Excel and on older versions of programming languages if you did the following in two steps 10/ 3 x 3 you would get 9.999.  Modern compilers have apparently fixed most such issues.

On 25 February 1991, an Iraqi Scud hit the barracks in Dhahran, Saudi Arabia, killing 28 soldiers from the U.S. Army.
A government investigation revealed that the failed intercept at Dhahran had been caused by a software error in the system's clock. The Patriot missile battery at Dhahran had been in operation for 100 hours, by which time the system's internal clock had drifted by one third of a second. Due to the closure speed of the interceptor and the target, this resulted in a miss distance of 600 meters.
The radar system had successfully detected the Scud and predicted where to look for it next, but because of the time error, looked in the wrong part of the sky and found no missile. With no missile, the initial detection was assumed to be a spurious track and the missile was removed from the system. No interception was attempted, and the missile impacted on a makeshift barracks in an Al Khobar warehouse, killing 28 soldiers.
At the time, the Israelis had already identified the problem and informed the US Army and the PATRIOT Project Office (the software manufacturer) on 11 February 1991, but no upgrade was present at the time.
As a stopgap measure, the Israelis recommended rebooting the system's computers regularly. However, Army officials did not understand how often they needed to do so. The manufacturer supplied updated software to the Army on 26 February, the day after the Scud struck the Army barracks.

For more in depth on Rounding Errors see

1 comment:

  1. See the Savage benchmark at

    Byte magazine published this bench mark to verify the precision of various compilers