Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re^3: rsFalse can't make some easy arithmetics :)

by BrowserUk (Patriarch)
on Oct 24, 2014 at 23:02 UTC ( [id://1104933]=note: print w/replies, xml ) Need Help??


in reply to Re^2: rsFalse can't make some easy arithmetics :)
in thread Perl can't make some easy arithmetics :(

what do we gain by using machine-precision floating point as our default numeric representation?

I just watched an HD movie on my PC. In the 105 minutes of runtime, approximately 100 billion calculations are performed.

If these calculations were done using bigint, then the movie would take 34.5 days to watch...

cmpthese -1, { a=>q[my $t=0; $t *= $_ for 1 .. 1e3;], b=>q[use bigint; my $t=0; $t *= $_ for 1 .. 1e3 ] };; Rate b a b 23.8/s -- -100% a 11263/s 47292% --

I'm more than happy to have to consider the limitations of native machine precision.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

Replies are listed 'Best First'.
Re^4: rsFalse can't make some easy arithmetics :)
by no_slogan (Deacon) on Oct 26, 2014 at 03:45 UTC

    If you read what I wrote carefully, you'll see that I said "default representation." Hardware floating-point is very useful for certain applications, and I certainly wouldn't want to give it up completely. But, more and more, it's usually not what you want.

    Also, your video codec is almost certainly using parallelized fixed-point calculations, not floating-point.

    Also also, are you using a pure-perl bigint implementation? That's the default.

      But, more and more, it's usually not what you want.

      That may be true in your world, but it certainly is not in mine.

      And unilaterally declaring that the default math should be a slow, cumbersome, and very rarely actually needed, infinite precision implementation based upon your own personal requirements and other equally specious arguments, is...well, specious.

      Further, it is far better that new programmers learn about the limits of machine precision early in their careers -- when what they are working on is likely to be non-critical and closely supervised -- than that they go through that early supervised period ignorant of those limitations and end up struggling to produce sufficiently performant code when it matters later.


      With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.
      A reply falls below the community's threshold of quality. You may see it by logging in.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1104933]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (8)
As of 2024-03-28 19:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found