"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "GENERATED/PDL/Ops.pm" between
PDL-2.078.tar.gz and PDL-2.079.tar.gz

About: PDL (Perl Data Language) aims to turn perl into an efficient numerical language for scientific computing (similar to IDL and MatLab).

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

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)