GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  PDL::REDUCE (3)

.ds Aq ’

NAME

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

CONTENTS

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 module implements such a function for PDL by providing a simplified 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 function 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 [,@dims]);



reduce applies the named operation along the specified dimension(s) reducing the input piddle dimension by as many dimensions as supplied as arguments. If the dimension(s) argument is omitted the operation is applied along the first dimension. To get a list of valid operations see canreduce.

NOTE - new power user feature: you can now supply a code reference as operation to reduce with.



  # reduce by summing over dims 0 and 2
  $result = $pdl->reduce(\&sumover, 0, 2);



It is your responsibility to ensure that this is indeed a PDL projection operation that turns vectors into scalars! You have been warned.

    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 chosen dimension.



  @ops = PDL->canreduce;



This list is useful if you want to make sure which operations can be used with reduce.

AUTHOR

Copyright (C) 2000 Christian Soeller (c.soeller@auckland.ac.nz). All rights reserved. There is no warranty. You are allowed to redistribute this software / documentation 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.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 REDUCE (3) 2015-08-12

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.