[EMAIL PROTECTED] wrote:
Trialog:
Roman Leshchinskiy writes:
Richard A. O'Keefe wrote:
[EMAIL PROTECTED] wrote:
Would you say that *no* typical floating-point software is reliable?
With lots of hedging and clutching of protective amulets around the
word "reliable", of course not. What I *am* saying is that
(a) it's exceptionally HARD to make reliable because although the
operations
are well defined and arguably reasonable they do NOT obey the laws that
school and university mathematics teach us to expect them to obey
Ints do not obey those laws, either. It is not exceptionally hard to
write reliable software using ints. You just have to check for
exceptional conditions. That's also the case for floating point.
That said, I suspect that 90% of programs that use float and double
would be much better off using something else. The only reason to use
floating point is performance.
I have a bit different perspective...
First, when I see the advice "use something else", I always ask "what",
and I get an answer very, very rarely... Well? What do you propose?
For Haskell, Rational seems like a good choice. The fact that the
standard requires defaulting to Double is quite unfortunate and
inconsistent, IMO; the default should be Rational. Float and Double
shouldn't even be in scope without an explicit import. There really is
no good reason to use them unless you are writing a binding to existing
libraries or really need the performance.
Then, the problem is not always pathological, in the sense of "exceptional
conditions". There are touchy points related to the stability of the
algorithms for the solution of differential equations. There are doubtful
random number generators in Monte-Carlo business. There are ill-conditioned
matrices and screwed-up iterative definitions. Algorithms work, work, and
ultimately explode or produce rubbish. The "laws" which get broken are
"almost" respected for a long time, and then we have the Bald Man (Sorites)
paradox...
RAO'K very wisely says that people should avoid reinventing wheels, and
they should use established packages, written by people who know.
Yes, I completely agree with that (even though my original email
probably didn't sound as if I did). My point was that (a) most people
don't need floating point and (b) those who do need it should learn how
to use it.
The problem *here* is that we would like to have something fabulous in
Haskell - for example...
I think we mostly have it already.
Roman
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe