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)
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble cfloat cdouble cldouble)
$c = $a + $b;                # overloads the Perl '+' operator
$a += $b;
$c = plus($a, $b);           # using default value of swap=0
$c = plus($a, $b, $swap);    # overriding default
plus($a, $b, $c, $swap);     # all arguments given
$c = $a->plus($b);           # method call
$c = $a->plus($b, $swap);
$a->plus($b, $c, $swap);
$a->inplace->plus($b,$swap); # can be used inplace
plus($a->inplace,$b,$swap);

add two ndarrays

Broadcasts over its inputs.

plus processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

mult

Signature: (a(); b(); [o]c(); int $swap)
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble cfloat cdouble cldouble)
$c = $a * $b;                # overloads the Perl '*' operator
$a *= $b;
$c = mult($a, $b);           # using default value of swap=0
$c = mult($a, $b, $swap);    # overriding default
mult($a, $b, $c, $swap);     # all arguments given
$c = $a->mult($b);           # method call
$c = $a->mult($b, $swap);
$a->mult($b, $c, $swap);
$a->inplace->mult($b,$swap); # can be used inplace
mult($a->inplace,$b,$swap);

multiply two ndarrays

Broadcasts over its inputs.

mult processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

minus

Signature: (a(); b(); [o]c(); int $swap)
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble cfloat cdouble cldouble)
$c = $a - $b;                 # overloads the Perl '-' operator
$a -= $b;
$c = minus($a, $b);           # using default value of swap=0
$c = minus($a, $b, $swap);    # overriding default
minus($a, $b, $c, $swap);     # all arguments given
$c = $a->minus($b);           # method call
$c = $a->minus($b, $swap);
$a->minus($b, $c, $swap);
$a->inplace->minus($b,$swap); # can be used inplace
minus($a->inplace,$b,$swap);

subtract two ndarrays

Broadcasts over its inputs.

minus processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

divide

Signature: (a(); b(); [o]c(); int $swap)
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble cfloat cdouble cldouble)
$c = $a / $b;                  # overloads the Perl '/' operator
$a /= $b;
$c = divide($a, $b);           # using default value of swap=0
$c = divide($a, $b, $swap);    # overriding default
divide($a, $b, $c, $swap);     # all arguments given
$c = $a->divide($b);           # method call
$c = $a->divide($b, $swap);
$a->divide($b, $c, $swap);
$a->inplace->divide($b,$swap); # can be used inplace
divide($a->inplace,$b,$swap);

divide two ndarrays

Broadcasts over its inputs.

divide processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

gt

Signature: (a(); b(); [o]c(); int $swap)
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble)
$c = $a > $b;              # overloads the Perl '>' operator
$c = gt($a, $b);           # using default value of swap=0
$c = gt($a, $b, $swap);    # overriding default
gt($a, $b, $c, $swap);     # all arguments given
$c = $a->gt($b);           # method call
$c = $a->gt($b, $swap);
$a->gt($b, $c, $swap);
$a->inplace->gt($b,$swap); # can be used inplace
gt($a->inplace,$b,$swap);

the binary > (greater than) operation

Broadcasts over its inputs.

gt processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

lt

Signature: (a(); b(); [o]c(); int $swap)
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble)
$c = $a < $b;              # overloads the Perl '<' operator
$c = lt($a, $b);           # using default value of swap=0
$c = lt($a, $b, $swap);    # overriding default
lt($a, $b, $c, $swap);     # all arguments given
$c = $a->lt($b);           # method call
$c = $a->lt($b, $swap);
$a->lt($b, $c, $swap);
$a->inplace->lt($b,$swap); # can be used inplace
lt($a->inplace,$b,$swap);

the binary < (less than) operation

Broadcasts over its inputs.

lt processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

le

Signature: (a(); b(); [o]c(); int $swap)
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble)
$c = $a <= $b;             # overloads the Perl '<=' operator
$c = le($a, $b);           # using default value of swap=0
$c = le($a, $b, $swap);    # overriding default
le($a, $b, $c, $swap);     # all arguments given
$c = $a->le($b);           # method call
$c = $a->le($b, $swap);
$a->le($b, $c, $swap);
$a->inplace->le($b,$swap); # can be used inplace
le($a->inplace,$b,$swap);

the binary <= (less equal) operation

Broadcasts over its inputs.

le processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

ge

Signature: (a(); b(); [o]c(); int $swap)
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble)
$c = $a >= $b;             # overloads the Perl '>=' operator
$c = ge($a, $b);           # using default value of swap=0
$c = ge($a, $b, $swap);    # overriding default
ge($a, $b, $c, $swap);     # all arguments given
$c = $a->ge($b);           # method call
$c = $a->ge($b, $swap);
$a->ge($b, $c, $swap);
$a->inplace->ge($b,$swap); # can be used inplace
ge($a->inplace,$b,$swap);

the binary >= (greater equal) operation

Broadcasts over its inputs.

ge processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

eq

Signature: (a(); b(); [o]c(); int $swap)
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble cfloat cdouble cldouble)
$c = $a == $b;             # overloads the Perl '==' operator
$c = eq($a, $b);           # using default value of swap=0
$c = eq($a, $b, $swap);    # overriding default
eq($a, $b, $c, $swap);     # all arguments given
$c = $a->eq($b);           # method call
$c = $a->eq($b, $swap);
$a->eq($b, $c, $swap);
$a->inplace->eq($b,$swap); # can be used inplace
eq($a->inplace,$b,$swap);

binary equal to operation (==)

Broadcasts over its inputs.

eq processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

ne

Signature: (a(); b(); [o]c(); int $swap)
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble cfloat cdouble cldouble)
$c = $a != $b;             # overloads the Perl '!=' operator
$c = ne($a, $b);           # using default value of swap=0
$c = ne($a, $b, $swap);    # overriding default
ne($a, $b, $c, $swap);     # all arguments given
$c = $a->ne($b);           # method call
$c = $a->ne($b, $swap);
$a->ne($b, $c, $swap);
$a->inplace->ne($b,$swap); # can be used inplace
ne($a->inplace,$b,$swap);

binary not equal to operation (!=)

Broadcasts over its inputs.

ne processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

shiftleft

Signature: (a(); b(); [o]c(); int $swap)
Types: (sbyte byte short ushort long ulong indx ulonglong longlong)
$c = $a << $b;                    # overloads the Perl '<<' operator
$a <<= $b;
$c = shiftleft($a, $b);           # using default value of swap=0
$c = shiftleft($a, $b, $swap);    # overriding default
shiftleft($a, $b, $c, $swap);     # all arguments given
$c = $a->shiftleft($b);           # method call
$c = $a->shiftleft($b, $swap);
$a->shiftleft($b, $c, $swap);
$a->inplace->shiftleft($b,$swap); # can be used inplace
shiftleft($a->inplace,$b,$swap);

bitwise leftshift $a by $b

Broadcasts over its inputs.

shiftleft processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

shiftright

Signature: (a(); b(); [o]c(); int $swap)
Types: (sbyte byte short ushort long ulong indx ulonglong longlong)
$c = $a >> $b;                     # overloads the Perl '>>' operator
$a >>= $b;
$c = shiftright($a, $b);           # using default value of swap=0
$c = shiftright($a, $b, $swap);    # overriding default
shiftright($a, $b, $c, $swap);     # all arguments given
$c = $a->shiftright($b);           # method call
$c = $a->shiftright($b, $swap);
$a->shiftright($b, $c, $swap);
$a->inplace->shiftright($b,$swap); # can be used inplace
shiftright($a->inplace,$b,$swap);

bitwise rightshift $a by $b

Broadcasts over its inputs.

shiftright processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

or2

Signature: (a(); b(); [o]c(); int $swap)
Types: (sbyte byte short ushort long ulong indx ulonglong longlong)
$c = $a | $b;               # overloads the Perl '|' operator
$a |= $b;
$c = or2($a, $b);           # using default value of swap=0
$c = or2($a, $b, $swap);    # overriding default
or2($a, $b, $c, $swap);     # all arguments given
$c = $a->or2($b);           # method call
$c = $a->or2($b, $swap);
$a->or2($b, $c, $swap);
$a->inplace->or2($b,$swap); # can be used inplace
or2($a->inplace,$b,$swap);

bitwise or of two ndarrays

Broadcasts over its inputs.

or2 processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

and2

Signature: (a(); b(); [o]c(); int $swap)
Types: (sbyte byte short ushort long ulong indx ulonglong longlong)
$c = $a & $b;                # overloads the Perl '&' operator
$a &= $b;
$c = and2($a, $b);           # using default value of swap=0
$c = and2($a, $b, $swap);    # overriding default
and2($a, $b, $c, $swap);     # all arguments given
$c = $a->and2($b);           # method call
$c = $a->and2($b, $swap);
$a->and2($b, $c, $swap);
$a->inplace->and2($b,$swap); # can be used inplace
and2($a->inplace,$b,$swap);

bitwise and of two ndarrays

Broadcasts over its inputs.

and2 processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

xor

Signature: (a(); b(); [o]c(); int $swap)
Types: (sbyte byte short ushort long ulong indx ulonglong longlong)
$c = $a ^ $b;               # overloads the Perl '^' operator
$a ^= $b;
$c = xor($a, $b);           # using default value of swap=0
$c = xor($a, $b, $swap);    # overriding default
xor($a, $b, $c, $swap);     # all arguments given
$c = $a->xor($b);           # method call
$c = $a->xor($b, $swap);
$a->xor($b, $c, $swap);
$a->inplace->xor($b,$swap); # can be used inplace
xor($a->inplace,$b,$swap);

bitwise exclusive or of two ndarrays

Broadcasts over its inputs.

xor processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

bitnot

Signature: (a(); [o]b())
Types: (sbyte byte short ushort long ulong indx ulonglong longlong)
$b = ~$a;            # overloads the Perl '~' operator
$b = bitnot($a);
bitnot($a, $b);      # all arguments given
$b = $a->bitnot;     # method call
$a->bitnot($b);
$a->inplace->bitnot; # can be used inplace
bitnot($a->inplace);

unary bitwise negation

Broadcasts over its inputs.

bitnot processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

power

Signature: (a(); b(); [o]c(); int $swap)
Types: (cfloat cdouble cldouble float ldouble double)
$c = $a ** $b;                # overloads the Perl '**' operator
$a **= $b;
$c = power($a, $b);           # using default value of swap=0
$c = power($a, $b, $swap);    # overriding default
power($a, $b, $c, $swap);     # all arguments given
$c = $a->power($b);           # method call
$c = $a->power($b, $swap);
$a->power($b, $c, $swap);
$a->inplace->power($b,$swap); # can be used inplace
power($a->inplace,$b,$swap);

raise ndarray $a to the power $b

Broadcasts over its inputs.

power processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

atan2

Signature: (a(); b(); [o]c(); int $swap)
Types: (float ldouble double)
$c = $a atan2 $b;             # overloads the Perl 'atan2' operator
$c = atan2($a, $b);           # using default value of swap=0
$c = atan2($a, $b, $swap);    # overriding default
atan2($a, $b, $c, $swap);     # all arguments given
$c = $a->atan2($b);           # method call
$c = $a->atan2($b, $swap);
$a->atan2($b, $c, $swap);
$a->inplace->atan2($b,$swap); # can be used inplace
atan2($a->inplace,$b,$swap);

elementwise atan2 of two ndarrays

Broadcasts over its inputs.

atan2 processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

modulo

Signature: (a(); b(); [o]c(); int $swap)
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble)
$c = $a % $b;                  # overloads the Perl '%' operator
$a %= $b;
$c = modulo($a, $b);           # using default value of swap=0
$c = modulo($a, $b, $swap);    # overriding default
modulo($a, $b, $c, $swap);     # all arguments given
$c = $a->modulo($b);           # method call
$c = $a->modulo($b, $swap);
$a->modulo($b, $c, $swap);
$a->inplace->modulo($b,$swap); # can be used inplace
modulo($a->inplace,$b,$swap);

elementwise modulo operation

Broadcasts over its inputs.

modulo processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

spaceship

Signature: (a(); b(); [o]c(); int $swap)
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble)
$c = $a <=> $b;                   # overloads the Perl '<=>' operator
$c = spaceship($a, $b);           # using default value of swap=0
$c = spaceship($a, $b, $swap);    # overriding default
spaceship($a, $b, $c, $swap);     # all arguments given
$c = $a->spaceship($b);           # method call
$c = $a->spaceship($b, $swap);
$a->spaceship($b, $c, $swap);
$a->inplace->spaceship($b,$swap); # can be used inplace
spaceship($a->inplace,$b,$swap);

elementwise "<=>" operation

Broadcasts over its inputs.

spaceship processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

sqrt

Signature: (a(); [o]b())
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble cfloat cdouble cldouble)
$b = sqrt $a;      # overloads the Perl 'sqrt' operator
$b = sqrt($a);
sqrt($a, $b);      # all arguments given
$b = $a->sqrt;     # method call
$a->sqrt($b);
$a->inplace->sqrt; # can be used inplace
sqrt($a->inplace);

elementwise square root

Broadcasts over its inputs.

sqrt processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

sin

Signature: (a(); [o]b())
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble cfloat cdouble cldouble)
$b = sin $a;      # overloads the Perl 'sin' operator
$b = sin($a);
sin($a, $b);      # all arguments given
$b = $a->sin;     # method call
$a->sin($b);
$a->inplace->sin; # can be used inplace
sin($a->inplace);

the sin function

Broadcasts over its inputs.

sin processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

cos

Signature: (a(); [o]b())
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble cfloat cdouble cldouble)
$b = cos $a;      # overloads the Perl 'cos' operator
$b = cos($a);
cos($a, $b);      # all arguments given
$b = $a->cos;     # method call
$a->cos($b);
$a->inplace->cos; # can be used inplace
cos($a->inplace);

the cos function

Broadcasts over its inputs.

cos processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

not

Signature: (a(); [o]b())
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble)
$b = !$a;         # overloads the Perl '!' operator
$b = not($a);
not($a, $b);      # all arguments given
$b = $a->not;     # method call
$a->not($b);
$a->inplace->not; # can be used inplace
not($a->inplace);

the elementwise not operation

Broadcasts over its inputs.

not processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

exp

Signature: (a(); [o]b())
Types: (cfloat cdouble cldouble float ldouble double)
$b = exp $a;      # overloads the Perl 'exp' operator
$b = exp($a);
exp($a, $b);      # all arguments given
$b = $a->exp;     # method call
$a->exp($b);
$a->inplace->exp; # can be used inplace
exp($a->inplace);

the exponential function

Broadcasts over its inputs.

exp processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

log

Signature: (a(); [o]b())
Types: (cfloat cdouble cldouble float ldouble double)
$b = log $a;      # overloads the Perl 'log' operator
$b = log($a);
log($a, $b);      # all arguments given
$b = $a->log;     # method call
$a->log($b);
$a->inplace->log; # can be used inplace
log($a->inplace);

the natural logarithm

Broadcasts over its inputs.

log processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

re

Signature: (complexv(); real [o]b())
Types: (cfloat cdouble cldouble)
$b = re($complexv);
re($complexv, $b);  # all arguments given
$b = $complexv->re; # method call
$complexv->re($b);

Returns the real part of a complex number. Flows data back & forth.

Broadcasts over its inputs. Creates data-flow back and forth by default.

re processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

im

Signature: (complexv(); real [o]b())
Types: (cfloat cdouble cldouble)
$b = im($complexv);
im($complexv, $b);  # all arguments given
$b = $complexv->im; # method call
$complexv->im($b);

Returns the imaginary part of a complex number. Flows data back & forth.

Broadcasts over its inputs. Creates data-flow back and forth by default.

im processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

_cabs

Signature: (complexv(); real [o]b())
Types: (cfloat cdouble cldouble)
$b = _cabs($complexv);
_cabs($complexv, $b);  # all arguments given
$b = $complexv->_cabs; # method call
$complexv->_cabs($b);

Returns the absolute (length) of a complex number.

Broadcasts over its inputs.

_cabs processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

log10

Signature: (a(); [o]b())
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble cfloat cdouble cldouble)
$b = log10($a);
log10($a, $b);      # all arguments given
$b = $a->log10;     # method call
$a->log10($b);
$a->inplace->log10; # can be used inplace
log10($a->inplace);

the base 10 logarithm

Broadcasts over its inputs.

log10 processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

assgn

Signature: (a(); [o]b())
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble cfloat cdouble cldouble)
$b = assgn($a);
assgn($a, $b);  # all arguments given
$b = $a->assgn; # method call
$a->assgn($b);

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

Broadcasts over its inputs.

assgn processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

carg

Signature: (!real complexv(); real [o]b())
Types: (cfloat cdouble cldouble)
$b = carg($complexv);
carg($complexv, $b);  # all arguments given
$b = $complexv->carg; # method call
$complexv->carg($b);

Returns the polar angle of a complex number.

Broadcasts over its inputs.

carg processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

conj

Signature: (complexv();  [o]b())
Types: (cfloat cdouble cldouble)
$b = conj($complexv);
conj($complexv, $b);      # all arguments given
$b = $complexv->conj;     # method call
$complexv->conj($b);
$complexv->inplace->conj; # can be used inplace
conj($complexv->inplace);

complex conjugate.

Broadcasts over its inputs.

conj processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

czip

Signature: (!complex r(); !complex i(); complex [o]c())
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble)
$c = czip($r, $i);
czip($r, $i, $c);  # all arguments given
$c = $r->czip($i); # method call
$r->czip($i, $c);

convert real, imaginary to native complex, (sort of) like LISP zip function. Will add the r ndarray to "i" times the i ndarray. Only takes real ndarrays as input.

Broadcasts over its inputs.

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

ipow

Signature: (a(); longlong b(); [o] ans())
Types: (ulonglong longlong float ldouble cfloat cdouble cldouble
  double)
$ans = ipow($a, $b);
ipow($a, $b, $ans);    # all arguments given
$ans = $a->ipow($b);   # method call
$a->ipow($b, $ans);
$a->inplace->ipow($b); # can be used inplace
ipow($a->inplace,$b);

raise ndarray $a to integer power $b

Algorithm from Wikipedia

Broadcasts over its inputs.

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

abs

Returns the absolute value of a number.

abs2

Signature: (a(); real [o]b())
Types: (sbyte byte short ushort long ulong indx ulonglong longlong
  float double ldouble cfloat cdouble cldouble)
$b = abs2($a);
abs2($a, $b);  # all arguments given
$b = $a->abs2; # method call
$a->abs2($b);

Returns the square of the absolute value of a number.

Broadcasts over its inputs.

abs2 processes bad values. It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays.

r2C

Signature: (r(); complex [o]c())
Types: (float ldouble cfloat cdouble cldouble double)
$c = r2C($r);
r2C($r, $c);  # all arguments given
$c = $r->r2C; # method call
$r->r2C($c);

convert real to native complex, with an imaginary part of zero

Broadcasts over its inputs.

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

i2C

Signature: (i(); complex [o]c())
Types: (float ldouble cfloat cdouble cldouble double)
$c = i2C($i);
i2C($i, $c);  # all arguments given
$c = $i->i2C; # method call
$i->i2C($c);

convert imaginary to native complex, with a real part of zero

Broadcasts over its inputs.

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

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).