Ops.pm (PDL-2.078) | : | Ops.pm (PDL-2.079) | ||
---|---|---|---|---|
skipping to change at line 96 | skipping to change at line 96 | |||
$x->inplace->plus($y); # modify $x inplace | $x->inplace->plus($y); # modify $x inplace | |||
It can be made to work inplace with the C<< $x->inplace >> syntax. | It can be made to work inplace with the C<< $x->inplace >> syntax. | |||
This function is used to overload the binary C<+> operator. | This function is used to overload the binary C<+> operator. | |||
As of 2.065, when calling this function explicitly you can omit | As of 2.065, when calling this function explicitly you can omit | |||
the third argument (see second example), or supply it (see third one). | the third argument (see second example), or supply it (see third one). | |||
=for bad | =for bad | |||
plus processes bad values. | plus processes bad values. | |||
The state of the bad-value flag of the output ndarrays is unknown. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 123 "Ops.pm" | #line 123 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*plus = \&PDL::plus; | *plus = \&PDL::plus; | |||
#line 130 "Ops.pm" | #line 130 "Ops.pm" | |||
#line 133 "ops.pd" | #line 133 "ops.pd" | |||
skipping to change at line 151 | skipping to change at line 151 | |||
$x->inplace->mult($y); # modify $x inplace | $x->inplace->mult($y); # modify $x inplace | |||
It can be made to work inplace with the C<< $x->inplace >> syntax. | It can be made to work inplace with the C<< $x->inplace >> syntax. | |||
This function is used to overload the binary C<*> operator. | This function is used to overload the binary C<*> operator. | |||
As of 2.065, when calling this function explicitly you can omit | As of 2.065, when calling this function explicitly you can omit | |||
the third argument (see second example), or supply it (see third one). | the third argument (see second example), or supply it (see third one). | |||
=for bad | =for bad | |||
mult processes bad values. | mult processes bad values. | |||
The state of the bad-value flag of the output ndarrays is unknown. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 189 "Ops.pm" | #line 189 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*mult = \&PDL::mult; | *mult = \&PDL::mult; | |||
#line 196 "Ops.pm" | #line 196 "Ops.pm" | |||
#line 133 "ops.pd" | #line 133 "ops.pd" | |||
skipping to change at line 206 | skipping to change at line 206 | |||
$x->inplace->minus($y); # modify $x inplace | $x->inplace->minus($y); # modify $x inplace | |||
It can be made to work inplace with the C<< $x->inplace >> syntax. | It can be made to work inplace with the C<< $x->inplace >> syntax. | |||
This function is used to overload the binary C<-> operator. | This function is used to overload the binary C<-> operator. | |||
As of 2.065, when calling this function explicitly you can omit | As of 2.065, when calling this function explicitly you can omit | |||
the third argument (see second example), or supply it (see third one). | the third argument (see second example), or supply it (see third one). | |||
=for bad | =for bad | |||
minus processes bad values. | minus processes bad values. | |||
The state of the bad-value flag of the output ndarrays is unknown. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 255 "Ops.pm" | #line 255 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*minus = \&PDL::minus; | *minus = \&PDL::minus; | |||
#line 262 "Ops.pm" | #line 262 "Ops.pm" | |||
#line 133 "ops.pd" | #line 133 "ops.pd" | |||
skipping to change at line 261 | skipping to change at line 261 | |||
$x->inplace->divide($y); # modify $x inplace | $x->inplace->divide($y); # modify $x inplace | |||
It can be made to work inplace with the C<< $x->inplace >> syntax. | It can be made to work inplace with the C<< $x->inplace >> syntax. | |||
This function is used to overload the binary C</> operator. | This function is used to overload the binary C</> operator. | |||
As of 2.065, when calling this function explicitly you can omit | As of 2.065, when calling this function explicitly you can omit | |||
the third argument (see second example), or supply it (see third one). | the third argument (see second example), or supply it (see third one). | |||
=for bad | =for bad | |||
divide processes bad values. | divide processes bad values. | |||
The state of the bad-value flag of the output ndarrays is unknown. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 321 "Ops.pm" | #line 321 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*divide = \&PDL::divide; | *divide = \&PDL::divide; | |||
#line 328 "Ops.pm" | #line 328 "Ops.pm" | |||
#line 133 "ops.pd" | #line 133 "ops.pd" | |||
skipping to change at line 312 | skipping to change at line 312 | |||
$x->inplace->gt($y); # modify $x inplace | $x->inplace->gt($y); # modify $x inplace | |||
It can be made to work inplace with the C<< $x->inplace >> syntax. | It can be made to work inplace with the C<< $x->inplace >> syntax. | |||
This function is used to overload the binary C<E<gt>> operator. | This function is used to overload the binary C<E<gt>> operator. | |||
As of 2.065, when calling this function explicitly you can omit | As of 2.065, when calling this function explicitly you can omit | |||
the third argument (see second example), or supply it (see third one). | the third argument (see second example), or supply it (see third one). | |||
=for bad | =for bad | |||
gt processes bad values. | gt processes bad values. | |||
The state of the bad-value flag of the output ndarrays is unknown. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 383 "Ops.pm" | #line 383 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*gt = \&PDL::gt; | *gt = \&PDL::gt; | |||
#line 390 "Ops.pm" | #line 390 "Ops.pm" | |||
#line 133 "ops.pd" | #line 133 "ops.pd" | |||
skipping to change at line 363 | skipping to change at line 363 | |||
$x->inplace->lt($y); # modify $x inplace | $x->inplace->lt($y); # modify $x inplace | |||
It can be made to work inplace with the C<< $x->inplace >> syntax. | It can be made to work inplace with the C<< $x->inplace >> syntax. | |||
This function is used to overload the binary C<E<lt>> operator. | This function is used to overload the binary C<E<lt>> operator. | |||
As of 2.065, when calling this function explicitly you can omit | As of 2.065, when calling this function explicitly you can omit | |||
the third argument (see second example), or supply it (see third one). | the third argument (see second example), or supply it (see third one). | |||
=for bad | =for bad | |||
lt processes bad values. | lt processes bad values. | |||
The state of the bad-value flag of the output ndarrays is unknown. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 445 "Ops.pm" | #line 445 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*lt = \&PDL::lt; | *lt = \&PDL::lt; | |||
#line 452 "Ops.pm" | #line 452 "Ops.pm" | |||
#line 133 "ops.pd" | #line 133 "ops.pd" | |||
skipping to change at line 414 | skipping to change at line 414 | |||
$x->inplace->le($y); # modify $x inplace | $x->inplace->le($y); # modify $x inplace | |||
It can be made to work inplace with the C<< $x->inplace >> syntax. | It can be made to work inplace with the C<< $x->inplace >> syntax. | |||
This function is used to overload the binary C<E<lt>=> operator. | This function is used to overload the binary C<E<lt>=> operator. | |||
As of 2.065, when calling this function explicitly you can omit | As of 2.065, when calling this function explicitly you can omit | |||
the third argument (see second example), or supply it (see third one). | the third argument (see second example), or supply it (see third one). | |||
=for bad | =for bad | |||
le processes bad values. | le processes bad values. | |||
The state of the bad-value flag of the output ndarrays is unknown. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 507 "Ops.pm" | #line 507 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*le = \&PDL::le; | *le = \&PDL::le; | |||
#line 514 "Ops.pm" | #line 514 "Ops.pm" | |||
#line 133 "ops.pd" | #line 133 "ops.pd" | |||
skipping to change at line 465 | skipping to change at line 465 | |||
$x->inplace->ge($y); # modify $x inplace | $x->inplace->ge($y); # modify $x inplace | |||
It can be made to work inplace with the C<< $x->inplace >> syntax. | It can be made to work inplace with the C<< $x->inplace >> syntax. | |||
This function is used to overload the binary C<E<gt>=> operator. | This function is used to overload the binary C<E<gt>=> operator. | |||
As of 2.065, when calling this function explicitly you can omit | As of 2.065, when calling this function explicitly you can omit | |||
the third argument (see second example), or supply it (see third one). | the third argument (see second example), or supply it (see third one). | |||
=for bad | =for bad | |||
ge processes bad values. | ge processes bad values. | |||
The state of the bad-value flag of the output ndarrays is unknown. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 569 "Ops.pm" | #line 569 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*ge = \&PDL::ge; | *ge = \&PDL::ge; | |||
#line 576 "Ops.pm" | #line 576 "Ops.pm" | |||
#line 133 "ops.pd" | #line 133 "ops.pd" | |||
skipping to change at line 516 | skipping to change at line 516 | |||
$x->inplace->eq($y); # modify $x inplace | $x->inplace->eq($y); # modify $x inplace | |||
It can be made to work inplace with the C<< $x->inplace >> syntax. | It can be made to work inplace with the C<< $x->inplace >> syntax. | |||
This function is used to overload the binary C<==> operator. | This function is used to overload the binary C<==> operator. | |||
As of 2.065, when calling this function explicitly you can omit | As of 2.065, when calling this function explicitly you can omit | |||
the third argument (see second example), or supply it (see third one). | the third argument (see second example), or supply it (see third one). | |||
=for bad | =for bad | |||
eq processes bad values. | eq processes bad values. | |||
The state of the bad-value flag of the output ndarrays is unknown. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 631 "Ops.pm" | #line 631 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*eq = \&PDL::eq; | *eq = \&PDL::eq; | |||
#line 638 "Ops.pm" | #line 638 "Ops.pm" | |||
#line 133 "ops.pd" | #line 133 "ops.pd" | |||
skipping to change at line 567 | skipping to change at line 567 | |||
$x->inplace->ne($y); # modify $x inplace | $x->inplace->ne($y); # modify $x inplace | |||
It can be made to work inplace with the C<< $x->inplace >> syntax. | It can be made to work inplace with the C<< $x->inplace >> syntax. | |||
This function is used to overload the binary C<!=> operator. | This function is used to overload the binary C<!=> operator. | |||
As of 2.065, when calling this function explicitly you can omit | As of 2.065, when calling this function explicitly you can omit | |||
the third argument (see second example), or supply it (see third one). | the third argument (see second example), or supply it (see third one). | |||
=for bad | =for bad | |||
ne processes bad values. | ne processes bad values. | |||
The state of the bad-value flag of the output ndarrays is unknown. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 693 "Ops.pm" | #line 693 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*ne = \&PDL::ne; | *ne = \&PDL::ne; | |||
#line 700 "Ops.pm" | #line 700 "Ops.pm" | |||
#line 133 "ops.pd" | #line 133 "ops.pd" | |||
skipping to change at line 622 | skipping to change at line 622 | |||
$x->inplace->shiftleft($y); # modify $x inplace | $x->inplace->shiftleft($y); # modify $x inplace | |||
It can be made to work inplace with the C<< $x->inplace >> syntax. | It can be made to work inplace with the C<< $x->inplace >> syntax. | |||
This function is used to overload the binary C<E<lt>E<lt>> operator. | This function is used to overload the binary C<E<lt>E<lt>> operator. | |||
As of 2.065, when calling this function explicitly you can omit | As of 2.065, when calling this function explicitly you can omit | |||
the third argument (see second example), or supply it (see third one). | the third argument (see second example), or supply it (see third one). | |||
=for bad | =for bad | |||
shiftleft processes bad values. | shiftleft processes bad values. | |||
The state of the bad-value flag of the output ndarrays is unknown. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 759 "Ops.pm" | #line 759 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*shiftleft = \&PDL::shiftleft; | *shiftleft = \&PDL::shiftleft; | |||
#line 766 "Ops.pm" | #line 766 "Ops.pm" | |||
#line 133 "ops.pd" | #line 133 "ops.pd" | |||
skipping to change at line 677 | skipping to change at line 677 | |||
$x->inplace->shiftright($y); # modify $x inplace | $x->inplace->shiftright($y); # modify $x inplace | |||
It can be made to work inplace with the C<< $x->inplace >> syntax. | It can be made to work inplace with the C<< $x->inplace >> syntax. | |||
This function is used to overload the binary C<E<gt>E<gt>> operator. | This function is used to overload the binary C<E<gt>E<gt>> operator. | |||
As of 2.065, when calling this function explicitly you can omit | As of 2.065, when calling this function explicitly you can omit | |||
the third argument (see second example), or supply it (see third one). | the third argument (see second example), or supply it (see third one). | |||
=for bad | =for bad | |||
shiftright processes bad values. | shiftright processes bad values. | |||
The state of the bad-value flag of the output ndarrays is unknown. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 825 "Ops.pm" | #line 825 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*shiftright = \&PDL::shiftright; | *shiftright = \&PDL::shiftright; | |||
#line 832 "Ops.pm" | #line 832 "Ops.pm" | |||
#line 133 "ops.pd" | #line 133 "ops.pd" | |||
skipping to change at line 732 | skipping to change at line 732 | |||
$x->inplace->or2($y); # modify $x inplace | $x->inplace->or2($y); # modify $x inplace | |||
It can be made to work inplace with the C<< $x->inplace >> syntax. | It can be made to work inplace with the C<< $x->inplace >> syntax. | |||
This function is used to overload the binary C<|> operator. | This function is used to overload the binary C<|> operator. | |||
As of 2.065, when calling this function explicitly you can omit | As of 2.065, when calling this function explicitly you can omit | |||
the third argument (see second example), or supply it (see third one). | the third argument (see second example), or supply it (see third one). | |||
=for bad | =for bad | |||
or2 processes bad values. | or2 processes bad values. | |||
The state of the bad-value flag of the output ndarrays is unknown. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 891 "Ops.pm" | #line 891 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*or2 = \&PDL::or2; | *or2 = \&PDL::or2; | |||
#line 898 "Ops.pm" | #line 898 "Ops.pm" | |||
#line 133 "ops.pd" | #line 133 "ops.pd" | |||
skipping to change at line 787 | skipping to change at line 787 | |||
$x->inplace->and2($y); # modify $x inplace | $x->inplace->and2($y); # modify $x inplace | |||
It can be made to work inplace with the C<< $x->inplace >> syntax. | It can be made to work inplace with the C<< $x->inplace >> syntax. | |||
This function is used to overload the binary C<&> operator. | This function is used to overload the binary C<&> operator. | |||
As of 2.065, when calling this function explicitly you can omit | As of 2.065, when calling this function explicitly you can omit | |||
the third argument (see second example), or supply it (see third one). | the third argument (see second example), or supply it (see third one). | |||
=for bad | =for bad | |||
and2 processes bad values. | and2 processes bad values. | |||
The state of the bad-value flag of the output ndarrays is unknown. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 957 "Ops.pm" | #line 957 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*and2 = \&PDL::and2; | *and2 = \&PDL::and2; | |||
#line 964 "Ops.pm" | #line 964 "Ops.pm" | |||
#line 133 "ops.pd" | #line 133 "ops.pd" | |||
skipping to change at line 842 | skipping to change at line 842 | |||
$x->inplace->xor($y); # modify $x inplace | $x->inplace->xor($y); # modify $x inplace | |||
It can be made to work inplace with the C<< $x->inplace >> syntax. | It can be made to work inplace with the C<< $x->inplace >> syntax. | |||
This function is used to overload the binary C<^> operator. | This function is used to overload the binary C<^> operator. | |||
As of 2.065, when calling this function explicitly you can omit | As of 2.065, when calling this function explicitly you can omit | |||
the third argument (see second example), or supply it (see third one). | the third argument (see second example), or supply it (see third one). | |||
=for bad | =for bad | |||
xor processes bad values. | xor processes bad values. | |||
The state of the bad-value flag of the output ndarrays is unknown. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 1023 "Ops.pm" | #line 1023 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*xor = \&PDL::xor; | *xor = \&PDL::xor; | |||
#line 1030 "Ops.pm" | #line 1030 "Ops.pm" | |||
#line 315 "ops.pd" | #line 309 "ops.pd" | |||
BEGIN { $OVERLOADS{'~'} = sub { PDL::bitnot($_[0]) } } | BEGIN { $OVERLOADS{'~'} = sub { PDL::bitnot($_[0]) } } | |||
#line 1037 "Ops.pm" | #line 1037 "Ops.pm" | |||
#line 1058 "../../blib/lib/PDL/PP.pm" | #line 1058 "../../blib/lib/PDL/PP.pm" | |||
=head2 bitnot | =head2 bitnot | |||
=for sig | =for sig | |||
skipping to change at line 890 | skipping to change at line 890 | |||
It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 1072 "Ops.pm" | #line 1072 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*bitnot = \&PDL::bitnot; | *bitnot = \&PDL::bitnot; | |||
#line 1079 "Ops.pm" | #line 1079 "Ops.pm" | |||
#line 245 "ops.pd" | #line 242 "ops.pd" | |||
{ | { | |||
my ($foo, $overload_sub); | my ($foo, $overload_sub); | |||
BEGIN { $OVERLOADS{'**'} = $overload_sub = sub(;@) { | BEGIN { $OVERLOADS{'**'} = $overload_sub = sub(;@) { | |||
return PDL::power(@_) unless ref $_[1] | return PDL::power(@_) unless ref $_[1] | |||
&& (ref $_[1] ne 'PDL') | && (ref $_[1] ne 'PDL') | |||
&& defined($foo = overload::Method($_[1], '**')) | && defined($foo = overload::Method($_[1], '**')) | |||
&& $foo != $overload_sub; # recursion guard | && $foo != $overload_sub; # recursion guard | |||
$foo->($_[1], $_[0], !$_[2]); | $foo->($_[1], $_[0], !$_[2]); | |||
}; } | }; } | |||
skipping to change at line 935 | skipping to change at line 935 | |||
It can be made to work inplace with the C<$x-E<gt>inplace> syntax. | It can be made to work inplace with the C<$x-E<gt>inplace> syntax. | |||
This function is used to overload the binary C<**> function. | This function is used to overload the binary C<**> function. | |||
Note that when calling this function explicitly you need to supply | Note that when calling this function explicitly you need to supply | |||
a third argument that should generally be zero (see first example). | a third argument that should generally be zero (see first example). | |||
This restriction is expected to go away in future releases. | This restriction is expected to go away in future releases. | |||
=for bad | =for bad | |||
power processes bad values. | power processes bad values. | |||
The state of the bad-value flag of the output ndarrays is unknown. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 1138 "Ops.pm" | #line 1138 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*power = \&PDL::power; | *power = \&PDL::power; | |||
#line 1145 "Ops.pm" | #line 1145 "Ops.pm" | |||
#line 245 "ops.pd" | #line 242 "ops.pd" | |||
{ | { | |||
my ($foo, $overload_sub); | my ($foo, $overload_sub); | |||
BEGIN { $OVERLOADS{'atan2'} = $overload_sub = sub(;@) { | BEGIN { $OVERLOADS{'atan2'} = $overload_sub = sub(;@) { | |||
return PDL::atan2(@_) unless ref $_[1] | return PDL::atan2(@_) unless ref $_[1] | |||
&& (ref $_[1] ne 'PDL') | && (ref $_[1] ne 'PDL') | |||
&& defined($foo = overload::Method($_[1], 'atan2')) | && defined($foo = overload::Method($_[1], 'atan2')) | |||
&& $foo != $overload_sub; # recursion guard | && $foo != $overload_sub; # recursion guard | |||
$foo->($_[1], $_[0], !$_[2]); | $foo->($_[1], $_[0], !$_[2]); | |||
}; } | }; } | |||
skipping to change at line 986 | skipping to change at line 986 | |||
It can be made to work inplace with the C<$x-E<gt>inplace> syntax. | It can be made to work inplace with the C<$x-E<gt>inplace> syntax. | |||
This function is used to overload the binary C<atan2> function. | This function is used to overload the binary C<atan2> function. | |||
Note that when calling this function explicitly you need to supply | Note that when calling this function explicitly you need to supply | |||
a third argument that should generally be zero (see first example). | a third argument that should generally be zero (see first example). | |||
This restriction is expected to go away in future releases. | This restriction is expected to go away in future releases. | |||
=for bad | =for bad | |||
atan2 processes bad values. | atan2 processes bad values. | |||
The state of the bad-value flag of the output ndarrays is unknown. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 1200 "Ops.pm" | #line 1200 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*atan2 = \&PDL::atan2; | *atan2 = \&PDL::atan2; | |||
#line 1207 "Ops.pm" | #line 1207 "Ops.pm" | |||
#line 245 "ops.pd" | #line 242 "ops.pd" | |||
{ | { | |||
my ($foo, $overload_sub); | my ($foo, $overload_sub); | |||
BEGIN { $OVERLOADS{'%'} = $overload_sub = sub(;@) { | BEGIN { $OVERLOADS{'%'} = $overload_sub = sub(;@) { | |||
return PDL::modulo(@_) unless ref $_[1] | return PDL::modulo(@_) unless ref $_[1] | |||
&& (ref $_[1] ne 'PDL') | && (ref $_[1] ne 'PDL') | |||
&& defined($foo = overload::Method($_[1], '%')) | && defined($foo = overload::Method($_[1], '%')) | |||
&& $foo != $overload_sub; # recursion guard | && $foo != $overload_sub; # recursion guard | |||
$foo->($_[1], $_[0], !$_[2]); | $foo->($_[1], $_[0], !$_[2]); | |||
}; } | }; } | |||
skipping to change at line 1041 | skipping to change at line 1041 | |||
It can be made to work inplace with the C<$x-E<gt>inplace> syntax. | It can be made to work inplace with the C<$x-E<gt>inplace> syntax. | |||
This function is used to overload the binary C<%> function. | This function is used to overload the binary C<%> function. | |||
Note that when calling this function explicitly you need to supply | Note that when calling this function explicitly you need to supply | |||
a third argument that should generally be zero (see first example). | a third argument that should generally be zero (see first example). | |||
This restriction is expected to go away in future releases. | This restriction is expected to go away in future releases. | |||
=for bad | =for bad | |||
modulo processes bad values. | modulo processes bad values. | |||
The state of the bad-value flag of the output ndarrays is unknown. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 1266 "Ops.pm" | #line 1266 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*modulo = \&PDL::modulo; | *modulo = \&PDL::modulo; | |||
#line 1273 "Ops.pm" | #line 1273 "Ops.pm" | |||
#line 245 "ops.pd" | #line 242 "ops.pd" | |||
{ | { | |||
my ($foo, $overload_sub); | my ($foo, $overload_sub); | |||
BEGIN { $OVERLOADS{'<=>'} = $overload_sub = sub(;@) { | BEGIN { $OVERLOADS{'<=>'} = $overload_sub = sub(;@) { | |||
return PDL::spaceship(@_) unless ref $_[1] | return PDL::spaceship(@_) unless ref $_[1] | |||
&& (ref $_[1] ne 'PDL') | && (ref $_[1] ne 'PDL') | |||
&& defined($foo = overload::Method($_[1], '<=>')) | && defined($foo = overload::Method($_[1], '<=>')) | |||
&& $foo != $overload_sub; # recursion guard | && $foo != $overload_sub; # recursion guard | |||
$foo->($_[1], $_[0], !$_[2]); | $foo->($_[1], $_[0], !$_[2]); | |||
}; } | }; } | |||
skipping to change at line 1092 | skipping to change at line 1092 | |||
It can be made to work inplace with the C<$x-E<gt>inplace> syntax. | It can be made to work inplace with the C<$x-E<gt>inplace> syntax. | |||
This function is used to overload the binary C<E<lt>=E<gt>> function. | This function is used to overload the binary C<E<lt>=E<gt>> function. | |||
Note that when calling this function explicitly you need to supply | Note that when calling this function explicitly you need to supply | |||
a third argument that should generally be zero (see first example). | a third argument that should generally be zero (see first example). | |||
This restriction is expected to go away in future releases. | This restriction is expected to go away in future releases. | |||
=for bad | =for bad | |||
spaceship processes bad values. | spaceship processes bad values. | |||
The state of the bad-value flag of the output ndarrays is unknown. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 1328 "Ops.pm" | #line 1328 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*spaceship = \&PDL::spaceship; | *spaceship = \&PDL::spaceship; | |||
#line 1335 "Ops.pm" | #line 1335 "Ops.pm" | |||
#line 315 "ops.pd" | #line 309 "ops.pd" | |||
BEGIN { $OVERLOADS{'sqrt'} = sub { PDL::sqrt($_[0]) } } | BEGIN { $OVERLOADS{'sqrt'} = sub { PDL::sqrt($_[0]) } } | |||
#line 1342 "Ops.pm" | #line 1342 "Ops.pm" | |||
#line 1058 "../../blib/lib/PDL/PP.pm" | #line 1058 "../../blib/lib/PDL/PP.pm" | |||
=head2 sqrt | =head2 sqrt | |||
=for sig | =for sig | |||
skipping to change at line 1140 | skipping to change at line 1140 | |||
It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 1377 "Ops.pm" | #line 1377 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*sqrt = \&PDL::sqrt; | *sqrt = \&PDL::sqrt; | |||
#line 1384 "Ops.pm" | #line 1384 "Ops.pm" | |||
#line 315 "ops.pd" | #line 309 "ops.pd" | |||
BEGIN { $OVERLOADS{'sin'} = sub { PDL::sin($_[0]) } } | BEGIN { $OVERLOADS{'sin'} = sub { PDL::sin($_[0]) } } | |||
#line 1391 "Ops.pm" | #line 1391 "Ops.pm" | |||
#line 1058 "../../blib/lib/PDL/PP.pm" | #line 1058 "../../blib/lib/PDL/PP.pm" | |||
=head2 sin | =head2 sin | |||
=for sig | =for sig | |||
skipping to change at line 1178 | skipping to change at line 1178 | |||
It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 1426 "Ops.pm" | #line 1426 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*sin = \&PDL::sin; | *sin = \&PDL::sin; | |||
#line 1433 "Ops.pm" | #line 1433 "Ops.pm" | |||
#line 315 "ops.pd" | #line 309 "ops.pd" | |||
BEGIN { $OVERLOADS{'cos'} = sub { PDL::cos($_[0]) } } | BEGIN { $OVERLOADS{'cos'} = sub { PDL::cos($_[0]) } } | |||
#line 1440 "Ops.pm" | #line 1440 "Ops.pm" | |||
#line 1058 "../../blib/lib/PDL/PP.pm" | #line 1058 "../../blib/lib/PDL/PP.pm" | |||
=head2 cos | =head2 cos | |||
=for sig | =for sig | |||
skipping to change at line 1216 | skipping to change at line 1216 | |||
It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 1475 "Ops.pm" | #line 1475 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*cos = \&PDL::cos; | *cos = \&PDL::cos; | |||
#line 1482 "Ops.pm" | #line 1482 "Ops.pm" | |||
#line 315 "ops.pd" | #line 309 "ops.pd" | |||
BEGIN { $OVERLOADS{'!'} = sub { PDL::not($_[0]) } } | BEGIN { $OVERLOADS{'!'} = sub { PDL::not($_[0]) } } | |||
#line 1489 "Ops.pm" | #line 1489 "Ops.pm" | |||
#line 1058 "../../blib/lib/PDL/PP.pm" | #line 1058 "../../blib/lib/PDL/PP.pm" | |||
=head2 not | =head2 not | |||
=for sig | =for sig | |||
skipping to change at line 1254 | skipping to change at line 1254 | |||
It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 1524 "Ops.pm" | #line 1524 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*not = \&PDL::not; | *not = \&PDL::not; | |||
#line 1531 "Ops.pm" | #line 1531 "Ops.pm" | |||
#line 315 "ops.pd" | #line 309 "ops.pd" | |||
BEGIN { $OVERLOADS{'exp'} = sub { PDL::exp($_[0]) } } | BEGIN { $OVERLOADS{'exp'} = sub { PDL::exp($_[0]) } } | |||
#line 1538 "Ops.pm" | #line 1538 "Ops.pm" | |||
#line 1058 "../../blib/lib/PDL/PP.pm" | #line 1058 "../../blib/lib/PDL/PP.pm" | |||
=head2 exp | =head2 exp | |||
=for sig | =for sig | |||
skipping to change at line 1292 | skipping to change at line 1292 | |||
It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 1573 "Ops.pm" | #line 1573 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*exp = \&PDL::exp; | *exp = \&PDL::exp; | |||
#line 1580 "Ops.pm" | #line 1580 "Ops.pm" | |||
#line 315 "ops.pd" | #line 309 "ops.pd" | |||
BEGIN { $OVERLOADS{'log'} = sub { PDL::log($_[0]) } } | BEGIN { $OVERLOADS{'log'} = sub { PDL::log($_[0]) } } | |||
#line 1587 "Ops.pm" | #line 1587 "Ops.pm" | |||
#line 1058 "../../blib/lib/PDL/PP.pm" | #line 1058 "../../blib/lib/PDL/PP.pm" | |||
=head2 log | =head2 log | |||
=for sig | =for sig | |||
skipping to change at line 1473 | skipping to change at line 1473 | |||
=for sig | =for sig | |||
Signature: (a(); [o]b()) | Signature: (a(); [o]b()) | |||
=for ref | =for ref | |||
Plain numerical assignment. This is used to implement the ".=" operator | Plain numerical assignment. This is used to implement the ".=" operator | |||
=for bad | =for bad | |||
If C<a> is a child ndarray (e.g., the result of a slice) and bad values are gene | assgn processes bad values. | |||
rated in C<b>, | It will set the bad-value flag of all output ndarrays if the flag is set for any | |||
the bad value flag is set in C<b>, but it is B<NOT> automatically propagated bac | of the input ndarrays. | |||
k to the parent of C<a>. | ||||
The following idiom ensures that the badflag is propagated back to the parent of | ||||
C<a>: | ||||
$pdl->slice(":,(1)") .= PDL::Bad_aware_func(); | ||||
$pdl->badflag(1); | ||||
$pdl->check_badflag(); | ||||
This is unnecessary if $pdl->badflag is known to be 1 before the slice is perfor | ||||
med. | ||||
See http://pdl.perl.org/PDLdocs/BadValues.html#dataflow_of_the_badflag for detai | ||||
ls. | ||||
=cut | =cut | |||
#line 1826 "Ops.pm" | #line 1818 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*assgn = \&PDL::assgn; | *assgn = \&PDL::assgn; | |||
#line 1833 "Ops.pm" | #line 1825 "Ops.pm" | |||
#line 1058 "../../blib/lib/PDL/PP.pm" | #line 1058 "../../blib/lib/PDL/PP.pm" | |||
=head2 carg | =head2 carg | |||
=for sig | =for sig | |||
Signature: (complexv(); real [o]b()) | Signature: (complexv(); real [o]b()) | |||
=for ref | =for ref | |||
Returns the polar angle of a complex number. | Returns the polar angle of a complex number. | |||
=for bad | =for bad | |||
carg processes bad values. | 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. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 1858 "Ops.pm" | #line 1850 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*carg = \&PDL::carg; | *carg = \&PDL::carg; | |||
#line 1865 "Ops.pm" | #line 1857 "Ops.pm" | |||
#line 1058 "../../blib/lib/PDL/PP.pm" | #line 1058 "../../blib/lib/PDL/PP.pm" | |||
=head2 conj | =head2 conj | |||
=for sig | =for sig | |||
Signature: (complexv(); [o]b()) | Signature: (complexv(); [o]b()) | |||
=for ref | =for ref | |||
complex conjugate. | complex conjugate. | |||
=for bad | =for bad | |||
conj processes bad values. | 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. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 1890 "Ops.pm" | #line 1882 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*conj = \&PDL::conj; | *conj = \&PDL::conj; | |||
#line 1897 "Ops.pm" | #line 1889 "Ops.pm" | |||
#line 1058 "../../blib/lib/PDL/PP.pm" | #line 1058 "../../blib/lib/PDL/PP.pm" | |||
=head2 czip | =head2 czip | |||
=for sig | =for sig | |||
Signature: (r(); i(); complex [o]c()) | Signature: (r(); i(); complex [o]c()) | |||
convert real, imaginary to native complex, (sort of) like LISP zip | convert real, imaginary to native complex, (sort of) like LISP zip | |||
function. Will add the C<r> ndarray to "i" times the C<i> ndarray. Only | function. Will add the C<r> ndarray to "i" times the C<i> ndarray. Only | |||
takes real ndarrays as input. | takes real ndarrays as input. | |||
=for bad | =for bad | |||
czip does not process bad values. | 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. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 1923 "Ops.pm" | #line 1915 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*czip = \&PDL::czip; | *czip = \&PDL::czip; | |||
#line 1930 "Ops.pm" | #line 1922 "Ops.pm" | |||
#line 1058 "../../blib/lib/PDL/PP.pm" | #line 1058 "../../blib/lib/PDL/PP.pm" | |||
=head2 ipow | =head2 ipow | |||
=for sig | =for sig | |||
Signature: (a(); indx b(); [o] ans()) | Signature: (a(); indx b(); [o] ans()) | |||
=for ref | =for ref | |||
skipping to change at line 1599 | skipping to change at line 1590 | |||
This restriction is expected to go away in future releases. | This restriction is expected to go away in future releases. | |||
Algorithm from L<Wikipedia|http://en.wikipedia.org/wiki/Exponentiation_by_squari ng> | Algorithm from L<Wikipedia|http://en.wikipedia.org/wiki/Exponentiation_by_squari ng> | |||
=for bad | =for bad | |||
ipow does not process bad values. | 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. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 1971 "Ops.pm" | #line 1963 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*ipow = \&PDL::ipow; | *ipow = \&PDL::ipow; | |||
#line 1978 "Ops.pm" | #line 1970 "Ops.pm" | |||
#line 585 "ops.pd" | #line 571 "ops.pd" | |||
=head2 abs | =head2 abs | |||
=for ref | =for ref | |||
Returns the absolute value of a number. | Returns the absolute value of a number. | |||
=cut | =cut | |||
sub PDL::abs { $_[0]->type->real ? goto &PDL::_rabs : goto &PDL::_cabs } | sub PDL::abs { $_[0]->type->real ? goto &PDL::_rabs : goto &PDL::_cabs } | |||
#line 1994 "Ops.pm" | #line 1986 "Ops.pm" | |||
#line 597 "ops.pd" | #line 583 "ops.pd" | |||
BEGIN { $OVERLOADS{'abs'} = sub { PDL::abs($_[0]) } } | BEGIN { $OVERLOADS{'abs'} = sub { PDL::abs($_[0]) } } | |||
#line 2001 "Ops.pm" | #line 1993 "Ops.pm" | |||
#line 599 "ops.pd" | #line 585 "ops.pd" | |||
=head2 abs2 | =head2 abs2 | |||
=for ref | =for ref | |||
Returns the square of the absolute value of a number. | Returns the square of the absolute value of a number. | |||
=cut | =cut | |||
sub PDL::abs2 ($) { my $r = &PDL::abs; $r * $r } | sub PDL::abs2 ($) { my $r = &PDL::abs; $r * $r } | |||
#line 2017 "Ops.pm" | #line 2009 "Ops.pm" | |||
#line 1058 "../../blib/lib/PDL/PP.pm" | #line 1058 "../../blib/lib/PDL/PP.pm" | |||
=head2 r2C | =head2 r2C | |||
=for sig | =for sig | |||
Signature: (r(); complex [o]c()) | Signature: (r(); complex [o]c()) | |||
=for ref | =for ref | |||
convert real to native complex, with an imaginary part of zero | convert real to native complex, with an imaginary part of zero | |||
=for bad | =for bad | |||
r2C does not process bad values. | 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. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 2042 "Ops.pm" | #line 2034 "Ops.pm" | |||
#line 1059 "../../blib/lib/PDL/PP.pm" | #line 1059 "../../blib/lib/PDL/PP.pm" | |||
sub PDL::r2C ($) { | sub PDL::r2C ($) { | |||
return $_[0] if UNIVERSAL::isa($_[0], 'PDL') and !$_[0]->type->real; | return $_[0] if UNIVERSAL::isa($_[0], 'PDL') and !$_[0]->type->real; | |||
my $r = $_[1] // PDL->nullcreate($_[0]); | my $r = $_[1] // PDL->nullcreate($_[0]); | |||
PDL::_r2C_int($_[0], $r); | PDL::_r2C_int($_[0], $r); | |||
$r; | $r; | |||
} | } | |||
#line 2054 "Ops.pm" | #line 2046 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*r2C = \&PDL::r2C; | *r2C = \&PDL::r2C; | |||
#line 2061 "Ops.pm" | #line 2053 "Ops.pm" | |||
#line 1058 "../../blib/lib/PDL/PP.pm" | #line 1058 "../../blib/lib/PDL/PP.pm" | |||
=head2 i2C | =head2 i2C | |||
=for sig | =for sig | |||
Signature: (i(); complex [o]c()) | Signature: (i(); complex [o]c()) | |||
=for ref | =for ref | |||
convert imaginary to native complex, with a real part of zero | convert imaginary to native complex, with a real part of zero | |||
=for bad | =for bad | |||
i2C does not process bad values. | 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. | It will set the bad-value flag of all output ndarrays if the flag is set for any of the input ndarrays. | |||
=cut | =cut | |||
#line 2086 "Ops.pm" | #line 2078 "Ops.pm" | |||
#line 1059 "../../blib/lib/PDL/PP.pm" | #line 1059 "../../blib/lib/PDL/PP.pm" | |||
sub PDL::i2C ($) { | sub PDL::i2C ($) { | |||
return $_[0] if UNIVERSAL::isa($_[0], 'PDL') and !$_[0]->type->real; | return $_[0] if UNIVERSAL::isa($_[0], 'PDL') and !$_[0]->type->real; | |||
my $r = $_[1] // PDL->nullcreate($_[0]); | my $r = $_[1] // PDL->nullcreate($_[0]); | |||
PDL::_i2C_int($_[0], $r); | PDL::_i2C_int($_[0], $r); | |||
$r; | $r; | |||
} | } | |||
#line 2098 "Ops.pm" | #line 2090 "Ops.pm" | |||
#line 1060 "../../blib/lib/PDL/PP.pm" | #line 1060 "../../blib/lib/PDL/PP.pm" | |||
*i2C = \&PDL::i2C; | *i2C = \&PDL::i2C; | |||
#line 2105 "Ops.pm" | #line 2097 "Ops.pm" | |||
#line 642 "ops.pd" | #line 628 "ops.pd" | |||
# This is to used warn if an operand is non-numeric or non-PDL. | # This is to used warn if an operand is non-numeric or non-PDL. | |||
sub warn_non_numeric_op_wrapper { | sub warn_non_numeric_op_wrapper { | |||
require Scalar::Util; | require Scalar::Util; | |||
my ($cb, $op_name) = @_; | my ($cb, $op_name) = @_; | |||
return sub { | return sub { | |||
my ($op1, $op2) = @_; | my ($op1, $op2) = @_; | |||
warn "'$op2' is not numeric nor a PDL in operator $op_name" | warn "'$op2' is not numeric nor a PDL in operator $op_name" | |||
unless Scalar::Util::looks_like_number($op2) | unless Scalar::Util::looks_like_number($op2) | |||
|| ( Scalar::Util::blessed($op2) && $op2->isa('PDL') ); | || ( Scalar::Util::blessed($op2) && $op2->isa('PDL') ); | |||
skipping to change at line 1734 | skipping to change at line 1725 | |||
"eq" => PDL::Ops::warn_non_numeric_op_wrapper(\&PDL::eq, 'eq'), | "eq" => PDL::Ops::warn_non_numeric_op_wrapper(\&PDL::eq, 'eq'), | |||
".=" => sub { | ".=" => sub { | |||
my @args = !$_[2] ? @_[1,0] : @_[0,1]; | my @args = !$_[2] ? @_[1,0] : @_[0,1]; | |||
PDL::Ops::assgn(@args); | PDL::Ops::assgn(@args); | |||
return $args[1]; | return $args[1]; | |||
}, | }, | |||
'++' => sub { $_[0] += 1 }, | '++' => sub { $_[0] += 1 }, | |||
'--' => sub { $_[0] -= 1 }, | '--' => sub { $_[0] -= 1 }, | |||
; | ; | |||
} | } | |||
#line 2136 "Ops.pm" | #line 2128 "Ops.pm" | |||
#line 49 "ops.pd" | #line 49 "ops.pd" | |||
=head1 AUTHOR | =head1 AUTHOR | |||
Tuomas J. Lukka (lukka@fas.harvard.edu), | Tuomas J. Lukka (lukka@fas.harvard.edu), | |||
Karl Glazebrook (kgb@aaoepp.aao.gov.au), | Karl Glazebrook (kgb@aaoepp.aao.gov.au), | |||
Doug Hunt (dhunt@ucar.edu), | Doug Hunt (dhunt@ucar.edu), | |||
Christian Soeller (c.soeller@auckland.ac.nz), | Christian Soeller (c.soeller@auckland.ac.nz), | |||
Doug Burke (burke@ifa.hawaii.edu), | Doug Burke (burke@ifa.hawaii.edu), | |||
and Craig DeForest (deforest@boulder.swri.edu). | and Craig DeForest (deforest@boulder.swri.edu). | |||
=cut | =cut | |||
#line 2155 "Ops.pm" | #line 2147 "Ops.pm" | |||
# Exit with OK status | # Exit with OK status | |||
1; | 1; | |||
End of changes. 56 change blocks. | ||||
71 lines changed or deleted | 58 lines changed or added |