PDL::Reduce
Reduce(e)      User Contributed Perl Documentation      Reduce(e)



NAME
       PDL::Reduce -- a "reduce" function for PDL

DESCRIPTION
       Many languages have a "reduce" function used to reduce the
       rank of an N-D array by one. It works by applying a
       selected operation along a specified dimension. This mod-
       ule implements such a function for PDL by providing a sim-
       plified interface to the existing projection functions
       (e.g. "sumover", "maximum", "average", etc).

SYNOPSIS
        use PDL::Reduce;
        $a = sequence 5,5;
        # reduce by adding all
        # elements along 2nd dimension
        $b = $a->reduce('add',1);
        @ops = $a->canreduce; # return a list of all allowed operations


FUNCTIONS
       reduce

       reduce dimension of piddle by one by applying an operation
       along the specified dimension

        $a = sequence 5,5;
        # reduce by adding all
        # elements along 2nd dimension
        $b = $a->reduce('add',1);
        $b = $a->reduce('plus',1);
        $b = $a->reduce('+',1);     # three ways to do the same thing

       [ As an aside: if you are familiar with threading you will
       see that this is actually the same as

        $b = $a->mv(1,0)->sumover

       ]

       NOTE: You should quote the name of the operation (1st arg)
       that you want "reduce" to perform. This is important since
       some of the names are identical to the names of the actual
       PDL functions which might be imported into your namespace.
       And you definitely want a string as argument, not a func-
       tion invocation! For example, this will probably fail:

         $b = $a->reduce(avg,1); # gives an error from invocation of 'avg'

       Rather use

         $b = $a->reduce('avg',1);

       "reduce" provides a simple and unified interface to the
       projection functions and makes people coming from other
       data/array languages hopefully feel more at home.

        $result = $pdl->reduce($operation [,$dim]);

       "reduce" applies the named operation along the specified
       dimension reducing the input piddle dimension by one. If
       the dimension is omitted the operation is applied along
       the first dimension. To get a list of valid operations see
       canreduce.

       canreduce

       return list of valid named "reduce" operations Some common
       operations can be accessed using a number of names, e.g.
       '+', "add" and "plus" all sum the elements along the cho-
       sen dimension.

         @ops = PDL->canreduce;

       This list is useful if you want to make sure which opera-
       tions can be used with "reduce".

AUTHOR
       Copyright (C) 2000 Christian Soeller (c.soeller@auck-
       land.ac.nz). All rights reserved. There is no warranty.
       You are allowed to redistribute this software / documenta-
       tion under certain conditions. For details, see the file
       COPYING in the PDL distribution. If this file is separated
       from the PDL distribution, the copyright notice should be
       included in the file.



perl v5.6.1                 2001-07-08                  Reduce(e)