next up previous contents
Next: Effect and Restrictions Up: The Java Adlib API Previous: Effect and Restrictions   Contents


A product() method is a reduction operation for multiplying together all elements of a distributed array. It has two prototypes

$\displaystyle \begin{minipage}[t]{\linewidth}\small\begin{tabbing}
\verb$ $$t$\verb$ product ($$t$\verb$  ...


$\displaystyle \begin{minipage}[t]{\linewidth}\small\begin{tabbing}
\verb$ $$t$...
... product ($$t$\verb$  ...

where the variable $ t$ runs over all primitive types other than boolean, and the notation $ t$ # means a multiarray of arbitrary rank, with elements of type $ t$. The second form takes an extra boolean array aligned with the source array and ignores all elements of source for which the corresponding element of mask is false. The product method is implemented by a schedule object with HPspmd class Product$ t$. Each primitive types other than boolean has its own schedule class. This class has two constructors with arguments identical to the method above, and has one public method with no arguments called execute(), which executes the schedule. The effective public interface of the Product$ t$ class is

$\displaystyle \begin{minipage}[t]{\linewidth}\small\verb$ public class Product$...
...$$t$\verb$ execute () { ... }$\\
\verb$ . . .$\\
\verb$ }$

The source array is source. It will have elements of type $ t$. The mask array is mask.


Bryan Carpenter 2004-06-09