`IANY` — 배열 원소들에 비트 OR 축약

IANY — 배열 원소들에 비트 OR 축약

여러 정수의 비트 OR을 한 번에 묶어서 결과 하나를 얻고 싶을 때가 있어요. IANY는 배열의 원소들을 비트 OR로 축약(reduce)하는 내장 함수예요.

출처: IANY (The GNU Fortran Compiler)

본문

시놉시스(Synopsis):

RESULT = IANY(ARRAY[, MASK])
RESULT = IANY(ARRAY, DIM[, MASK])

설명(Description): MASK의 해당 원소가 TRUE일 때, ARRAY의 원소를 DIM 차원을 따라 비트 OR(포함적 OR)로 축약해요.

종류(Class): 변환(transformational) 함수

인자(Arguments):

인자 설명
ARRAY INTEGER 또는 UNSIGNED 타입의 배열이어야 해요.
DIM (선택) INTEGER 타입의 스칼라로, 1부터 n까지의 값이어야 해요(nARRAY의 랭크).
MASK (선택) LOGICAL 타입으로, 스칼라이거나 ARRAY와 같은 모양의 배열이어야 해요.

반환값(Return value): 결과는 ARRAY와 같은 타입이에요. DIM이 없으면 ARRAY의 모든 원소를 비트 OR한 스칼라를 돌려줘요. DIM이 있으면 ARRAY에서 그 차원을 뺀, 랭크 n-1의 배열을 돌려줘요.

예제(Example):

PROGRAM test_iany
  INTEGER(1) :: a(2)
  a(1) = b'00100100'
  a(2) = b'01101010'
  ! prints 01101110
  PRINT '(b8.8)', IANY(a)
END PROGRAM

0010010001101010을 비트 OR하면 01101110이 나오는 걸 확인할 수 있어요.

표준(Standard): Fortran 2008 이후, UNSIGNED에 대해서는 확장이에요.

더 알아보기

  • 비트 AND 축약은 IALL, 비트 XOR 축약은 IPARITY가 담당해요.
  • 두 값 사이의 비트 OR은 IOR이 해요.