via “Some disasters caused by numerical errors”:
On February 25, 1991, during the Gulf War, an American Patriot Missile battery in Dharan, Saudi Arabia, failed to track and intercept an incoming Iraqi Scud missile. The Scud struck an American Army barracks, killing 28 soldiers and injuring around 100 other people. A report of the General Accounting office, GAO/IMTEC-92-26, entitled Patriot Missile Defense: Software Problem Led to System Failure at Dhahran, Saudi Arabia reported on the cause of the failure. It turns out that the cause was an inaccurate calculation of the time since boot due to computer arithmetic errors. Specifically, the time in tenths of second as measured by the system's internal clock was multiplied by 1/10 to produce the time in seconds. This calculation was performed using a 24 bit fixed point register. In particular, the value 1/10, which has a non-terminating binary expansion, was chopped at 24 bits after the radix point. The small chopping error, when multiplied by the large number giving the time in tenths of a second, led to a significant error. Indeed, the Patriot battery had been up around 100 hours, and an easy calculation shows that the resulting time error due to the magnified chopping error was about 0.34 seconds.
(The number 1/10 equals
1/2⁴+1/2⁵+1/2⁸+1/2⁹+1/2¹²+1/2¹³+....
In other words, the binary expansion of 1/10 is
0.0001100110011001100110011001100....
Now the 24 bit register in the Patriot stored instead 0.00011001100110011001100 introducing an error of 0.0000000000000000000000011001100... binary, or about 0.000000095 decimal. Multiplying by the number of tenths of a second in 100 hours gives 0.000000095×100×60×60×10=0.34.)
A Scud travels at about 1,676 meters per second, and so travels more than half a kilometer in this time. This was far enough that the incoming Scud was outside the “range gate” that the Patriot tracked. Ironically, the fact that the bad time calculation had been improved in some parts of the code, but not all, contributed to the problem, since it meant that the inaccuracies did not cancel, as discussed here.
The following paragraph is excerpted from the GAO report.
The range gate's prediction of where the Scud will next appear is a function of the Scud's known velocity and the time of the last radar detection. Velocity is a real number that can be expressed as a whole number and a decimal (e.g., 3750.2563...miles per hour). Time is kept continuously by the system's internal clock in tenths of seconds but is expressed as an integer or whole number (e.g., 32, 33, 34...). The longer the system has been running, the larger the number representing time. To predict where the Scud will next appear, both time and velocity must be expressed as real numbers. Because of the way the Patriot computer performs its calculations and the fact that its registers are only 24 bits long, the conversion of time from an integer to a real number cannot be any more precise than 24 bits. This conversion results in a loss of precision causing a less accurate time calculation. The effect of this inaccuracy on the range gate's calculation is directly proportional to the target's velocity and the length of the the system has been running. Consequently, performing the conversion after the Patriot has been running continuously for extended periods causes the range gate to shift away from the center of the target, making it less likely that the target, in this case a Scud, will be successfully intercepted.
[x]
The March 13 issue of Science carried an article claiming, on the basis of a report from the General Accounting Office (GAO), that a “minute mathematical error … allowed an Iraqi Scud missile to slip
through Patriot missile defenses a year ago and hit U.S. Army barracks in Dhahran, Saudi Arabia, killing 28 servicemen.” The article continues with a readable account of what happened.
The article says that the computer doing the tracking calculations had an internal clock whose values were slightly truncated when converted to floating-point arithmetic. The errors were proportional to the time on the clock: 0.0275 seconds after eight hours and 0.3433 seconds after 100 hours. A calculation shows each of these relative errors to be both very nearly 2⁻²⁰, which is approximately 0.0001%.
The GAO report contains some additional information. The internal clock kept time as an integer value in units of tenths of a second, and the computer's registers were only 24 bits long. This and the consistency in the time lags suggested that the error was caused by a fixed-point 24-bit representation of 0.1 in base 2. The base 2 representation of 0.1 is nonterminating; for the first 23 binary digits after the binary point, the value is 0.1 × (1 - 2⁻²⁰). The use of 0.1 × (1 - 2⁻²⁰) in obtaining a floating-point value of time in seconds would cause all times to be reduced by 0.0001%.
This does not really explain the tracking errors, however, because the tracking of a missile should depend not on the absolute clock-time but rather on the time that elapsed between two different radar pulses. And because of the consistency of the errors, this time difference should be in error by only 0.0001%, a truly insignificant amount.
Further inquiries cleared up the mystery. It turns out that the hypothesis concerning the truncated binary representation of 0.1 was essentially correct. A 24-bit representation of 0.1 was used to multiply the clock-time, yielding a result in a pair of 24-bit registers. This was transformed into a 48-bit floating-point number. The software used had been written in assembly language 20 years ago. When Patriot systems were brought
into the Gulf conflict, the software was modified (several times) to cope with the high speed of ballistic missiles, for which the system was not originally designed.
At least one of these software modifications was the introduction of a subroutine for converting clock-time more accurately into floating-point. This calculation was needed in about half a dozen places in the program, but the call to the subroutine was not inserted at every point where it was needed. Hence, with a
less accurate truncated time of one radar pulse being subtracted from a more accurate time of another radar pulse, the error no longer cancelled.
In the case of the Dhahran Scud, the clock had run up a time of 100 hours, so the calculated elapsed time was too long by 2⁻²⁰ × 100 hours = 0.3433 seconds, during which time a Scud would be expected to travel more than half a kilometer.
The roundoff error, of course, is not the only problem that has been identified: serious doubts have been expressed about the ability of Patriot missiles to hit Scuds.
Robert Skeel is a professor of computer science at the University of Illinois at Urbana-Champaign.
From SIAM News, July 1992, Volume 25, Number 4, page 11
[x]
lmao
46 notes
·
View notes
Where is the line?
In the comics, Tim Drake's moral code is an enigma to me, particularly his stance on the Batclan's no-kill rule. For all the fans who say he's always one step away from full blown villainy, there are even more saying he's a strict goody two-shoes who could never stoop that low.
Then there's the different takes on where Tim draws the line between these two extremes. Personally, I find that line hard to pinpoint. Digging for canon demonstrations of his morals has lead me to more questions than answers. My biggest question right now is:
What counts as breaking the no-kill rule in Tim's eyes?
Luckily, the Robins 2021 comics shed some light on this. In issue #3, "Tim", or rather an imposter of him, said that choosing not to save someone isn't the same as killing them, and that letting a villain die can be a way to get justice. Normally, this point would be moot since it's not Tim himself who said it. However, at the end of issue #6, the real Tim clarified that what the imposter said WAS his real opinion on the matter.
Not only that, but Tim has shown this belief through his thoughts and actions before. Twice.
The first time goes all the way back to Robin 1991 #5. During the fight against King Snake, Tim kicked him through a nearby window, fifty stories above the ground. As King Snake's life hung in the balance, Shiva appeared and commanded Tim to kill him.
Tim refused. He walked away, leaving King Snake entirely at Shiva's mercy.
What gets me is that Tim made no move to save King Snake from falling. And he made no effort to stop Shiva from committing the murder, either. His only thought as he heard the man's scream was "Fifty stories is a long way to fall."
The second time was in Red Robin 2009 #26. Tim orchestrated a whole plan to manipulate Captain Boomerang into getting killed by Mr. Freeze. The whole time, Tim blamed Captain Boomerang for making all those bad choices, despite Tim being the one raising the chances of them being made. Tim believed he was innocent because he wasn't directly participating.
Tim then stopped that plan, but not for any noble reason. He decided that he couldn't let anyone else kill Captain Boomerang but himself.
Tim couldn't bring himself to do that, either. So he had to spare his father's killer in the end.
This seems pretty cut and dry so far, right? Tim believing that letting villains die is alright as long he doesn't do the deed himself? I'd think so too, if there weren't other moments contradicting this.
In Robin #35, Steph insisted on leaving an enemy who got buried under the snow to die. Tim chastised her for it.
Neither of them were responsible for the snow, or for the enemy getting trapped in it. Plus, that guy tried to kill them with a chainsaw moments prior, so he's not exactly an innocent damsel in distress.
Maybe it was because this enemy wasn't a big enough fish to fry. We didn't really get confirmation that this guy has actually killed before, and he's around goon status at best.
But then in Robin #46, Tim chose to save another enemy who got himself into a deadly situation. That enemy was a murderer known as Young El. This time, Tim wasn't telling anyone else why they should save a murderer's life out loud. These were his private thoughts.
Notice how Tim's inner monologue sounded kind of on-the-fence. He contemplated justice finally catching up with Young El as the floorboards gave way, bringing a support beam down on him in the process.
However, Tim immediately switched gears to rescue Young El from under that beam before the water rose too high.
But Tim, as he told Young El the reasons he's saving him, asked himself "Do I even believe what I'm saying?" He could be asking this about two different things he said here. A) "Maybe it's not too late for you to learn something, Young El.", or B) "Death's easier for you when it's the other guy. Death's never been easy for me."
For Tim to doubt his belief in either of these statements is very interesting. He could be questioning if Young El is already too far gone for redemption, or he could be questioning if seeing someone die has never been easy for himself. For all we know, it could be both.
Unfortunately, Tim never got to see if his choice to save him would pay off. Tim wasn't strong enough to lift that beam, and Young El drowned.
There's a question on my mind as I read these pages. What makes this murderer's death different from when Tim let King Snake fall to his "death"? Sure, King Snake didn't actually die, but Tim didn't know that until later when the man came looking for revenge in Gotham.
Tim was once able to simply walk away from what he was certain would be a killer's demise. But then he's consumed by guilt over not being able to prevent a different killer's death down the line, to the point of hallucinating.
On top of that, what changed Tim's mind later? Red Robin #26 and Robins 2021 #3-6 still happened in the future. The only significant difference I can tell is that these two comics involved the killer's of Tim's parents, making it personal. But if the Imposter from Robins 2021 got his beliefs from his profile before his mother's killer got involved, then does that still hold up?
Maybe we should put a pin on it for now. There are other things Tim's done that brings the details of his no-kill rule into question.
Such as that one time Tim actually killed someone with his bare hands.
In Robin issues #51-52, Tim accidentally killed Lady Shiva while drugged on amarilla, a plant that enhances the user's speed beyond human limitations.
It may be argued if the amarilla altered Tim's mind enough to excuse him of fault or not. However, I want to focus on what happened after Shiva was revived. Here's another question to go with the first one:
Does Tim believe the kill still counts if the victim was revived afterwards?
From what I've gathered, yes and no. It's kind of complicated.
After Tim killed Shiva, he was understandably distressed about it, about how he can never take it back.
But after Shiva came back to life? Nothing. He didn't dwell on the fact he broke the vow to never kill. For something that devastating to happen in his life, it's odd that Tim didn't bring it up ever again, privately or otherwise. Especially considering what happened later in Robin #123, when Tim thought he killed Johnny Warlock.
Tim was utterly inconsolable. He lost all faith in his abilities as Robin, and in himself as a whole. It also contributed to his decision to quit being Robin after his dad found out. In general, he seriously dwelled on that "kill" for a much longer time than he had after killing Shiva. The difference being that he knew Shiva was resuscitated immediately afterwards, while Tim didn't know Johnny survived until issue #141.
But there's the fact that Shiva really did die. Her heart and breathing both stopped. So are we to believe Tim moved on from that so easily because she's alive now? What happened to never getting that back?
Come to think of it, not long after Tim killed and revived Shiva, there was someone else who landed in that same boat. Dick.
In Joker: The Last Laugh #6, Dick brutally attacked the Joker after believing he killed Tim. Dick ended up accidentally killing Joker instead, before the clown was resuscitated.
Here's the thing. While Tim was trying to comfort Dick, saying that it's ok because Joker's alive now, Dick didn't believe so. He was still distraught that he killed someone. The fact Joker came back to life afterwards didn't matter to him. To Dick, it still counted. So what does that say about Tim?
Before we move on, there's another person Tim knows who also died and came back from the grave. Jason.
Tim openly acknowledged Jason was killed before coming back, too. Multiple times. For example, when they met up in Red Hood and the Outlaws 2011 #8.
Tim hadn't shown any signs that he thinks Jason's murder doesn't count anywhere, except for maybe once.
In Knight Terrors: Robin #2, Tim and Jason had a heart-to-heart, and Tim said something strange.
"You survived."
Except Jason didn't survive. He died. To say Jason survived that night would've meant he never died to begin with. Him being alive now doesn't change that. Was this Tim telling a white lie to make Jason feel better? Or does Tim see being revived after death as "surviving"?
Ok, now we can move onto the next question. Or rather, bear with me as we go back to the first question. It's a broad topic with plenty more to talk about.
What does Tim count as breaking the no-kill rule?
We already asked how Tim feels about bringing villains back from the dead after killing them. And we asked how Tim feels about leaving a villain to die without getting directly involved. However, we still don't know how much involvement Tim needs to have in an enemy's death before he'll take responsibility for it.
We can confirm he won't mercy kill in Red Robin #21, even if it means giving someone a fate worse than death. No exceptions.
Tim also doesn't allow anyone he's actively teaming up with to kill, especially if he's the one in command. He's been amicable with known killers before (Huntress and Pru, for example), but only when they remain non-lethal while working alongside him.
Apart from that, though, it becomes less clear. However, I think this is a good place to expand on when Tim blew up a lot of League of Assassins bases in Red Robin #8.
I'm not going into whether or not those explosions actually killed anyone. I've seen evidence supporting both sides of this debate, so I'm just going to say it's up to interpretation. What I AM talking about is whether or not Tim would've felt responsible if they had killed someone.
Before overloading every generator in the LOA database, Tim gave a warning to the Wanderer. He told her that he couldn't be held responsible for what would happen to her if she didn't leave.
After initiating the explosions, Tim warned the White Ghost that they had fifteen seconds to leave before it was too late.
Fifteen seconds. That explanation on the mistake of letting him in might've taken roughly another fifteen to twenty seconds. Did the other bases even get a full minute head start? The way some of the people were already running away could imply they at least got a warning, but it's possible they might not have.
Even if everyone in every base received a warning, would that be enough for Tim to avoid holding himself accountable if they didn't make it out in time? Tim's the one who rigged the bases to explode, but I guess giving someone a warning means it's now their fault for not heeding it?
We can't be sure he even considered the possibility of those explosions killing anyone. Tim knew they were dangerous enough to bring the whole Cradle down, and the other ones we saw looked pretty powerful (except the ones in Ra's hideout). But Tim also called Ra's a murderer right after that happened, which would've been very hypocritical if Tim himself thought he committed murder.
So, my guess is either A) Tim relied on sheer luck for those explosions not causing any casualties and chose to believe they hadn't, or B) Tim didn't believe the deaths of anyone caught in them would be his fault.
Again, this isn't about whether or not blowing up the LOA bases killed anyone. It's about how willing Tim was to take that risk, and if he would've blamed himself for anyone getting killed from it.
Either way, it's canon that Tim had no guilt for the explosions he caused, or for anything he did before Red Robin #22. Just ask the Sword of Sin.
This is an exerpt I got from the Fandom DC Database on the Sword of Sin:
"The Sword of Sin can be ignited with the mind of the wielder, if the person is powerful enough. The sword has the ability to conjure in the mind its victims all of the sins for which they are guilty or have not atoned for."
When Tim was stabbed with this sword, he was immune. The Sword of Sin decided he was innocent. Although, I have to ask how reliable this sword was in making that judgement. If the sword is judging others based on its own set principles, then something's not right here.
The Sword of Sin was also used on Dick, and he wasn't immune. It dug into Dicks subconscious and unearthed memories he'd long since repressed. Memories of himself watching a boy get beaten to near death, and then doing nothing. He just walked away.
Now, tell me why the sword brought this to light, but not the time Tim left King Snake to die!
It wasn't an accident. Tim deliberately chose to leave instead of trying to save this man from the murderous Lady Shiva. Sure, Tim was no match for Shiva and he might've not been able to stop her, but the same could be said for an eight year old Dick not stopping a group of much older kids. Neither of them tried to stop the attackers.
Tim didn't atone for it, either. When King Snake returned in Batman #469, Bruce told King Snake that it wasn't Tim who left him to die. We know that's a lie, but Tim never corrected this. He let Shiva take all the blame.
We have two instances of a boy choosing not to prevent someone from having a near death experience. One guilty, and one innocent.
Did the Sword of Sin think Tim was justified because King Snake was corrupt? That doesn't sound holy to me.
Was it because Tim didn't feel any guilt over it, while Dick did? Can the sword's judgement be thrown off by the victim not feeling any shred of guilt over their actions, even subconsciously?
That could make sense given what we know Tim did in the past: King Snake falling, the vandalism (explosions), and ALL the lying over the years (Tim reviving Shiva might count as atonement, so I'm not including that). If the sword based its judgement on God's will alone, then odds are high it would've picked up on one of these.
Even so, I'm not going to sit here and say this is definitely the case. I'm not familiar enough with how the sword effects other characters to make that call.
If this is indeed false, then did the DC universe's version of God decide to pardon Tim of his sins when he prayed earlier that same issue, despite him not believing he had any? I mean, who knows, right?
You can probably see why there's more questions than answers. The point is Tim didn't have any guilt for the things he did before Red Robin #22. Tim was canonically convinced he had nothing to atone for.
So then why did he say the opposite later in Knight Terrors: Robin #2?!
In the heart-to-heart between Tim and Jason, Tim tells him this:
"You have a lot to atone for...We all do..."
Tim knows that the words "we all" include him, right? By saying this, Tim admitted to also having things he needs to atone for, right?
Is this another white lie to make Jason feel better? Is it one of those slight changes the New 52 made to the canon? If not, then why did he change his mind? Did his no-kill rule change and make him feel guilty for some past actions? Is it not the no-kill rule, but something else?
What changed?!
Where does Tim draw the line?
I don't know. We've narrowed it down to a general area, but it's kinda hard to see a line when it's so blurred it could be a gradient.
Tim baffles me. He acts as a steady moral compass for others when he can't even seem to stay consistent with his own. You're free to call it poor writing (and honestly, fair), but I find his hypocrisy fascinating.
That's what it is, isn't it? Tim's a hypocrite who's completely oblivious to being one. And it's not like this was never mentioned in the comics before. Damian called him out on it!
In Batman & Robin 2011 #10, Damian confronted Tim about his near-murderous reaction when Fist Point killed Artemis (Teen Titans Vol 4 annual #1). Damian then accused Tim of constantly rejecting him because they have more in common than Tim's willing to admit.
It's debatable how accurate that accusation was, but Tim had a pretty volatile reaction to it.
"I believe in every choice I make!"
Does he? I don't think someone who's so sure of what he believes in would contradict himself to this extent. Especially if he wasn't doing it on purpose.
He wouldn't vehemently push Bruce's no-kill rule onto others and berate them for bending that rule, only to go and bend that same rule himself when the Batclan isn't around. He also wouldn't exploit what he thinks are loopholes, decide later that those loopholes broke the no-kill rule, and then earnestly claim he never broke it.
Why is he like this?! He's had arguably the most normal childhood out of the whole Batclan before becoming Robin! What could've made him so fickle about this?!
Where does he draw the line? And how will he know when he's crossed it?
360 notes
·
View notes