So you're arguing my point... that you must have intimate knowledge of the computer program to use it. Thank you, I'm glad we agree.
There is no "failure" here other than a failure to read the Python documentation to learn the semantics of its number literals and arithmetic operators.
I can agree with that. AND you have to take into consideration that a mathematician may not have the vocabulary to understand a computer science manual. I have a lot of trouble reading high level mathematics, but at this point, reading computer science code or texts is easier than reading books.
Exactly how many years are we supposed to spend on a mathematical proof just figuring out the details of the programming language we're using? Have you ever met a Physics Ph.D. trying to create a computer model? They look like they're ready to kill someone. I can't say I blaim them. What you put on paper does not easily translate into code.
The problem happens because you use the wrong tool to solve the problem. If you need exact arithmetic, you should use exact arithmetic, not floating-point arithmetic, or if you're happy with high finite precision, you should rewrite your algorithm so that it doesn't suffer from cancellation.
You're right on the fact that I used the wrong tool. But I didn't know that until it was too late. It was like bringing a knife to a gun fight. But in a mathematician's/user's eyes, software should "just work". As a software writer, I don't want to have to write someone else's software for them because they screwed it up. And as a software writer, I definitely don't want to do some other professional's work for them. Do you? So in this case I needed a tool that would work. The entire structure of the language was the problem. Ooops. Now all I have to do to fix it is rewrite everything in another language or reinvent the wheel, thus creating a series of my own methods to bias the problem... and that was just one problem.... obviously such an approach is unacceptable in most cases.
Plus, you'll need two degrees (probably 2 Ph.D.s) just to proof-read a math paper. OUCH! The level of productivity in academics will drop dramatically. I think in some cases the author of the paper might as well take some drawing classes instead of computer modeling... it would certainly be more productive than the alternative.
China's online search market was worth RMB811.7 million($108.5 million) in the third quarter, up 95.2% from a year earlier
I get your point, but we're talking under a half billion this year (under a 1/4 billion last year), not billions. That's still large enough to blur the lines of ethics, but does reduce your figure quite a bit. And I doubt the Google guys will sell out their own country which is a much larger cash cow. I guess you could say that it puts the blur back in to focus.
To put it into perspective, Amazon.com does that much revenue in 15-20 days...
$10.7 billion/12 months = $890 million per month / 2 = $445 million in about 15 days
It IS Python's fault! It is also a trade-off knowingly made in programming languages.
IEEE standards simply mean that everything FAILS the same way. Less surprises, more calculated risks. But what is important according to this article is whether the AVERAGE math or physics grad, without a CS background, is going to know that.
Ding! Ding! Ding! And that's where the problem comes in!
Try using PHP to calculate the distance between 2 geographical points across the country... oh, wait a minute, you can't! Why? Because the number gets really big, then really small, then really big, etc. You're left with a number that has lost all of its floating point precision... thus being wrong!
Wait a minute, are you saying that the right formula gives the wrong results? YES!!
So that just leads us back at the entire point of the article. How do mathematicians know that they can trust the results of formulas they put into software? The answer: They can't.
Instead, let's be honest with people and tell them this is the best guess and highest probability that the result will be correct. Run simple tests. Check your results. Be diligent. If something doesn't add up, it might actually be because it didn't.
All the IEEE-754 documentation in the world can't change the fact that the wrong answer is the wrong answer... and mathematicians need to know that.
So you're arguing my point... that you must have intimate knowledge of the computer program to use it. Thank you, I'm glad we agree.
... obviously such an approach is unacceptable in most cases.
There is no "failure" here other than a failure to read the Python documentation to learn the semantics of its number literals and arithmetic operators.
I can agree with that. AND you have to take into consideration that a mathematician may not have the vocabulary to understand a computer science manual. I have a lot of trouble reading high level mathematics, but at this point, reading computer science code or texts is easier than reading books.
Exactly how many years are we supposed to spend on a mathematical proof just figuring out the details of the programming language we're using? Have you ever met a Physics Ph.D. trying to create a computer model? They look like they're ready to kill someone. I can't say I blaim them. What you put on paper does not easily translate into code.
The problem happens because you use the wrong tool to solve the problem. If you need exact arithmetic, you should use exact arithmetic, not floating-point arithmetic, or if you're happy with high finite precision, you should rewrite your algorithm so that it doesn't suffer from cancellation.
You're right on the fact that I used the wrong tool. But I didn't know that until it was too late. It was like bringing a knife to a gun fight. But in a mathematician's/user's eyes, software should "just work". As a software writer, I don't want to have to write someone else's software for them because they screwed it up. And as a software writer, I definitely don't want to do some other professional's work for them. Do you? So in this case I needed a tool that would work. The entire structure of the language was the problem. Ooops. Now all I have to do to fix it is rewrite everything in another language or reinvent the wheel, thus creating a series of my own methods to bias the problem... and that was just one problem.
Plus, you'll need two degrees (probably 2 Ph.D.s) just to proof-read a math paper. OUCH! The level of productivity in academics will drop dramatically. I think in some cases the author of the paper might as well take some drawing classes instead of computer modeling... it would certainly be more productive than the alternative.
China's online search market was worth RMB811.7 million($108.5 million) in the third quarter, up 95.2% from a year earlier
I get your point, but we're talking under a half billion this year (under a 1/4 billion last year), not billions. That's still large enough to blur the lines of ethics, but does reduce your figure quite a bit. And I doubt the Google guys will sell out their own country which is a much larger cash cow. I guess you could say that it puts the blur back in to focus.
To put it into perspective, Amazon.com does that much revenue in 15-20 days...
$10.7 billion/12 months = $890 million per month / 2 = $445 million in about 15 days
http://en.wikipedia.org/wiki/Amazon.com
Yeah, I got A's in college, too.
It IS Python's fault! It is also a trade-off knowingly made in programming languages.
IEEE standards simply mean that everything FAILS the same way. Less surprises, more calculated risks. But what is important according to this article is whether the AVERAGE math or physics grad, without a CS background, is going to know that.
Ding! Ding! Ding! And that's where the problem comes in!
Try using PHP to calculate the distance between 2 geographical points across the country... oh, wait a minute, you can't! Why? Because the number gets really big, then really small, then really big, etc. You're left with a number that has lost all of its floating point precision... thus being wrong!
Wait a minute, are you saying that the right formula gives the wrong results? YES!!
So that just leads us back at the entire point of the article. How do mathematicians know that they can trust the results of formulas they put into software? The answer: They can't.
Instead, let's be honest with people and tell them this is the best guess and highest probability that the result will be correct. Run simple tests. Check your results. Be diligent. If something doesn't add up, it might actually be because it didn't.
All the IEEE-754 documentation in the world can't change the fact that the wrong answer is the wrong answer... and mathematicians need to know that.
Python 2.5.1 (current)...
Command Line:
>>> 1.00 - 0.01
0.98999999999999999
I hope I'm not the only one that thought of this one.