PRODUCT |
書式 | PRODUCT(ARRAY[,DIM][,MASK]) | ||||||
機能 |
DIM番目の次元について、MASK中の真である。 要素に対応するARRAYのすべての要素の積を計算する。 (1)ARRAYの大きさが0であるとき、結果の値は1とする。 (2)PRODUCT(ARRAY,MASK=mask)の結果の値は、MASK中の真である要素と 対応しているARRAYの要素の積とする。ただし、真である要素がないとき 結果の値は1とする。 (3)ARRAYの次元数が1であるとき、PRODUCT(ARRAY,DIM[,MASK])の値は PRODUCT(ARRAY[,MASK=mask])とする。 (4)ARRAYの次元数が2以上であるとき、PRODUCT(ARRAY,DIM[,MASK])の 要素(s1,s2,…,sDIM-1,sDIM+1,…,sn)の 値は、PRODUCT(ARRAY(s1,s2,…, sDIM-1,:,sDIM+1,…, sn)[,MASK=mask(s1,s2,…, sDIM-1,:,sDIM+1,…,sn)])とする。 nはARRAYの次元数とする。 | ||||||
引数 |
| ||||||
戻り値 |
型、種別型パラメタは引数ARRAYと同じである。 DIMが省略されているかまたはARRAYの次元数が1であるとき 戻り値はスカラである。 それ以外は、n-1次元の配列で、その形状は (d1,d2,…,dDIM-1, dDIM+1,…,dn)である。 ここで(d1,d2,…,dn)は、MASKの形状とする。 |
INTEGER,DIMENSION(6) :: x LOGICAL,DIMENSION(6) :: m x=(/-3, 9, -5, 1, -9, 6/) WRITE(*,*) PRODUCT(x) ! 配列要素中の積 m=(x>0) ! 配列xの値が負か? WRITE(*,*) PRODUCT(x,MASK=m) ! 負の配列要素の積
実行例 |