.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Ops 3pm" .TH Ops 3pm "2012-05-30" "perl v5.14.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" PDL::Ops \- Fundamental mathematical operators .SH "DESCRIPTION" .IX Header "DESCRIPTION" This module provides the functions used by \s-1PDL\s0 to overload the basic mathematical operators (\f(CW\*(C`+ \- / *\*(C'\fR etc.) and functions (\f(CW\*(C`sin sqrt\*(C'\fR etc.) .PP It also includes the function \f(CW\*(C`log10\*(C'\fR, which should be a perl function so that we can overload it! .PP Matrix multiplication (the operator \f(CW\*(C`x\*(C'\fR) is handled by the module PDL::Primitive. .SH "SYNOPSIS" .IX Header "SYNOPSIS" none .SH "FUNCTIONS" .IX Header "FUNCTIONS" .SS "plus" .IX Subsection "plus" .Vb 1 \& Signature: (a(); b(); [o]c(); int swap) .Ve .PP add two piddles .PP .Vb 3 \& $c = plus $a, $b, 0; # explicit call with trailing 0 \& $c = $a + $b; # overloaded call \& $a\->inplace\->plus($b,0); # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the binary \f(CW\*(C`+\*(C'\fR 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. .PP plus does handle bad values. The state of the bad-value flag of the output piddles is unknown. .SS "mult" .IX Subsection "mult" .Vb 1 \& Signature: (a(); b(); [o]c(); int swap) .Ve .PP multiply two piddles .PP .Vb 3 \& $c = mult $a, $b, 0; # explicit call with trailing 0 \& $c = $a * $b; # overloaded call \& $a\->inplace\->mult($b,0); # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the binary \f(CW\*(C`*\*(C'\fR 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. .PP mult does handle bad values. The state of the bad-value flag of the output piddles is unknown. .SS "minus" .IX Subsection "minus" .Vb 1 \& Signature: (a(); b(); [o]c(); int swap) .Ve .PP subtract two piddles .PP .Vb 3 \& $c = minus $a, $b, 0; # explicit call with trailing 0 \& $c = $a \- $b; # overloaded call \& $a\->inplace\->minus($b,0); # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the binary \f(CW\*(C`\-\*(C'\fR 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. .PP minus does handle bad values. The state of the bad-value flag of the output piddles is unknown. .SS "divide" .IX Subsection "divide" .Vb 1 \& Signature: (a(); b(); [o]c(); int swap) .Ve .PP divide two piddles .PP .Vb 3 \& $c = divide $a, $b, 0; # explicit call with trailing 0 \& $c = $a / $b; # overloaded call \& $a\->inplace\->divide($b,0); # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the binary \f(CW\*(C`/\*(C'\fR 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. .PP divide does handle bad values. The state of the bad-value flag of the output piddles is unknown. .SS "gt" .IX Subsection "gt" .Vb 1 \& Signature: (a(); b(); [o]c(); int swap) .Ve .PP the binary > (greater than) operation .PP .Vb 3 \& $c = gt $a, $b, 0; # explicit call with trailing 0 \& $c = $a > $b; # overloaded call \& $a\->inplace\->gt($b,0); # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the binary \f(CW\*(C`>\*(C'\fR 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. .PP gt does handle bad values. The state of the bad-value flag of the output piddles is unknown. .SS "lt" .IX Subsection "lt" .Vb 1 \& Signature: (a(); b(); [o]c(); int swap) .Ve .PP the binary < (less than) operation .PP .Vb 3 \& $c = lt $a, $b, 0; # explicit call with trailing 0 \& $c = $a < $b; # overloaded call \& $a\->inplace\->lt($b,0); # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the binary \f(CW\*(C`<\*(C'\fR 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. .PP lt does handle bad values. The state of the bad-value flag of the output piddles is unknown. .SS "le" .IX Subsection "le" .Vb 1 \& Signature: (a(); b(); [o]c(); int swap) .Ve .PP the binary <= (less equal) operation .PP .Vb 3 \& $c = le $a, $b, 0; # explicit call with trailing 0 \& $c = $a <= $b; # overloaded call \& $a\->inplace\->le($b,0); # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the binary \f(CW\*(C`<=\*(C'\fR 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. .PP le does handle bad values. The state of the bad-value flag of the output piddles is unknown. .SS "ge" .IX Subsection "ge" .Vb 1 \& Signature: (a(); b(); [o]c(); int swap) .Ve .PP the binary >= (greater equal) operation .PP .Vb 3 \& $c = ge $a, $b, 0; # explicit call with trailing 0 \& $c = $a >= $b; # overloaded call \& $a\->inplace\->ge($b,0); # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the binary \f(CW\*(C`>=\*(C'\fR 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. .PP ge does handle bad values. The state of the bad-value flag of the output piddles is unknown. .SS "eq" .IX Subsection "eq" .Vb 1 \& Signature: (a(); b(); [o]c(); int swap) .Ve .PP binary \fIequal to\fR operation (\f(CW\*(C`==\*(C'\fR) .PP .Vb 3 \& $c = eq $a, $b, 0; # explicit call with trailing 0 \& $c = $a == $b; # overloaded call \& $a\->inplace\->eq($b,0); # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the binary \f(CW\*(C`==\*(C'\fR 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. .PP eq does handle bad values. The state of the bad-value flag of the output piddles is unknown. .SS "ne" .IX Subsection "ne" .Vb 1 \& Signature: (a(); b(); [o]c(); int swap) .Ve .PP binary \fInot equal to\fR operation (\f(CW\*(C`!=\*(C'\fR) .PP .Vb 3 \& $c = ne $a, $b, 0; # explicit call with trailing 0 \& $c = $a != $b; # overloaded call \& $a\->inplace\->ne($b,0); # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the binary \f(CW\*(C`!=\*(C'\fR 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. .PP ne does handle bad values. The state of the bad-value flag of the output piddles is unknown. .SS "shiftleft" .IX Subsection "shiftleft" .Vb 1 \& Signature: (a(); b(); [o]c(); int swap) .Ve .PP leftshift \f(CW\*(C`a$\*(C'\fR by \f(CW$b\fR .PP .Vb 3 \& $c = shiftleft $a, $b, 0; # explicit call with trailing 0 \& $c = $a << $b; # overloaded call \& $a\->inplace\->shiftleft($b,0); # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the binary \f(CW\*(C`<<\*(C'\fR 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. .PP shiftleft does handle bad values. The state of the bad-value flag of the output piddles is unknown. .SS "shiftright" .IX Subsection "shiftright" .Vb 1 \& Signature: (a(); b(); [o]c(); int swap) .Ve .PP leftshift \f(CW\*(C`a$\*(C'\fR by \f(CW$b\fR .PP .Vb 3 \& $c = shiftright $a, $b, 0; # explicit call with trailing 0 \& $c = $a >> $b; # overloaded call \& $a\->inplace\->shiftright($b,0); # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the binary \f(CW\*(C`>>\*(C'\fR 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. .PP shiftright does handle bad values. The state of the bad-value flag of the output piddles is unknown. .SS "or2" .IX Subsection "or2" .Vb 1 \& Signature: (a(); b(); [o]c(); int swap) .Ve .PP binary \fIor\fR of two piddles .PP .Vb 3 \& $c = or2 $a, $b, 0; # explicit call with trailing 0 \& $c = $a | $b; # overloaded call \& $a\->inplace\->or2($b,0); # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the binary \f(CW\*(C`|\*(C'\fR 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. .PP or2 does handle bad values. The state of the bad-value flag of the output piddles is unknown. .SS "and2" .IX Subsection "and2" .Vb 1 \& Signature: (a(); b(); [o]c(); int swap) .Ve .PP binary \fIand\fR of two piddles .PP .Vb 3 \& $c = and2 $a, $b, 0; # explicit call with trailing 0 \& $c = $a & $b; # overloaded call \& $a\->inplace\->and2($b,0); # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the binary \f(CW\*(C`&\*(C'\fR 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. .PP and2 does handle bad values. The state of the bad-value flag of the output piddles is unknown. .SS "xor" .IX Subsection "xor" .Vb 1 \& Signature: (a(); b(); [o]c(); int swap) .Ve .PP binary \fIexclusive or\fR of two piddles .PP .Vb 3 \& $c = xor $a, $b, 0; # explicit call with trailing 0 \& $c = $a ^ $b; # overloaded call \& $a\->inplace\->xor($b,0); # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the binary \f(CW\*(C`^\*(C'\fR 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. .PP xor does handle bad values. The state of the bad-value flag of the output piddles is unknown. .SS "bitnot" .IX Subsection "bitnot" .Vb 1 \& Signature: (a(); [o]b()) .Ve .PP unary bit negation .PP .Vb 2 \& $b = ~ $a; \& $a\->inplace\->bitnot; # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the unary \f(CW\*(C`~\*(C'\fR operator/function. .PP 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. .SS "power" .IX Subsection "power" .Vb 1 \& Signature: (a(); b(); [o]c(); int swap) .Ve .PP raise piddle \f(CW$a\fR to the power \f(CW\*(C`b\*(C'\fR .PP .Vb 3 \& $c = $a\->power($b,0); # explicit function call \& $c = $a ** $b; # overloaded use \& $a\->inplace\->power($b,0); # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the binary \f(CW\*(C`**\*(C'\fR 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. .PP power does handle bad values. The state of the bad-value flag of the output piddles is unknown. .SS "atan2" .IX Subsection "atan2" .Vb 1 \& Signature: (a(); b(); [o]c(); int swap) .Ve .PP elementwise \f(CW\*(C`atan2\*(C'\fR of two piddles .PP .Vb 3 \& $c = $a\->atan2($b,0); # explicit function call \& $c = atan2 $a, $b; # overloaded use \& $a\->inplace\->atan2($b,0); # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the binary \f(CW\*(C`atan2\*(C'\fR 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. .PP atan2 does handle bad values. The state of the bad-value flag of the output piddles is unknown. .SS "modulo" .IX Subsection "modulo" .Vb 1 \& Signature: (a(); b(); [o]c(); int swap) .Ve .PP elementwise \f(CW\*(C`modulo\*(C'\fR operation .PP .Vb 3 \& $c = $a\->modulo($b,0); # explicit function call \& $c = $a % $b; # overloaded use \& $a\->inplace\->modulo($b,0); # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the binary \f(CW\*(C`%\*(C'\fR 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. .PP modulo does handle bad values. The state of the bad-value flag of the output piddles is unknown. .SS "spaceship" .IX Subsection "spaceship" .Vb 1 \& Signature: (a(); b(); [o]c(); int swap) .Ve .PP elementwise \*(L"<=>\*(R" operation .PP .Vb 3 \& $c = $a\->spaceship($b,0); # explicit function call \& $c = $a <=> $b; # overloaded use \& $a\->inplace\->spaceship($b,0); # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the binary \f(CW\*(C`<=>\*(C'\fR 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. .PP spaceship does handle bad values. The state of the bad-value flag of the output piddles is unknown. .SS "sqrt" .IX Subsection "sqrt" .Vb 1 \& Signature: (a(); [o]b()) .Ve .PP elementwise square root .PP .Vb 2 \& $b = sqrt $a; \& $a\->inplace\->sqrt; # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the unary \f(CW\*(C`sqrt\*(C'\fR operator/function. .PP 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. .SS "abs" .IX Subsection "abs" .Vb 1 \& Signature: (a(); [o]b()) .Ve .PP elementwise absolute value .PP .Vb 2 \& $b = abs $a; \& $a\->inplace\->abs; # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the unary \f(CW\*(C`abs\*(C'\fR operator/function. .PP 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. .SS "sin" .IX Subsection "sin" .Vb 1 \& Signature: (a(); [o]b()) .Ve .PP the sin function .PP .Vb 2 \& $b = sin $a; \& $a\->inplace\->sin; # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the unary \f(CW\*(C`sin\*(C'\fR operator/function. .PP 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. .SS "cos" .IX Subsection "cos" .Vb 1 \& Signature: (a(); [o]b()) .Ve .PP the cos function .PP .Vb 2 \& $b = cos $a; \& $a\->inplace\->cos; # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the unary \f(CW\*(C`cos\*(C'\fR operator/function. .PP 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. .SS "not" .IX Subsection "not" .Vb 1 \& Signature: (a(); [o]b()) .Ve .PP the elementwise \fInot\fR operation .PP .Vb 2 \& $b = ! $a; \& $a\->inplace\->not; # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the unary \f(CW\*(C`!\*(C'\fR operator/function. .PP 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. .SS "exp" .IX Subsection "exp" .Vb 1 \& Signature: (a(); [o]b()) .Ve .PP the exponential function .PP .Vb 2 \& $b = exp $a; \& $a\->inplace\->exp; # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the unary \f(CW\*(C`exp\*(C'\fR operator/function. .PP 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. .SS "log" .IX Subsection "log" .Vb 1 \& Signature: (a(); [o]b()) .Ve .PP the natural logarithm .PP .Vb 2 \& $b = log $a; \& $a\->inplace\->log; # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the unary \f(CW\*(C`log\*(C'\fR operator/function. .PP 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. .SS "log10" .IX Subsection "log10" .Vb 1 \& Signature: (a(); [o]b()) .Ve .PP the base 10 logarithm .PP .Vb 2 \& $b = log10 $a; \& $a\->inplace\->log10; # modify $a inplace .Ve .PP It can be made to work inplace with the \f(CW\*(C`$a\->inplace\*(C'\fR syntax. This function is used to overload the unary \f(CW\*(C`log10\*(C'\fR operator/function. .PP 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. .SS "assgn" .IX Subsection "assgn" .Vb 1 \& Signature: (a(); [o]b()) .Ve .PP Plain numerical assignment. This is used to implement the \*(L".=\*(R" operator .PP 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. .SH "AUTHOR" .IX Header "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).