NAME
Algorithm::LatticePoints - Run code for each lattice points
SYNOPSIS
use Algorithm::LatticePoints;
my $al = Algorithm::LatticePoints->new(
sub {
printf "[%s]\n", join( ", ", @_ );
}
);
$al->visit( [0,0,0,0], [9,9,9,9] );
# instead of
for my $t (0..9){
for my $z (0..9){
for my $y (0..9){
for my $x (0..9){
print "[$x, $y, $z, $t]\n";
}
}
}
}
DESCRIPTION
Lattice-point handling is a common chore. You do it for image
processing, 3-d processing, and more. Usually you do it via nested for
loops but it is boring and tedious. This module loops for you instead.
METHODS
new(\&coderef)
Pass a coderef which processes each lattice point.
visit([$s1,$s2...$sn],[$e1,$e2...$en])
Runs the code for each latice point between [$s1,$s2...$sn] and
[$e1,$e2...$en], inclusive.
EXPORT
None.
PERFOMANCE
Compared to good old for loops, you will lose 20% performance for 10^3
lattice but only 4% for 10^4 lattice. The larger the lattice gets the
less the performance loss impacts.
SEE ALSO
perlsyn
AUTHOR
Dan Kogai, <
[email protected]>
COPYRIGHT AND LICENSE
Copyright (C) 2007 by Dan Kogai
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself, either Perl version 5.8.8 or, at
your option, any later version of Perl 5 you may have available.