On Thu, 22 Apr 2010 14:50:36 -0400, Bill Baxter <wbax...@gmail.com> wrote:

On Thu, Apr 22, 2010 at 11:27 AM, BCS <n...@anon.com> wrote:
Hello Bill,

Seems to me the only use is to
preserve a few more bits in intermediate computations.

There are some cases where you simply want to keep as much precision as you
can. In those cases variable precision floats aren't any better of a
solution as you would just turn them up as far as you can without
unacceptable cost elsewhere.

So what's the advice you would you give to Joe coder about when to use 'real'?
My argument is that it is probably something like "if you don't know
why you need it then you probably don't need it".  And I suspect very
few people actually need it.  But as is, it looks like something that
one ought to use.  It has the shortest name of all the floating point
types.  And the description sounds pretty good -- more precision,
hardware supported.  Wow!  Why wouldn't I want that?  But the fact is
that most people will never need it.  And Bearophile listed some good
reasons why not to use it in general circumstances.

Most cases where real turns out a different result than double are floating point error related.

For example, something that converges with doubles may not converge with reals, resulting in an infinite loop and a perceived difference where reals are seen as 'bad'. However, the problem really is that reals have exposed a flaw in your algorithm where by the right circumstances, the double version worked.

I also find bearophile's requirement to be able to check that a D program outputs the same exact floating point digits as a C program ridiculous.

IMO, there is no benefit to using doubles over reals except for storage space. And that is not a good reason to get rid of real. You see a benefit (more precision) for a cost (more storage). It's not a confusing concept.

-Steve

Reply via email to