XL Fortran for AIX V8.1.1

ランゲージ・リファレンス

PRODUCT(ARRAY, DIM, MASK) または PRODUCT(ARRAY, MASK)

配列全体内のすべてのエレメントを乗算するか、次元に沿ったすべてのベクトルから選択したエレメントを乗算します。

引き数タイプおよび属性

ARRAY
数値データ型を持つ配列です。

DIM (オプション)
1 <= DIM <= rank(ARRAY) の範囲内の整数スカラーです。

MASK (オプション)
形状が ARRAY に準拠している論理式です。 MASK がスカラーである場合は、その値は ARRAY 内のすべてのエレメントに適用されます。

クラス

変換関数

結果値

DIM が存在する場合は、結果はランク rank(ARRAY)-1 の配列で、 ARRAY と同じデータ型になります。 DIM が脱落している場合、または MASK のランクが 1 の場合は、結果はスカラーになります。

結果は、以下のいずれかの方式で計算されます。

方式 1:
ARRAY だけが指定されている場合は、結果はその配列エレメント全部の積になります。 ARRAY がゼロ・サイズ配列である場合は、結果はゼロに等しくなります。

方式 2:
ARRAY と MASK が両方とも指定されている場合は、結果は MASK 内の対応する真の配列エレメントを持つ ARRAY のそれらの配列エレメントの積になります。値が .TRUE. であるエレメントを MASK が持っていない場合は、結果は 1 に等しくなります。

方式 3:
DIM も指定されて、ARRAY のランクが 1 の場合、結果は MASK 内の対応する .TRUE. 配列エレメントを持つ ARRAY のすべてのエレメントの積に等しいスカラーです。

DIM も指定されて、ARRAY のランクが 1 より大きい場合、結果は次元 DIM が除去されている新しい配列です。それぞれの新しい配列エレメントは、ARRAY 中の対応するベクトルからのエレメントの積です。そのベクトルのインデックス値は、DIM を除くすべての次元で、出力エレメントの指標値と一致します。出力エレメントは MASK 内の対応する.TRUE. 配列エレメントを持つこれらのベクトル・エレメントの積です。

+---------------------------------Fortran 95---------------------------------+

DIM と MASK はどちらもオプションであるため、引き数のさまざまな組み合わせが可能になります。 -qintlog オプションが 2 つの引き数を指定すると、2 番目の引き数は次のうちの 1 つを参照します。

+------------------------------Fortran 95 の終り------------------------------+

方式 1:

! Multiply all elements in an array.
       RES = PRODUCT( (/2, 3, 4/) )
! The result is 24 because (2 * 3 * 4) = 24.
 
! Do the same for a two-dimensional array.
       RES = PRODUCT( (/2, 3, 4/), (/4, 5, 6/) )
! The result is 2880.  All elements are multiplied.
方式 2:

! A is the array (/ -3, -7, -5, 2, 3 /)
! Multiply all elements of the array that are > -5.
       RES = PRODUCT(A, MASK = A .GT. -5)
! The result is -18 because (-3 * 2 * 3) = -18.
方式 3:

! A is the array | -2  5  7 |
!                |  3 -4  3 |
! Find the product of each column in A.
       RES = PRODUCT(A, DIM = 1)
! The result is | -6 -20 21 | because (-2 * 3) =  -6
!                                    ( 5 * -4 ) = -20
!                                    ( 7 *  3 ) = 21
 
! Find the product of each row in A.
       RES = PRODUCT(A, DIM = 2)
! The result is | -70 -36 |
! because (-2 *  5 * 7) = -70
!          (3 * -4 * 3) = -36
 
! Find the product of each row in A, considering
! only those elements greater than zero.
       RES = PRODUCT(A, DIM = 2, MASK = A .GT. 0)
! The result is | 35 9 | because ( 5 * 7) = 35
!                                 (3 * 3) =  9


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]