Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: A mod2 Machine.

by zork42 (Monk)
on Jul 13, 2013 at 09:22 UTC ( #1044135=note: print w/ replies, xml ) Need Help??


in reply to A mod2 Machine.

using floats to compute modulo does not seem reasonable to me.
I only included this:
my $n = 534587; print "even\n" if($n % 2 == 0); # modulo operator of possibly a flo +at or possibly an integer (*)
because
  1. it is equivalent to the OP's "Most obvious (easiest) solution" (infact code-ninja used this exact example here: Re^2: A mod2 Machine.)
  2. it might actually be doing a (possibly comparatively slow) float operation because use integer was not used.
    It probably had to go: float 534587 --> integer 534587 --> integer modulo operation on integer 534587

Whereas doing a proper integer bit test should be faster:
use integer; my $n = 534587; print "even\n" if($n & 1 == 0); # checking LSB with Bitwise And on +an integer


Comment on Re: A mod2 Machine.
Select or Download Code
Replies are listed 'Best First'.
Re^2: A mod2 Machine.
by code-ninja (Scribe) on Jul 13, 2013 at 12:34 UTC
    should be faster

    Why art thou speculating? use Benchmark;

    I benchmarked the bitwise operation with my method and even then my method wins... for 1e6 iterations.

    Rate machine bitwise machine 819199/s -- -43% bitwise 1448690/s 77% --

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (10)
As of 2015-07-29 02:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (260 votes), past polls