Diff of /PDL/Book/Operations.pod[5ca7aa] .. [6d3631] Maximize Restore

Switch to side-by-side view

```--- a/PDL/Book/Operations.pod
+++ b/PDL/Book/Operations.pod
@@ -1,5 +1,4 @@
-

PDL variables are structured (conventional) arrays of numbers.
The most basic operations on them are the familiar numerical
@@ -18,7 +17,7 @@
with). A few operators, notably matrix multiplication, have more
than one active dimension.

All of the standard Perl operators apply to PDLs, with the usual
precedence rules. They are listed in Table [tab:Perl-operators].
@@ -28,7 +27,7 @@
operators (like multiplication), the scalar is promoted to a PDL,
so the result is a PDL with appropriate threading.

@@ -163,7 +162,7 @@
element because both sides of the C<&> operator have been converted
to true boolean values (0 or 1).

The simplest operators have no active dimensions, simply
@@ -203,7 +202,7 @@
the threading engine if there is sufficient demand. You might be
the person to demand and/or implement it...

-=head2 Arithmetic collapse: C<prodover> and C<sumover>
+=head3 Arithmetic collapse: C<prodover> and C<sumover>

The C<sumover> and C<prodover> functions perform summing and product,
respectively, along the 0 dim of a PDL. For example, to take the
@@ -219,7 +218,7 @@
The related functions C<sum> and C<prod> work on the whole of \$pdl and
return a single Perl scalar.

-=head2 Logical collapse: C<andover> and C<orover>
+=head3 Logical collapse: C<andover> and C<orover>

The C<andover> and C<orover> operators provide true boolean (not
bitwise) masking of elements across rows. They are complementary
@@ -231,7 +230,7 @@
M-PDL mask indicating whether each row contains even a single
nonzero value.

-=head2 Statistical collapse: C<average> and C<statsover>
+=head3 Statistical collapse: C<average> and C<statsover>

The C<average> collapse is complementary to C<avg>, which takes the
average of an entire PDL. For slightly more comprehensive
@@ -240,7 +239,7 @@
standard deviation, and population RMS) as separate PDLs in list
context; see the online documentation for more details.

PDL comes with an ancillary module, C<PDL::reduce>, that supplies a
general-purpose C<reduce> function. C<reduce> is useful for collapsing
@@ -254,7 +253,7 @@
C<< \$mask->mv(1,0)->orover >>). You must explicitly use C<PDL::reduce>
before you can invoke the reduce operator.

-=head1 Combination operators: PDLs and Perl lists
+=head2 Combination operators: PDLs and Perl lists

Perl arrays/lists are different than PDLs, but often you will
want to assemble a PDL from a list of values (or other PDLs), or
@@ -265,7 +264,7 @@
into lists of smaller chunks, that are appropriate for looping
over.

-=head2 Global glomming / shredding: pdl and list
+=head3 Global glomming / shredding: pdl and list

The PDL constructor, C<pdl()>, can combine multiple PDLs into one,
glomming a bunch of stuff together into a single data array. For
@@ -295,7 +294,7 @@
problem with C<list> is that it loses all dimensional information,
so you might prefer to have more control. Read on!

If you have a collection of same-sized, same-type PDLs, you can
concatenate them with C<cat>:
@@ -317,7 +316,7 @@
exactly undoes the effect of catting a collection of PDLs
together.

You can extend a PDL along the 0 dimension with C<append>. All other
dimensions must agree, thread-wise, between the original PDL and
@@ -343,7 +342,7 @@
) to append along any dimension of the input PDL, but read on:
there is a better way to do that...

-=head2 Finer control - use C<glue>
+=head3 Finer control - use C<glue>

The C<glue> method acts just like C<append>, but along a specified
@@ -362,7 +361,7 @@
which eliminates the dimensional gymnastics you would have to do
with C<append>.

Interpolation of values between integer array locations is a
@@ -380,7 +379,7 @@
in Chapter [cha:Coordinate-Transformations], to do optimized
resampling under a variety of coordinate transformations.

-=head2 Interpolate virtually any regular grid: C<interpND>
+=head3 Interpolate virtually any regular grid: C<interpND>

The workhorse interpolator for PDL is C<interpND>. It works almost
exactly like the C<indexND> operator described in [sub:IndexND],
@@ -430,7 +429,7 @@
pdl> print \$image->interpND(\$coords, {bound=>'forbid'});
index out-of-bounds in range

-=head2 Interpolate on a 1-D irregular grid: interpol, interpolate
+=head3 Interpolate on a 1-D irregular grid: interpol, interpolate

For simple linear interpolation on a non-uniform grid, you can
use C<interpolate> or C<interpol>. They will both use linear
```