Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: Parallelization of multiple nested loops

by ikegami (Pope)
on Feb 07, 2018 at 23:20 UTC ( #1208661=note: print w/replies, xml ) Need Help??


in reply to Parallelization of multiple nested loops

You shouldn't use non-integral step amounts, as you accumulate floating-point error each pass through the loop.

For example,

$ perl -E'for (my $i=0; $i<10; $i+=1) { say $i }' | wc -l 10 $ perl -E'for (my $i=0; $i<1; $i+=0.1) { say $i }' | wc -l 11

Replace

for ($p[0]=0; $p[0]<=1; $p[0]+=0.2){

with

for (0..5) { $p[0] = $_*0.2;

or with

my @ps = map { $_ * 0.2 } 0..5; for (@ps) { $p[0] = $_;

The second approach allows us to do the following:

use Algorithm::Loops qw( NestedLoops ); my @ps = map { $_ * 0.2 } 0..5; my $iter = NestedLoops([ (\@ps) x 11 ]); while (my @p = $iter->()) { my $temp_out = join("\t", @p, 1, 1)."\n"; ... }

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1208661]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (2)
As of 2018-07-18 22:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    It has been suggested to rename Perl 6 in order to boost its marketing potential. Which name would you prefer?















    Results (397 votes). Check out past polls.

    Notices?