llancet has asked for the wisdom of the Perl Monks concerning the following question:
However, when the region is big, the masking string becomes critically large and caused memory problem. So how can I pack the region AoA to some binary thing directly?my $region1=[[1,2],[5,7]]; my $region2=[[2,6]]; my $mask1=&toMask($region1); # 1100111 my $mask2=&toMask($region2); # 0111110 my $mask3=&maskAND($region1,$region2); # 0100110 sub toMask { my @regions=@_; my @result; foreach my $curr (@regions) { for (my $i=$curr->[0];$i<=$curr->[1];$i++) { $result[$i-1]=1; } } for (my $i=0;$i<@result;$i++) { $result[$i]=0 if ($result[$i]!=1); } return join "",@result; }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: boolean calculation with very large data
by BrowserUk (Patriarch) on Sep 24, 2009 at 08:23 UTC | |
Re: boolean calculation with very large data
by Corion (Patriarch) on Sep 24, 2009 at 07:15 UTC | |
Re: boolean calculation with very large data
by moritz (Cardinal) on Sep 24, 2009 at 07:25 UTC | |
Re: boolean calculation with very large data
by ccn (Vicar) on Sep 24, 2009 at 07:26 UTC |