Algorithm::LatticePoints - Run code for each lattice points


Algorithm-LatticePoints documentation  | view source Contained in the Algorithm-LatticePoints distribution.

Index


NAME

Top

Algorithm::LatticePoints - Run code for each lattice points

SYNOPSIS

Top

  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

Top

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

Top

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

Top

perlsyn

AUTHOR

Top

Dan Kogai, <dankogai@dan.co.jp>

COPYRIGHT AND LICENSE

Top


Algorithm-LatticePoints documentation  | view source Contained in the Algorithm-LatticePoints distribution.