PDL::Ops.3pm

Langue: en

Version: 2010-06-19 (ubuntu - 24/10/10)

Section: 3 (Bibliothèques de fonctions)

NAME

PDL::Ops - Fundamental mathematical operators

DESCRIPTION

This module provides the functions used by PDL to overload the basic mathematical operators ("+ - / *" etc.) and functions ("sin sqrt" etc.)

It also includes the function "log10", which should be a perl function so that we can overload it!

Matrix multiplication (the operator "x") is handled by the module PDL::Primitive.

SYNOPSIS

none

FUNCTIONS

plus

   Signature: (a(); b(); [o]c(); int swap)
 
 

add two piddles

    $c = plus $a, $b, 0;     # explicit call with trailing 0
    $c = $a + $b;           # overloaded call
    $a->inplace->plus($b,0);  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the binary "+" operator. Note that when calling this function explicitly you need to supply a third argument that should generally be zero (see first example). This restriction is expected to go away in future releases.

plus does handle bad values. The state of the bad-value flag of the output piddles is unknown.

mult

   Signature: (a(); b(); [o]c(); int swap)
 
 

multiply two piddles

    $c = mult $a, $b, 0;     # explicit call with trailing 0
    $c = $a * $b;           # overloaded call
    $a->inplace->mult($b,0);  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the binary "*" operator. Note that when calling this function explicitly you need to supply a third argument that should generally be zero (see first example). This restriction is expected to go away in future releases.

mult does handle bad values. The state of the bad-value flag of the output piddles is unknown.

minus

   Signature: (a(); b(); [o]c(); int swap)
 
 

subtract two piddles

    $c = minus $a, $b, 0;     # explicit call with trailing 0
    $c = $a - $b;           # overloaded call
    $a->inplace->minus($b,0);  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the binary "-" operator. Note that when calling this function explicitly you need to supply a third argument that should generally be zero (see first example). This restriction is expected to go away in future releases.

minus does handle bad values. The state of the bad-value flag of the output piddles is unknown.

divide

   Signature: (a(); b(); [o]c(); int swap)
 
 

divide two piddles

    $c = divide $a, $b, 0;     # explicit call with trailing 0
    $c = $a / $b;           # overloaded call
    $a->inplace->divide($b,0);  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the binary "/" operator. Note that when calling this function explicitly you need to supply a third argument that should generally be zero (see first example). This restriction is expected to go away in future releases.

divide does handle bad values. The state of the bad-value flag of the output piddles is unknown.

gt

   Signature: (a(); b(); [o]c(); int swap)
 
 

the binary > (greater than) operation

    $c = gt $a, $b, 0;     # explicit call with trailing 0
    $c = $a > $b;           # overloaded call
    $a->inplace->gt($b,0);  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the binary ">" operator. Note that when calling this function explicitly you need to supply a third argument that should generally be zero (see first example). This restriction is expected to go away in future releases.

gt does handle bad values. The state of the bad-value flag of the output piddles is unknown.

lt

   Signature: (a(); b(); [o]c(); int swap)
 
 

the binary < (less than) operation

    $c = lt $a, $b, 0;     # explicit call with trailing 0
    $c = $a < $b;           # overloaded call
    $a->inplace->lt($b,0);  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the binary "<" operator. Note that when calling this function explicitly you need to supply a third argument that should generally be zero (see first example). This restriction is expected to go away in future releases.

lt does handle bad values. The state of the bad-value flag of the output piddles is unknown.

le

   Signature: (a(); b(); [o]c(); int swap)
 
 

the binary <= (less equal) operation

    $c = le $a, $b, 0;     # explicit call with trailing 0
    $c = $a <= $b;           # overloaded call
    $a->inplace->le($b,0);  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the binary "<=" operator. Note that when calling this function explicitly you need to supply a third argument that should generally be zero (see first example). This restriction is expected to go away in future releases.

le does handle bad values. The state of the bad-value flag of the output piddles is unknown.

ge

   Signature: (a(); b(); [o]c(); int swap)
 
 

the binary >= (greater equal) operation

    $c = ge $a, $b, 0;     # explicit call with trailing 0
    $c = $a >= $b;           # overloaded call
    $a->inplace->ge($b,0);  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the binary ">=" operator. Note that when calling this function explicitly you need to supply a third argument that should generally be zero (see first example). This restriction is expected to go away in future releases.

ge does handle bad values. The state of the bad-value flag of the output piddles is unknown.

eq

   Signature: (a(); b(); [o]c(); int swap)
 
 

binary equal to operation ("==")

    $c = eq $a, $b, 0;     # explicit call with trailing 0
    $c = $a == $b;           # overloaded call
    $a->inplace->eq($b,0);  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the binary "==" operator. Note that when calling this function explicitly you need to supply a third argument that should generally be zero (see first example). This restriction is expected to go away in future releases.

eq does handle bad values. The state of the bad-value flag of the output piddles is unknown.

ne

   Signature: (a(); b(); [o]c(); int swap)
 
 

binary not equal to operation ("!=")

    $c = ne $a, $b, 0;     # explicit call with trailing 0
    $c = $a != $b;           # overloaded call
    $a->inplace->ne($b,0);  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the binary "!=" operator. Note that when calling this function explicitly you need to supply a third argument that should generally be zero (see first example). This restriction is expected to go away in future releases.

ne does handle bad values. The state of the bad-value flag of the output piddles is unknown.

shiftleft

   Signature: (a(); b(); [o]c(); int swap)
 
 

leftshift "a$" by $b

    $c = shiftleft $a, $b, 0;     # explicit call with trailing 0
    $c = $a << $b;           # overloaded call
    $a->inplace->shiftleft($b,0);  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the binary "<<" operator. Note that when calling this function explicitly you need to supply a third argument that should generally be zero (see first example). This restriction is expected to go away in future releases.

shiftleft does handle bad values. The state of the bad-value flag of the output piddles is unknown.

shiftright

   Signature: (a(); b(); [o]c(); int swap)
 
 

leftshift "a$" by $b

    $c = shiftright $a, $b, 0;     # explicit call with trailing 0
    $c = $a >> $b;           # overloaded call
    $a->inplace->shiftright($b,0);  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the binary ">>" operator. Note that when calling this function explicitly you need to supply a third argument that should generally be zero (see first example). This restriction is expected to go away in future releases.

shiftright does handle bad values. The state of the bad-value flag of the output piddles is unknown.

or2

   Signature: (a(); b(); [o]c(); int swap)
 
 

binary or of two piddles

    $c = or2 $a, $b, 0;     # explicit call with trailing 0
    $c = $a | $b;           # overloaded call
    $a->inplace->or2($b,0);  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the binary "|" operator. Note that when calling this function explicitly you need to supply a third argument that should generally be zero (see first example). This restriction is expected to go away in future releases.

or2 does handle bad values. The state of the bad-value flag of the output piddles is unknown.

and2

   Signature: (a(); b(); [o]c(); int swap)
 
 

binary and of two piddles

    $c = and2 $a, $b, 0;     # explicit call with trailing 0
    $c = $a & $b;           # overloaded call
    $a->inplace->and2($b,0);  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the binary "&" operator. Note that when calling this function explicitly you need to supply a third argument that should generally be zero (see first example). This restriction is expected to go away in future releases.

and2 does handle bad values. The state of the bad-value flag of the output piddles is unknown.

xor

   Signature: (a(); b(); [o]c(); int swap)
 
 

binary exclusive or of two piddles

    $c = xor $a, $b, 0;     # explicit call with trailing 0
    $c = $a ^ $b;           # overloaded call
    $a->inplace->xor($b,0);  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the binary "^" operator. Note that when calling this function explicitly you need to supply a third argument that should generally be zero (see first example). This restriction is expected to go away in future releases.

xor does handle bad values. The state of the bad-value flag of the output piddles is unknown.

bitnot

   Signature: (a(); [o]b())
 
 

unary bit negation

    $b = ~ $a;
    $a->inplace->bitnot;  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the unary "~" operator/function.

bitnot does handle bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles.

power

   Signature: (a(); b(); [o]c(); int swap)
 
 

raise piddle $a to the power "b"

    $c = $a->power($b,0); # explicit function call
    $c = $a ** $b;    # overloaded use
    $a->inplace->power($b,0);     # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the binary "**" function. Note that when calling this function explicitly you need to supply a third argument that should generally be zero (see first example). This restriction is expected to go away in future releases.

power does handle bad values. The state of the bad-value flag of the output piddles is unknown.

atan2

   Signature: (a(); b(); [o]c(); int swap)
 
 

elementwise "atan2" of two piddles

    $c = $a->atan2($b,0); # explicit function call
    $c = atan2 $a, $b;    # overloaded use
    $a->inplace->atan2($b,0);     # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the binary "atan2" function. Note that when calling this function explicitly you need to supply a third argument that should generally be zero (see first example). This restriction is expected to go away in future releases.

atan2 does handle bad values. The state of the bad-value flag of the output piddles is unknown.

modulo

   Signature: (a(); b(); [o]c(); int swap)
 
 

elementwise "modulo" operation

    $c = $a->modulo($b,0); # explicit function call
    $c = $a % $b;    # overloaded use
    $a->inplace->modulo($b,0);     # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the binary "%" function. Note that when calling this function explicitly you need to supply a third argument that should generally be zero (see first example). This restriction is expected to go away in future releases.

modulo does handle bad values. The state of the bad-value flag of the output piddles is unknown.

spaceship

   Signature: (a(); b(); [o]c(); int swap)
 
 

elementwise ``<=>'' operation

    $c = $a->spaceship($b,0); # explicit function call
    $c = $a <=> $b;    # overloaded use
    $a->inplace->spaceship($b,0);     # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the binary "<=>" function. Note that when calling this function explicitly you need to supply a third argument that should generally be zero (see first example). This restriction is expected to go away in future releases.

spaceship does handle bad values. The state of the bad-value flag of the output piddles is unknown.

sqrt

   Signature: (a(); [o]b())
 
 

elementwise square root

    $b = sqrt $a;
    $a->inplace->sqrt;  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the unary "sqrt" operator/function.

sqrt does handle bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles.

abs

   Signature: (a(); [o]b())
 
 

elementwise absolute value

    $b = abs $a;
    $a->inplace->abs;  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the unary "abs" operator/function.

abs does handle bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles.

sin

   Signature: (a(); [o]b())
 
 

the sin function

    $b = sin $a;
    $a->inplace->sin;  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the unary "sin" operator/function.

sin does handle bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles.

cos

   Signature: (a(); [o]b())
 
 

the cos function

    $b = cos $a;
    $a->inplace->cos;  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the unary "cos" operator/function.

cos does handle bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles.

not

   Signature: (a(); [o]b())
 
 

the elementwise not operation

    $b = ! $a;
    $a->inplace->not;  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the unary "!" operator/function.

not does handle bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles.

exp

   Signature: (a(); [o]b())
 
 

the exponential function

    $b = exp $a;
    $a->inplace->exp;  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the unary "exp" operator/function.

exp does handle bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles.

log

   Signature: (a(); [o]b())
 
 

the natural logarithm

    $b = log $a;
    $a->inplace->log;  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the unary "log" operator/function.

log does handle bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles.

log10

   Signature: (a(); [o]b())
 
 

the base 10 logarithm

    $b = log10 $a;
    $a->inplace->log10;  # modify $a inplace
 
 

It can be made to work inplace with the "$a->inplace" syntax. This function is used to overload the unary "log10" operator/function.

log10 does handle bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles.

assgn

   Signature: (a(); [o]b())
 
 

Plain numerical assignment. This is used to implement the ``.='' operator

assgn does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles.

AUTHOR

Tuomas J. Lukka (lukka@fas.harvard.edu), Karl Glazebrook (kgb@aaoepp.aao.gov.au), Doug Hunt (dhunt@ucar.edu), Christian Soeller (c.soeller@auckland.ac.nz), Doug Burke (burke@ifa.hawaii.edu), and Craig DeForest (deforest@boulder.swri.edu).