The combat-proven Patriot is the air and missile defense system of choice for 12 nations around the globe, including the U.S. and five NATO nations. The growing list of partners includes the U.S., Netherlands, Germany, Japan, Israel, Saudi Arabia, Kuwait, Taiwan, Greece, Spain, Korea and the United Arab Emirates.
The Software Bug
The bug occurs in the calculation of the next location of the incoming target by the range gate. The prediction is calculated based on the target’s velocity and the time of the last radar detection.
Velocity is stored as a whole number and a decimal, and time is a continuous integer or whole number (i.e. the longer the system has been running, the larger the value) measured in tenths of a second.
The algorithm used to predict the next air space to scan by the radar requires that both velocity and time be expressed as real numbers. However, the Patriot’s computer only has 24 bit fixed-point registers. Because time was measured as the number of tenth-seconds, the value 1/10, which has a non-terminating binary expansion, was chopped at 24 bits after the radix point.5 The error in precision grows as the time value increases, and the inaccuracy resulting from this is directly proportional to the target’s velocity.
When the Patriot system was first designed, the primary targets were Soviet aircraft and cruise missiles travelling at speeds around MACH 2, and only operating at a few hours at a time. However, in Operation Desert Storm, they were deployed as static defences (operating continuously), tracking and intercepting Scud missiles travelling at speeds of approximately MACH 5.6 Consequently, the U.S. army had to learn how to adapt the Patriot for targets of much higher velocity.
http://www.cs.usyd.edu.au/~alum/patriot_bug.html