9.3.120 PRODUCT (ARRAY [, DIM] [, MASK])

Description:  Returns the product of all the elements in an entire array or in a specified dimension of an array. 
Class:  Transformational function; Generic 
Arguments:  ARRAY Must be an array of type integer or real.  
  DIM (opt) Must be a scalar integer with a value in the range 1 to n, where n is the rank of ARRAY.  
  MASK (opt) Must be of type logical and conformable with ARRAY.  
Results:  The result is an array or a scalar of the same data type as ARRAY.

The result is a scalar if DIM is omitted or ARRAY has rank one.

The following rules apply if DIM is omitted:

  • If PRODUCT (ARRAY) is specified, the result is the product of all elements of ARRAY. If ARRAY has size zero, the result is 1.

  • If PRODUCT (ARRAY, MASK=MASK) is specified, the result is the product of all elements of ARRAY corresponding to true elements of MASK. If ARRAY has size zero, or every element of MASK has the value .FALSE., the result is 1.
The following rules apply if DIM is specified:

  • If ARRAY has rank one, the value is the same as PRODUCT (ARRAY [,MASK=MASK]).

  • An array result has a rank that is one less than ARRAY, and shape (d1, d2, ..., dDIM-1, dDIM+1, ..., dn), where (d1, d2, ..., dn) is the shape of ARRAY.

  • The value of element (s1, s2, ..., sDIM-1, sDIM+1, ..., sn) of PRODUCT (ARRAY, DIM [,MASK]) is equal to PRODUCT (ARRAY (s1, s2, ..., sDIM-1, :, sDIM+1, ..., sn) [,MASK=MASK (s1, s2, ..., sDIM-1, :, sDIM+1, ..., sn)]).

Examples

PRODUCT ((/2, 3, 4/)) returns the value 24 (the product of 2 * 3 * 4). PRODUCT ((/2, 3, 4/), DIM=1) returns the same result.

PRODUCT (C, MASK=C .LT. 0.0) returns the product of the negative elements of C.

A is the array

  [ 1  4  7 ]
  [ 2  3  5 ].

PRODUCT (A, DIM=1) returns the value (2, 12, 35), which is the product of all elements in each column. 2 is the product of 1 * 2 in column 1. 12 is the product of 4 * 3 in column 2, and so forth.

PRODUCT (A, DIM=2) returns the value (28, 30), which is the product of all elements in each row. 28 is the product of 1 * 4 * 7 in row 1. 30 is the product of 2 * 3 * 5 in row 2.


Previous Page Next Page Table of Contents